[apertium] 01/03: Imported Upstream version 3.4.0

Kartik Mistry kartik at moszumanska.debian.org
Sun Jun 21 08:29:34 UTC 2015


This is an automated email from the git hooks/post-receive script.

kartik pushed a commit to branch master
in repository apertium.

commit e88d2b65bd4a8dd7a583b0f7c663710344cc0066
Author: Kartik Mistry <kartik.mistry at gmail.com>
Date:   Sun Jun 21 13:58:22 2015 +0530

    Imported Upstream version 3.4.0
---
 CMakeLists.txt                                    |   102 -
 COPYING.hunalign                                  |   504 -
 INSTALL                                           |   370 +
 Makefile.in                                       |   904 +
 aclocal.m4                                        | 10396 +++
 apertium.m4                                       |    22 +-
 apertium/CMakeLists.txt                           |   107 -
 apertium/Makefile.am                              |    51 +-
 apertium/Makefile.in                              |  1767 +
 apertium/apertium-desrtf-cp1250.1                 |    41 -
 apertium/apertium-desrtf-cp1251.1                 |    41 -
 apertium/apertium-header.sh                       |   889 +-
 apertium/apertium-lextor-eval.1                   |    62 -
 apertium/apertium-postlatex-raw.l                 |    20 +-
 apertium/apertium-postlatex.l                     |    22 +-
 apertium/apertium-prelatex.l                      |    46 +-
 apertium/apertium-rertf-cp1250.1                  |    34 -
 apertium/apertium-rertf-cp1251.1                  |    34 -
 apertium/apertium_config.h.cmake_in               |    57 -
 apertium/apertium_config.h.in                     |   140 +
 apertium/apertium_deshtml.cc                      |  5476 ++
 apertium/apertium_deslatex.cc                     | 67456 ++++++++++++++++++++
 apertium/apertium_desmediawiki.cc                 |  9893 +++
 apertium/apertium_desodt.cc                       |  3785 ++
 apertium/apertium_despptx.cc                      |  4143 ++
 apertium/apertium_desrtf.cc                       | 11681 ++++
 apertium/apertium_destxt.cc                       |  2148 +
 apertium/apertium_deswxml.cc                      |  6191 ++
 apertium/apertium_desxlsx.cc                      |  3403 +
 apertium/apertium_desxpresstag.cc                 |  2277 +
 apertium/apertium_gen_wlist_lextor_translation.cc |   187 -
 apertium/apertium_lextor.cc                       |   656 -
 apertium/apertium_lextor_eval.cc                  |   387 -
 apertium/apertium_postlatex.cc                    |  4621 ++
 apertium/apertium_postlatex_raw.cc                |  4063 ++
 apertium/apertium_prelatex.cc                     |  3751 ++
 apertium/apertium_rehtml.cc                       |  1959 +
 apertium/apertium_rehtml_noent.cc                 |  1869 +
 apertium/apertium_relatex.cc                      |  1881 +
 apertium/apertium_remediawiki.cc                  |  1869 +
 apertium/apertium_reodt.cc                        |  1881 +
 apertium/apertium_repptx.cc                       |  1881 +
 apertium/apertium_rertf.cc                        |  1953 +
 apertium/apertium_retxt.cc                        |  1869 +
 apertium/apertium_rewxml.cc                       |  1881 +
 apertium/apertium_rexlsx.cc                       |  1881 +
 apertium/apertium_rexpresstag.cc                  |  1869 +
 apertium/apertium_tagger_readwords.cc             |    18 +-
 apertium/deformat.xsl                             |    56 +-
 apertium/hmm.cc                                   |     3 +
 apertium/interchunk.cc                            |     7 +-
 apertium/modes.rng                                |    72 -
 apertium/postchunk.cc                             |     7 +-
 apertium/reformat.xsl                             |    26 +-
 apertium/rtf-format-cp1250.xml                    |   532 -
 apertium/rtf-format-cp1251.xml                    |   576 -
 apertium/script_header.sh.cmake_in                |     7 -
 apertium/tmx_align_parameters.h                   |     2 +
 apertium/tmx_aligner_tool.cc                      |     2 +
 apertium/tmx_aligner_tool.h                       |     2 +
 apertium/tmx_alignment.cc                         |     2 +
 apertium/tmx_alignment.h                          |     2 +
 apertium/tmx_arguments_parser.cc                  |     2 +
 apertium/tmx_arguments_parser.h                   |     2 +
 apertium/tmx_book_to_matrix.cc                    |     2 +
 apertium/tmx_book_to_matrix.h                     |     2 +
 apertium/tmx_dic_tree.h                           |     2 +
 apertium/tmx_dictionary.cc                        |     2 +
 apertium/tmx_dictionary.h                         |     2 +
 apertium/tmx_quasi_diagonal.h                     |     2 +
 apertium/tmx_serialize_impl.h                     |     2 +
 apertium/tmx_strings_and_streams.cc               |     2 +
 apertium/tmx_strings_and_streams.h                |     2 +
 apertium/tmx_trail_postprocessors.cc              |     2 +
 apertium/tmx_trail_postprocessors.h               |     2 +
 apertium/tmx_translate.cc                         |     2 +
 apertium/tmx_translate.h                          |     2 +
 apertium/tmx_words.h                              |     2 +
 apertium/trans-lextor-header.sh                   |   107 -
 apertium/transfer.cc                              |     8 +-
 apertium/transfer.rng                             |  1058 -
 apertium/transfer_data.cc                         |    28 +-
 apertium/transfer_mult.cc                         |     7 +-
 apertium/validate-header.sh                       |    14 +-
 apertium/win32/getopt.c                           |    81 -
 apertium/win32/getopt.h                           |    19 -
 apertium/win32/libgen.c                           |    25 -
 apertium/win32/libgen.h                           |    14 -
 apertium/win32/regex.c                            |  4948 --
 apertium/win32/regex.h                            |   498 -
 apertium/win32/runner_skeleton.c                  |    77 -
 apertium/win32/snprintf.c                         |  1025 -
 apertium/win32/snprintf.h                         |    26 -
 apertium/win32/unistd.h                           |    13 -
 cmake/CMakeUseFlex.cmake                          |    42 -
 cmake/CMakeUseXsltproc.cmake                      |    35 -
 cmake/FindLibPcre.cmake                           |    38 -
 cmake/FindLibXml2.cmake                           |    59 -
 cmake/FindLttoolbox3.cmake                        |    57 -
 compile                                           |   347 +
 config.guess                                      |  1421 +
 config.sub                                        |  1807 +
 configure                                         | 20171 ++++++
 configure.ac                                      |    31 +-
 depcomp                                           |   791 +
 install-sh                                        |   501 +
 ltmain.sh                                         | 11147 ++++
 missing                                           |   215 +
 108 files changed, 200360 insertions(+), 12116 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644
index 53abf60..0000000
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,102 +0,0 @@
-cmake_minimum_required(VERSION 2.6)
-PROJECT (apertium-3.2)
-
-SET (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
-SET (PROGRAM_FILES_PATH "C:/Program\ Files")
-
-INCLUDE (CheckFunctionExists)
-INCLUDE (CheckSymbolExists)
-
-INCLUDE_DIRECTORIES (.)
-
-IF (WIN32)
-        SET(APERTIUM_PATH "$(dirname $BASH)")
-        SET(LTTOOLBOX_PATH "$(dirname $BASH)")
-        SET(DEFAULT_DIRECTORY "$(dirname $BASH)/../share/apertium")
-ELSE (WIN32)
-        # THIS IS NOT QUITE CORRECT FOR POSIX PLATFORMS.
-        # TODO: Fix this
-        SET(APERTIUM_PATH "${CMAKE_ROOT}/bin")
-        SET(LTTOOLBOX_PATH "${CMAKE_ROOT}/bin")
-        SET(DEFAULT_DIRECTORY "${CMAKE_ROOT}/share/apertium")
-ENDIF (WIN32)
-
-SET (SCRIPT_HEADER_FILE "${PROJECT_SOURCE_DIR}/apertium/script_header.sh.cmake_in")
-
-IF (WIN32)
-        SET (WIN32_DIR ${PROJECT_SOURCE_DIR}/apertium/win32)
-        INCLUDE_DIRECTORIES (${WIN32_DIR})
-        SET (EXTRA_SOURCES "${WIN32_DIR}/getopt.c" "${WIN32_DIR}/libgen.c")
-
-        SET(FLEX_EXECUTABLE        ${PROGRAM_FILES_PATH}/GnuWin32/bin/flex.exe)
-
-        SET(ICONV_BASE_DIR         ${PROGRAM_FILES_PATH}/iconv)
-        SET(ICONV_INCLUDE_DIR      ${ICONV_BASE_DIR}/include)
-	SET(ICONV_LIBRARIES        ${ICONV_BASE_DIR}/lib/iconv.lib)
-
-        SET(LIBXML2_BASE_DIR       ${PROGRAM_FILES_PATH}/LibXML)
-        SET(LIBXSLT_BASE_DIR       ${PROGRAM_FILES_PATH}/Libxslt)
-        SET(LIBXML2_INCLUDE_DIR    ${LIBXML2_BASE_DIR}/include)
-        SET(LIBXML2_LIBRARIES      ${LIBXML2_BASE_DIR}/lib/libxml2.lib)
-        SET(XSLTPROC_EXECUTABLE    ${LIBXSLT_BASE_DIR}/bin/xsltproc.exe)
-
-        SET(LTTOOLBOX3_BASE_DIR    ${PROGRAM_FILES_PATH}/apertium-3.2)
-        SET(LTTOOLBOX3_INCLUDE_DIR ${LTTOOLBOX3_BASE_DIR}/include/lttoolbox-3.2)
-        SET(LTTOOLBOX3_LIBRARIES   ${LTTOOLBOX3_BASE_DIR}/lib/lttoolbox3.lib)
-
-        SET(LIBPCRE_BASE_DIR       ${PROGRAM_FILES_PATH}/PCRE) 
-        SET(LIBPCRE_INCLUDE_DIR    "${LIBPCRE_BASE_DIR}/include")
-        SET(LIBPCRE_LIBRARIES      "${LIBPCRE_BASE_DIR}/lib/pcrecpp.lib"
-                                   "${LIBPCRE_BASE_DIR}/lib/pcreposix.lib"
-                                   "${LIBPCRE_BASE_DIR}/lib/pcre.lib")
-
-        ADD_DEFINITIONS (/D _CRT_SECURE_NO_WARNINGS /D STDC_HEADERS /D PCRE_STATIC)
-ENDIF (WIN32)
-
-INCLUDE (CMakeUseFlex)
-INCLUDE (CMakeUseXsltproc)
-
-FIND_PACKAGE (LibXml2    REQUIRED)
-FIND_PACKAGE (Lttoolbox3 REQUIRED)
-FIND_PACKAGE (LibPcre    REQUIRED)
-
-SET (PACKAGE_BUGREPORT sortiz at users.sourceforge.net)
-SET (PACKAGE_NAME      apertium/apertium.h)
-SET (PACKAGE_STRING    apertium/apertium.h 3.3.0)
-SET (PACKAGE_TARNAME   lttoolbox-lttoolbox-h)
-SET (PACKAGE_VERSION   3.3.0)
-
-MACRO (BOOL_CHECK_SYMBOL_EXISTS SYMBOL HEADER VAR)
-        CHECK_SYMBOL_EXISTS (${SYMBOL} ${HEADER} ${VAR})
-        IF (${VAR})
-                SET (${VAR} "1")
-        ELSE (${VAR})
-                SET (${VAR} "0")
-        ENDIF (${VAR})
-ENDMACRO (BOOL_CHECK_SYMBOL_EXISTS)
-
-BOOL_CHECK_SYMBOL_EXISTS (fputs_unlocked  stdio.h HAVE_DECL_FPUTS_UNLOCKED)
-BOOL_CHECK_SYMBOL_EXISTS (fgetc_unlocked  stdio.h HAVE_DECL_FGETC_UNLOCKED)
-BOOL_CHECK_SYMBOL_EXISTS (fputc_unlocked  stdio.h HAVE_DECL_FPUTC_UNLOCKED)
-BOOL_CHECK_SYMBOL_EXISTS (fwrite_unlocked stdio.h HAVE_DECL_FWRITE_UNLOCKED)
-BOOL_CHECK_SYMBOL_EXISTS (fread_unlocked  stdio.h HAVE_DECL_FREAD_UNLOCKED)
-BOOL_CHECK_SYMBOL_EXISTS (fgetwc_unlocked stdio.h HAVE_DECL_FGETWC_UNLOCKED)
-BOOL_CHECK_SYMBOL_EXISTS (fputwc_unlocked stdio.h HAVE_DECL_FPUTWC_UNLOCKED)
-BOOL_CHECK_SYMBOL_EXISTS (fputws_unlocked stdio.h HAVE_DECL_FPUTWS_UNLOCKED)
-
-BOOL_CHECK_SYMBOL_EXISTS (_fputs_nolock  stdio.h HAVE_DECL_FPUTS_NOLOCK)
-BOOL_CHECK_SYMBOL_EXISTS (_fgetc_nolock  stdio.h HAVE_DECL_FGETC_NOLOCK)
-BOOL_CHECK_SYMBOL_EXISTS (_fputc_nolock  stdio.h HAVE_DECL_FPUTC_NOLOCK)
-BOOL_CHECK_SYMBOL_EXISTS (_fwrite_nolock stdio.h HAVE_DECL_FWRITE_NOLOCK)
-BOOL_CHECK_SYMBOL_EXISTS (_fread_nolock  stdio.h HAVE_DECL_FREAD_NOLOCK)
-BOOL_CHECK_SYMBOL_EXISTS (_fgetwc_nolock stdio.h HAVE_DECL_FGETWC_NOLOCK)
-BOOL_CHECK_SYMBOL_EXISTS (_fputwc_nolock stdio.h HAVE_DECL_FPUTWC_NOLOCK)
-BOOL_CHECK_SYMBOL_EXISTS (_fputws_nolock stdio.h HAVE_DECL_FPUTWS_NOLOCK)
-
-CHECK_FUNCTION_EXISTS (setlocale HAVE_SETLOCALE)
-CHECK_FUNCTION_EXISTS (strdup HAVE_STRDUP)
-CHECK_FUNCTION_EXISTS (getopt_long HAVE_GETOPT_LONG)
-
-CONFIGURE_FILE (${PROJECT_SOURCE_DIR}/apertium/apertium_config.h.cmake_in ${PROJECT_SOURCE_DIR}/apertium/apertium_config.h)
-
-ADD_SUBDIRECTORY (apertium)
diff --git a/COPYING.hunalign b/COPYING.hunalign
deleted file mode 100644
index b1e3f5a..0000000
--- a/COPYING.hunalign
+++ /dev/null
@@ -1,504 +0,0 @@
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-

-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-

-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-

-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-

-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-

-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-

-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-

-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-

-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-

-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..2099840
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+   Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+   The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package, generally using the just-built uninstalled binaries.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved.  Use GNU `make'
+instead.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
+
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..fe7b47e
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,904 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/apertium/apertium_config.h
+CONFIG_CLEAN_FILES = apertium.pc
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(aclocaldir)" \
+	"$(DESTDIR)$(pkgconfigdir)"
+DATA = $(aclocal_DATA) $(pkgconfig_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/apertium.pc.in \
+	AUTHORS COPYING ChangeLog INSTALL NEWS README compile \
+	config.guess config.sub install-sh ltmain.sh missing
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APERTIUM_CFLAGS = @APERTIUM_CFLAGS@
+APERTIUM_LIBS = @APERTIUM_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASH = @BASH@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLEX = @FLEX@
+GENERIC_API_VERSION = @GENERIC_API_VERSION@
+GENERIC_LIBRARY_NAME = @GENERIC_LIBRARY_NAME@
+GENERIC_LIBRARY_VERSION = @GENERIC_LIBRARY_VERSION@
+GENERIC_MAJOR_VERSION = @GENERIC_MAJOR_VERSION@
+GENERIC_RELEASE = @GENERIC_RELEASE@
+GENERIC_VERSION = @GENERIC_VERSION@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+XMLLINT = @XMLLINT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = $(GENERIC_LIBRARY_NAME)
+DIST_SUBDIRS = $(GENERIC_LIBRARY_NAME)
+modesdir = $(prefix)/share/apertium/modes
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = apertium.pc
+aclocaldir = $(datadir)/aclocal
+aclocal_DATA = apertium.m4
+EXTRA_DIST = autogen.sh README-MODES apertium.m4
+all: all-recursive
+
+.SUFFIXES:
+am--refresh: Makefile
+	@:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+apertium.pc: $(top_builddir)/config.status $(srcdir)/apertium.pc.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool config.lt
+install-aclocalDATA: $(aclocal_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(aclocaldir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(aclocaldir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(aclocaldir)" || exit $$?; \
+	done
+
+uninstall-aclocalDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(aclocaldir)'; $(am__uninstall_files_from_dir)
+install-pkgconfigDATA: $(pkgconfig_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+	done
+
+uninstall-pkgconfigDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    $(am__make_dryrun) \
+	      || test -d "$(distdir)/$$subdir" \
+	      || $(MKDIR_P) "$(distdir)/$$subdir" \
+	      || exit 1; \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
+		am__remove_distdir=: \
+		am__skip_length_check=: \
+		am__skip_mode_fix=: \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__post_remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__post_remove_distdir)
+
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+	$(am__post_remove_distdir)
+
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+	$(am__post_remove_distdir)
+
+dist-tarZ: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__post_remove_distdir)
+
+dist-shar: distdir
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__post_remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__post_remove_distdir)
+
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build/sub \
+	  && ../../configure \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	    --srcdir=../.. --prefix="$$dc_install_base" \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
+	$(am__post_remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(aclocaldir)" "$(DESTDIR)$(pkgconfigdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-aclocalDATA install-data-local \
+	install-pkgconfigDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-aclocalDATA uninstall-pkgconfigDATA
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+	dist-xz dist-zip distcheck distclean distclean-generic \
+	distclean-libtool distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-aclocalDATA install-am install-data \
+	install-data-am install-data-local install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-aclocalDATA \
+	uninstall-am uninstall-pkgconfigDATA
+
+.PRECIOUS: Makefile
+
+
+install-data-local:
+	mkdir -p $(DESTDIR)$(modesdir)
+	$(INSTALL_DATA) README-MODES  $(DESTDIR)$(modesdir)/README
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..ade9765
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,10396 @@
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+])
+
+# serial 58 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+		   [m4_fatal([Libtool version $1 or higher is required],
+		             63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\	*)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in @S|@*""; do
+      case $cc_temp in
+        compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+        distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
+m4_defun([_LT_CC_BASENAME],
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}"; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test set != "${COLLECT_NAMES+set}"; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from 'configure', and 'config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain=$ac_aux_dir/ltmain.sh
+])# _LT_PROG_LTMAIN
+
+
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the 'libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+	[m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+	[tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+	   m4_quote(lt_decl_varnames),
+	m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags='_LT_TAGS'dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+					   [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+	dnl If the libtool generation code has been placed in $CONFIG_LT,
+	dnl instead of duplicating it all over again into config.status,
+	dnl then we will have config.status run $CONFIG_LT later, so it
+	dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# '#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool at gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $[#]
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try '$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try '$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options that allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}"; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile=${ofile}T
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+   mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],			[_LT_LANG(C)],
+  [C++],		[_LT_LANG(CXX)],
+  [Go],			[_LT_LANG(GO)],
+  [Java],		[_LT_LANG(GCJ)],
+  [Fortran 77],		[_LT_LANG(F77)],
+  [Fortran],		[_LT_LANG(FC)],
+  [Windows Resource],	[_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+m4_ifndef([AC_PROG_GO], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "$LT_MULTI_MODULE"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi])
+
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+	[lt_cv_ld_exported_symbols_list=yes],
+	[lt_cv_ld_exported_symbols_list=no])
+	LDFLAGS=$save_LDFLAGS
+    ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+	10.[[012]][[,.]]*)
+	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+    fi
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  if test yes = "$lt_cv_ld_force_load"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
+  case $cc_basename in
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test yes = "$_lt_dar_can_shared"; then
+    output_verbose_link_cmd=func_echo_all
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+    m4_if([$1], [CXX],
+[   if test yes != "$lt_cv_apple_cc_single_mod"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test set = "${lt_cv_aix_libpath+set}"; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+case $ECHO in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+  [Search for dependent libraries within DIR (or the compiler's sysroot
+   if not specified).])],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+   if test yes = "$GCC"; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([$with_sysroot])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and where our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE=32
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE=64
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+	emul="${emul}32"
+	;;
+      *64-bit*)
+	emul="${emul}64"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+	emul="${emul}btsmip"
+	;;
+      *LSB*)
+	emul="${emul}ltsmip"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+	emul="${emul}n32"
+	;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*linux*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  powerpcle-*linux*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS=$CFLAGS
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test yes != "$lt_cv_cc_needs_belf"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS=$SAVE_CFLAGS
+  fi
+  ;;
+*-*solaris*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*)
+        case $host in
+        i?86-*-solaris*|x86_64-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD=${LD-ld}_sol2
+        fi
+        ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks=$enable_libtool_lock
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test 0 -eq "$ac_status"; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	AC_TRY_EVAL([lt_ar_try])
+	if test 0 -ne "$ac_status"; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test no = "$lt_cv_ar_at_file"; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  bitrig* | openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"  ## exclude from sc_useless_quotes_in_assignment
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test yes = "[$]$2"; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS=$LDFLAGS
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS=$save_LDFLAGS
+])
+
+if test yes = "[$]$2"; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring=ABCD
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test 17 != "$i" # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n "$lt_cv_sys_max_cmd_len"; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes = "$cross_compiling"; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes != "$enable_dlopen"; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen=load_add_on
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen=LoadLibrary
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+    # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+    lt_cv_dlopen=dyld
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen=shl_load],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen=dlopen],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test no = "$lt_cv_dlopen"; then
+    enable_dlopen=no
+  else
+    enable_dlopen=yes
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS=$LDFLAGS
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS=$LIBS
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test yes = "$lt_cv_dlopen_self"; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+	  lt_cv_dlopen_self_static, [dnl
+	  _LT_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+	 [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+	 [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+	 [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+	[Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test no = "$hard_links"; then
+    AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+  [Define to the sub-directory where libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
+
+  # We can hardcode non-existent directories.
+  if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+     test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+   test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP"; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x at S|@2 in
+    x)
+        ;;
+    *:)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+        ;;
+    x:*)
+        eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+        ;;
+    *)
+        eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+	[], [
+if test yes = "$GCC"; then
+  case $host_os in
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary...
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo = "/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
+case $host_os in
+aix3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='$libname$release$shared_ext$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test ia64 = "$host_cpu"; then
+    # AIX 5 supports IA64
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a[(]lib.so.V[)]'
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='$libname$shared_ext'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec=$LIB
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[23]].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+    fi
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test yes = "$lt_cv_prog_gnu_ld"; then
+		version_type=linux # correct to gnu/linux during the next big refactor
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+	 [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd* | bitrig*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec=/usr/lib
+  need_lib_prefix=no
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
+  else
+    need_version=yes
+  fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+os2*)
+  libname_spec='$name'
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test yes = "$with_gnu_ld"; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec; then
+    version_type=linux # correct to gnu/linux during the next big refactor
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=sco
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test yes = "$with_gnu_ld"; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+    [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+    [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program that can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$1"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
+  ;;
+esac])
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program that can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test no = "$withval" || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test yes = "$GCC"; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return, which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD=$ac_prog
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test yes = "$with_gnu_ld"; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD=$ac_dir/$ac_prog
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test no != "$with_gnu_ld" && break
+	;;
+      *)
+	test yes != "$with_gnu_ld" && break
+	;;
+      esac
+    fi
+  done
+  IFS=$lt_save_ifs
+else
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test yes != "$GCC"; then
+      reload_cmds=false
+    fi
+    ;;
+  darwin*)
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+  [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM=$NM
+else
+  lt_nm_to_check=${ac_tool_prefix}nm
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS=$lt_save_ifs
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+	case $build_os in
+	mingw*) lt_bad_file=conftest.nm/nofile ;;
+	*) lt_bad_file=/dev/null ;;
+	esac
+	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+	*$lt_bad_file* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break 2
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break 2
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS=$lt_save_ifs
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols -headers"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+  AC_SUBST([DUMPBIN])
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test yes != "$lt_cv_path_mainfest_tool"; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+  test DEF = "`$SED -n dnl
+    -e '\''s/^[[	 ]]*//'\'' dnl Strip leading whitespace
+    -e '\''/^\(;.*\)*$/d'\'' dnl      Delete empty lines and comments
+    -e '\''s/^\(EXPORTS\|LIBRARY\)\([[	 ]].*\)*$/DEF/p'\'' dnl
+    -e q dnl                          Only consider the first "real" line
+    $1`" dnl
+])# _LT_DLL_DEF_P
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM=-lm)
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test yes = "$GCC"; then
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+	[Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test ia64 = "$host_cpu"; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t at _DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t at _DLSYM_CONST
+#else
+# define LT@&t at _DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+LT@&t at _DLSYM_CONST struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
+	  LIBS=conftstm.$ac_objext
+	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
+	    pipe_works=yes
+	  fi
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test yes = "$pipe_works"; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+    [Transform the output of nm into a list of symbols to manually relocate])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+    [The name lister interface])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test yes = "$GXX"; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test ia64 = "$host_cpu"; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+	# This hack is so that the source file can tell whether it is being
+	# built for inclusion in a dll (and should export symbols for example).
+	m4_if([$1], [GCJ], [],
+	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+	    if test ia64 != "$host_cpu"; then
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64, which still supported -KPIC.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test yes = "$GCC"; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      esac
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      case $host_os in
+      os2*)
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+	;;
+      esac
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+      case $cc_basename in
+      # old Intel for x86_64, which still supported -KPIC.
+      ecc*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+	;;
+      nagfor*)
+	# NAG Fortran compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	;;
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	  ;;
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+        *Intel*\ [[CF]]*Compiler*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	  ;;
+	*Portland\ Group*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms that do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+	[Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+	[How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+	[Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+    # Without the "-l" option, or with the "-B" option, AIX nm treats
+    # weak defined symbols like other global defined symbols, whereas
+    # GNU nm marks them as "W".
+    # While the 'weak' keyword is ignored in the Export File, we need
+    # it in the Import File for the 'aix-soname' feature, so we have
+    # to replace the "-B" option with "-P" for AIX nm.
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
+    ;;
+  cygwin* | mingw* | cegcc*)
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+    ;;
+  esac
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test yes != "$GCC"; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd* | bitrig*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test yes = "$with_gnu_ld"; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test yes = "$lt_use_gnu_ld_interface"; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='$wl'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test ia64 != "$host_cpu"; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file, use it as
+	# is; otherwise, prepend EXPORTS...
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test linux-dietlibc = "$host_os"; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test no = "$tmp_diet"
+      then
+	tmp_addflag=' $pic_flag'
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+	  tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
+	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  _LT_TAGVAR(compiler_needs_object, $1)=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+        if test yes = "$supports_anon_versioning"; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	tcc*)
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+	  ;;
+	xlf* | bgf* | bgxlf* | mpixlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+	  if test yes = "$supports_anon_versioning"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test ia64 = "$host_cpu"; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to GNU nm, but means don't demangle to AIX nm.
+	# Without the "-l" option, or with the "-B" option, AIX nm treats
+	# weak defined symbols like other global defined symbols, whereas
+	# GNU nm marks them as "W".
+	# While the 'weak' keyword is ignored in the Export File, we need
+	# it in the Import File for the 'aix-soname' feature, so we have
+	# to replace the "-B" option with "-P" for AIX nm.
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# have runtime linking enabled, and use it for executables.
+	# For shared libraries, we enable/disable runtime linking
+	# depending on the kind of the shared library created -
+	# when "with_aix_soname,aix_use_runtimelinking" is:
+	# "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "aix,yes"  lib.so          shared, rtl:yes, for executables
+	#            lib.a           static archive
+	# "both,no"  lib.so.V(shr.o) shared, rtl:yes
+	#            lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a(lib.so.V) shared, rtl:no
+	# "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a           static archive
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	    # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	    # so we don't have lib.a shared libs to link our executables.
+	    # We have to force runtime linking in this case.
+	    aix_use_runtimelinking=yes
+	    LDFLAGS="$LDFLAGS -Wl,-brtl"
+	  fi
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+	# The Import File defines what to hardcode.
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+	;;
+      esac
+
+      if test yes = "$GCC"; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`$CC -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test yes = "$aix_use_runtimelinking"; then
+	  shared_flag="$shared_flag "'$wl-G'
+	fi
+	# Need to ensure runtime linking is disabled for the traditional
+	# shared library, or the linker may eventually find shared libraries
+	# /with/ Import File - we do not want to mix them.
+	shared_flag_aix='-shared'
+	shared_flag_svr4='-shared $wl-G'
+      else
+	# not using gcc
+	if test ia64 = "$host_cpu"; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag='$wl-G'
+	  else
+	    shared_flag='$wl-bM:SRE'
+	  fi
+	  shared_flag_aix='$wl-bM:SRE'
+	  shared_flag_svr4='$wl-G'
+	fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX([$1])
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+      else
+	if test ia64 = "$host_cpu"; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 _LT_SYS_MODULE_PATH_AIX([$1])
+	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+	  if test yes = "$with_gnu_ld"; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  fi
+	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	  # -brtl affects multiple linker settings, -berok does not and is overridden later
+	  compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+	  if test svr4 != "$with_aix_soname"; then
+	    # This is similar to how AIX traditionally builds its shared libraries.
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	  fi
+	  if test aix != "$with_aix_soname"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 3 [...]
+	  else
+	    # used by -dlpreopen to get the symbols
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	  fi
+	  _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	_LT_TAGVAR(always_export_symbols, $1)=yes
+	_LT_TAGVAR(file_list_spec, $1)='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=.dll
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=.dll
+	# FIXME: Setting linknames here is a bad hack.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	# FIXME: Should let the user specify the lib program.
+	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+      ;;
+
+    hpux10*)
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test no = "$with_gnu_ld"; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	m4_if($1, [], [
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  _LT_LINKER_OPTION([if $CC understands -b],
+	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+	  ;;
+	esac
+      fi
+      if test no = "$with_gnu_ld"; then
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+	# This should be the same for all languages, so no per-tag cache variable.
+	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+	  [lt_cv_irix_exported_symbol],
+	  [save_LDFLAGS=$LDFLAGS
+	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+	   AC_LINK_IFELSE(
+	     [AC_LANG_SOURCE(
+	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+			      [C++], [[int foo (void) { return 0; }]],
+			      [Fortran 77], [[
+      subroutine foo
+      end]],
+			      [Fortran], [[
+      subroutine foo
+      end]])])],
+	      [lt_cv_irix_exported_symbol=yes],
+	      [lt_cv_irix_exported_symbol=no])
+           LDFLAGS=$save_LDFLAGS])
+	if test yes = "$lt_cv_irix_exported_symbol"; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+	fi
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    linux*)
+      case $cc_basename in
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      esac
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd* | bitrig*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_TAGVAR(hardcode_direct, $1)=yes
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	else
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	fi
+      else
+	_LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      shrext_cmds=.dll
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    osf3*)
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+      else
+	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test yes = "$GCC"; then
+	wlarc='$wl'
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='$wl'
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands '-z linker_flag'.  GCC discards it without '$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test yes = "$GCC"; then
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+	else
+	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test sequent = "$host_vendor"; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We CANNOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test yes = "$GCC"; then
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test sni = "$host_vendor"; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test yes,yes = "$GCC,$enable_shared"; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+	[$RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+	  _LT_TAGVAR(allow_undefined_flag, $1)=
+	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+	  then
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	  else
+	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  fi
+	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+	])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting $shlibpath_var if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC=$CC
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report what library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test no = "$can_build_shared" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test yes = "$enable_shared" && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;			# shared object as lib.so file only
+      yes,svr4,*) ;;			# shared object as lib.so archive member only
+      yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+      esac
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test yes = "$enable_shared" || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC=$lt_save_CC
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test no != "$CXX" &&
+    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+    (test g++ != "$CXX"))); then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_caught_CXX_error"; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test yes = "$GXX"; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test yes = "$GXX"; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test yes = "$with_gnu_ld"; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='$wl'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test ia64 = "$host_cpu"; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # have runtime linking enabled, and use it for executables.
+          # For shared libraries, we enable/disable runtime linking
+          # depending on the kind of the shared library created -
+          # when "with_aix_soname,aix_use_runtimelinking" is:
+          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "aix,yes"  lib.so          shared, rtl:yes, for executables
+          #            lib.a           static archive
+          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+          #            lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a(lib.so.V) shared, rtl:no
+          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a           static archive
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	      # so we don't have lib.a shared libs to link our executables.
+	      # We have to force runtime linking in this case.
+	      aix_use_runtimelinking=yes
+	      LDFLAGS="$LDFLAGS -Wl,-brtl"
+	    fi
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+        case $with_aix_soname,$aix_use_runtimelinking in
+        aix,*) ;;	# no import file
+        svr4,* | *,yes) # use import file
+          # The Import File defines what to hardcode.
+          _LT_TAGVAR(hardcode_direct, $1)=no
+          _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+          ;;
+        esac
+
+        if test yes = "$GXX"; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`$CC -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag=$shared_flag' $wl-G'
+	  fi
+	  # Need to ensure runtime linking is disabled for the traditional
+	  # shared library, or the linker may eventually find shared libraries
+	  # /with/ Import File - we do not want to mix them.
+	  shared_flag_aix='-shared'
+	  shared_flag_svr4='-shared $wl-G'
+        else
+          # not using gcc
+          if test ia64 = "$host_cpu"; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test yes = "$aix_use_runtimelinking"; then
+	      shared_flag='$wl-G'
+	    else
+	      shared_flag='$wl-bM:SRE'
+	    fi
+	    shared_flag_aix='$wl-bM:SRE'
+	    shared_flag_svr4='$wl-G'
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          # The "-G" linker flag allows undefined symbols.
+          _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX([$1])
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+        else
+          if test ia64 = "$host_cpu"; then
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    _LT_SYS_MODULE_PATH_AIX([$1])
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+	    _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+	    if test yes = "$with_gnu_ld"; then
+	      # We only use this code for GNU lds that support --whole-archive.
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+	    else
+	      # Exported symbols can be pulled into shared objects from archives
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	    fi
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	    # -brtl affects multiple linker settings, -berok does not and is overridden later
+	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+	    if test svr4 != "$with_aix_soname"; then
+	      # This is similar to how AIX traditionally builds its shared
+	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	    fi
+	    if test aix != "$with_aix_soname"; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# [...]
+	    else
+	      # used by -dlpreopen to get the symbols
+	      _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	    fi
+	    _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+	case $GXX,$cc_basename in
+	,cl* | no,cl*)
+	  # Native MSVC
+	  # hardcode_libdir_flag_spec is actually meaningless, as there is
+	  # no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=yes
+	  _LT_TAGVAR(file_list_spec, $1)='@'
+	  # Tell ltmain to make .lib files, not .a files.
+	  libext=lib
+	  # Tell ltmain to make .dll files, not .so files.
+	  shrext_cmds=.dll
+	  # FIXME: Setting linknames here is a bad hack.
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp "$export_symbols" "$output_objdir/$soname.def";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            else
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+            fi~
+            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+            linknames='
+	  # The linker will not automatically build a static lib if we build a DLL.
+	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	  # Don't use ranlib
+	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+            lt_tool_outputfile="@TOOL_OUTPUT@"~
+            case $lt_outputfile in
+              *.exe|*.EXE) ;;
+              *)
+                lt_outputfile=$lt_outputfile.exe
+                lt_tool_outputfile=$lt_tool_outputfile.exe
+                ;;
+            esac~
+            func_to_tool_file "$lt_outputfile"~
+            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+              $RM "$lt_outputfile.manifest";
+            fi'
+	  ;;
+	*)
+	  # g++
+	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+	  # as there is no search path for DLLs.
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	  _LT_TAGVAR(always_export_symbols, $1)=no
+	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file, use it as
+	    # is; otherwise, prepend EXPORTS...
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+              cp $export_symbols $output_objdir/$soname.def;
+            else
+              echo EXPORTS > $output_objdir/$soname.def;
+              cat $export_symbols >> $output_objdir/$soname.def;
+            fi~
+            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	  else
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	  ;;
+	esac
+	;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+	;;
+
+      os2*)
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	_LT_TAGVAR(hardcode_minus_L, $1)=yes
+	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+	shrext_cmds=.dll
+	_LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  prefix_cmds="$SED"~
+	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	    prefix_cmds="$prefix_cmds -e 1d";
+	  fi~
+	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	_LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      freebsd2.*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            ;;
+          *)
+            if test yes = "$GXX"; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test no = "$with_gnu_ld"; then
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+          *)
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        case $host_cpu in
+	          hppa*64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+	_LT_TAGVAR(hardcode_direct, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	      else
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
+	      fi
+	    fi
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+	    ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+                $RANLIB $oldlib'
+	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 and above use weak symbols
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+	    ;;
+	  xl* | mpixl* | bgxl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    if test yes = "$supports_anon_versioning"; then
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                echo "local: *; };" >> $output_objdir/$libname.ver~
+                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	      _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	      _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='func_echo_all'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	_LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
+      openbsd* | bitrig*)
+	if test -f /usr/libexec/ld.so; then
+	  _LT_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+	    _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=func_echo_all
+	else
+	  _LT_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+		;;
+	      *)
+	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+                  echo "-hidden">> $lib.exp~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.exp'
+	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+		;;
+	    esac
+
+	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+	  *)
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+	      case $host in
+	        osf3*)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+		  ;;
+	        *)
+	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      _LT_TAGVAR(ld_shlibs, $1)=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	    case $host_os in
+	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands '-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+	    output_verbose_link_cmd='func_echo_all'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
+	        # platform.
+	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      fi
+
+	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
+	      case $host_os in
+		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+		*)
+		  _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We CANNOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	_LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+	_LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+	_LT_TAGVAR(link_all_deplibs, $1)=yes
+	_LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+              '"$_LT_TAGVAR(old_archive_cmds, $1)"
+	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+              '"$_LT_TAGVAR(reload_cmds, $1)"
+	    ;;
+	  *)
+	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    _LT_TAGVAR(ld_shlibs, $1)=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)=$GXX
+    _LT_TAGVAR(LD, $1)=$LD
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test yes != "$_lt_caught_CXX_error"
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case @S|@2 in
+  .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+  *)  func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $prev$p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test x-L = "$p" ||
+          test x-R = "$p"; then
+	 prev=$p
+	 continue
+       fi
+
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
+       if test no = "$pre_test_object_deps_done"; then
+	 case $prev in
+	 -L | -R)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
+	   else
+	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+	   _LT_TAGVAR(postdeps, $1)=$prev$p
+	 else
+	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
+	 fi
+       fi
+       prev=
+       ;;
+
+    *.lto.$objext) ;; # Ignore GCC LTO objects
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test no = "$pre_test_object_deps_done"; then
+	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+	   _LT_TAGVAR(predep_objects, $1)=$p
+	 else
+	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+	   _LT_TAGVAR(postdep_objects, $1)=$p
+	 else
+	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test no = "$F77"; then
+  _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_F77"; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test no = "$can_build_shared" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test yes = "$enable_shared" && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test ia64 != "$host_cpu"; then
+	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+	  yes,aix,yes) ;;		# shared object as lib.so file only
+	  yes,svr4,*) ;;		# shared object as lib.so archive member only
+	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+	  esac
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test yes = "$enable_shared" || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)=$G77
+    _LT_TAGVAR(LD, $1)=$LD
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test no = "$FC"; then
+  _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_FC"; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test no = "$can_build_shared" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test yes = "$enable_shared" && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+	if test ia64 != "$host_cpu"; then
+	  case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+	  yes,aix,yes) ;;		# shared object as lib.so file only
+	  yes,svr4,*) ;;		# shared object as lib.so archive member only
+	  yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+	  esac
+	fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test yes = "$enable_shared" || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+    _LT_TAGVAR(LD, $1)=$LD
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_FC"
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=$lt_simple_compile_test_code
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f "$lt_ac_sed" && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test 10 -lt "$lt_ac_count" && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test "$lt_ac_count" -gt "$lt_ac_max"; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine what file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
+#   Foundation, Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 8 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option '$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+		      [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+		   [_LT_ENABLE_FAST_INSTALL])
+  _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+		   [_LT_WITH_AIX_SONAME([aix])])
+  ])
+])# _LT_SET_OPTIONS
+
+
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+	[Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+	[Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+	 [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+  AC_MSG_CHECKING([which variant of shared library versioning to provide])
+  AC_ARG_WITH([aix-soname],
+    [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+      [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+    [case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname],
+    [AC_CACHE_VAL([lt_cv_with_aix_soname],
+      [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+    with_aix_soname=$lt_cv_with_aix_soname])
+  AC_MSG_RESULT([$with_aix_soname])
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+    [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
+# LT_INIT options.
+# MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for lt_pkg in $withval; do
+	IFS=$lt_save_ifs
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac],
+    [pic_mode=m4_default([$1], [default])])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+		 [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+		 [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+		 [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+		 [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+		 [m4_define([_LTDL_TYPE], [convenience])])
+
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
+# Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59, which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+	     [m4_foreach([_Lt_suffix],
+		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+		 [lt_append([$1], [$2], [$3])$4],
+		 [$5])],
+	  [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+	[$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
+
+# ltversion.m4 -- version numbers			-*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 4179 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4.6])
+m4_define([LT_PACKAGE_REVISION], [2.4.6])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4.6'
+macro_revision='2.4.6'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
+
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
+#   Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
+
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
+# 
+# Copyright © 2004 Scott James Remnant <scott at netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+   	AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+     	AC_MSG_RESULT([no])
+	m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	$3
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+
+# PKG_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable pkgconfigdir as the location where a module
+# should install pkg-config .pc files. By default the directory is
+# $libdir/pkgconfig, but the default can be changed by passing
+# DIRECTORY. The user can override through the --with-pkgconfigdir
+# parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_INSTALLDIR
+
+
+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable noarch_pkgconfigdir as the location where a
+# module should install arch-independent pkg-config .pc files. By
+# default the directory is $datadir/pkgconfig, but the default can be
+# changed by passing DIRECTORY. The user can override through the
+# --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_NOARCH_INSTALLDIR
+
+
+# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# -------------------------------------------
+# Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])# PKG_CHECK_VAR
+
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.15'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.15], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.15])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each '.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
+
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
diff --git a/apertium.m4 b/apertium.m4
index 4ba21d6..774d163 100644
--- a/apertium.m4
+++ b/apertium.m4
@@ -1,7 +1,7 @@
 # apertium.m4 - Macros to locate and utilise apertium libraries -*- Autoconf -*-
-# serial 1 (apertium-3.3.0)
+# serial 1 (apertium-3.4.0)
 #
-# Copyright (C) 2013 Universitat d'Alacant / Universidad de Alicante
+# Copyright (C) 2013--2015 Universitat d'Alacant / Universidad de Alicante
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License as
@@ -122,6 +122,24 @@ install-modes:
 
 .PRECIOUS: .deps/.d
 
+langs:
+	@fail=; \
+	if \$(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
+	dot_seen=no; \
+	list='\$(AP_SUBDIRS)'; \
+	for subdir in \$\$list; do \
+	  echo "Making \$\$subdir"; \
+	  (\$(am__cd) \$\$subdir && \$(MAKE) \$(AM_MAKEFLAGS) all-am) \
+	  || eval \$\$failcom; \
+	done; \
+	\$(MAKE) \$(AM_MAKEFLAGS) all-am || exit 1; \
+	test -z "\$\$fail"
+.PHONY: langs
+
 EOF
 
 ])
diff --git a/apertium/CMakeLists.txt b/apertium/CMakeLists.txt
deleted file mode 100644
index a144dd0..0000000
--- a/apertium/CMakeLists.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-INCLUDE_DIRECTORIES (${ICONV_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR} ${LTTOOLBOX3_INCLUDE_DIR} ${LIBPCRE_INCLUDE_DIR})
-ADD_DEFINITIONS (${LIBXML2_DEFINITIONS} ${LTTOOLBOX3_DEFINITIONS})
-
-SET(APERTIUM_LIBS ${LIBXML2_LIBRARIES} ${LTTOOLBOX3_LIBRARIES} ${LIBPCRE_LIBRARIES} ${ICONV_LIBRARIES})
-
-MACRO (FROM_XML OUTPUT XSL XML)
-        XSLTPROC (${OUTPUT}.yy ${XSL} ${XML})
-        FLEX (${OUTPUT} "-Cfer" ${OUTPUT}.yy)
-ENDMACRO (FROM_XML)
-
-#IF (WIN32)
-#        SET (FLEX_LIB flex_support)
-#
-#        ADD_EXECUTABLE (runner_skeleton ${WIN32_DIR}/runner_skeleton.c)
-#ENDIF (WIN32)
-
-MACRO (ADD_FORMATTER SRC_NAME XSL XML)
-        FROM_XML (${SRC_NAME}.cc ${XSL} ${XML})        # Create SRC_NAME using the stylesheet XSL and the xml file XML
-        STRING (REPLACE "_" "-" EXE_NAME ${SRC_NAME})  # Convert underscores to dashes for the executable names
-
-        ADD_EXECUTABLE (${EXE_NAME} ${SRC_NAME}.cc "${WIN32_DIR}/regex.c")    # Compile EXE_NAME using the source file ${SRC_NAME}.cc
-        TARGET_LINK_LIBRARIES (${EXE_NAME} ${LIBXML2_LIBRARIES} ${ICONV_LIBRARIES} ${LTTOOLBOX3_LIBRARIES} ) # Link the lttoolbox library to EXE_NAME
-
-        LIST (APPEND INSTALLABLES ${EXE_NAME})
-ENDMACRO (ADD_FORMATTER)
-
-ADD_FORMATTER (apertium_destxt        deformat.xsl txt-format.xml)
-ADD_FORMATTER (apertium_retxt         reformat.xsl txt-format.xml)
-ADD_FORMATTER (apertium_deshtml       deformat.xsl html-format.xml)
-ADD_FORMATTER (apertium_rehtml        reformat.xsl html-format.xml)
-ADD_FORMATTER (apertium_desodt        deformat.xsl odt-format.xml)
-ADD_FORMATTER (apertium_reodt         reformat.xsl odt-format.xml)
-ADD_FORMATTER (apertium_desrtf        deformat.xsl rtf-format.xml)
-ADD_FORMATTER (apertium_rertf         reformat.xsl rtf-format.xml)
-ADD_FORMATTER (apertium_desrtf_cp1250 deformat.xsl rtf-format-cp1250.xml)
-ADD_FORMATTER (apertium_rertf_cp1250  reformat.xsl rtf-format-cp1250.xml)
-ADD_FORMATTER (apertium_desrtf_cp1251 deformat.xsl rtf-format-cp1251.xml)
-ADD_FORMATTER (apertium_rertf_cp1251  reformat.xsl rtf-format-cp1251.xml)
-
-ADD_LIBRARY (apertium3 SHARED collection.cc constant_manager.cc hmm.cc lswpost.cc interchunk.cc
-             interchunk_word.cc lextor.cc lextor_data.cc lextor_eval.cc
-             lextor_word.cc morpho_stream.cc postchunk.cc string_utils.cc
-             tagger.cc tagger_data.cc tagger_data_hmm.cc tagger_data_lsw.cc tagger_utils.cc tagger_word.cc
-             transfer.cc transfer_data.cc transfer_instr.cc endian_double_util.cc
-             transfer_token.cc transfer_word.cc transfer_word_list.cc
-             trx_reader.cc tsx_reader.cc utf_converter.cc apertium_re.cc)
-
-LIST (APPEND INSTALLABLES apertium3)
-
-SET(EXECUTABLE_LIBS ${APERTIUM_LIBS} apertium3)
-
-MACRO (ADD_APERTIUM_EXE EXE_NAME SOURCE_NAME)
-        ADD_EXECUTABLE (${EXE_NAME} ${SOURCE_NAME})
-        TARGET_LINK_LIBRARIES (${EXE_NAME} ${EXECUTABLE_LIBS})
-        LIST (APPEND INSTALLABLES ${EXE_NAME})
-ENDMACRO (ADD_APERTIUM_EXE)
-
-ADD_APERTIUM_EXE (apertium-pretransfer                  apertium_pretransfer.cc)
-ADD_APERTIUM_EXE (apertium-tagger                       apertium_tagger.cc)
-ADD_APERTIUM_EXE (apertium-preprocess-transfer          transferpp.cc)
-ADD_APERTIUM_EXE (apertium-filter-ambiguity             apertium_filter_ambiguity.cc)
-ADD_APERTIUM_EXE (apertium-transfer                     apertium_transfer.cc)
-ADD_APERTIUM_EXE (apertium-interchunk                   apertium_interchunk.cc)
-ADD_APERTIUM_EXE (apertium-postchunk                    apertium_postchunk.cc)
-#ADD_APERTIUM_EXE (apertium-lextor                       apertium_lextor.cc)
-ADD_APERTIUM_EXE (apertium-tagger-apply-new-rules       apertium_tagger_apply_new_rules.cc)
-ADD_APERTIUM_EXE (apertium-gen-wlist-lextor-translation apertium_gen_wlist_lextor_translation.cc)
-
-MACRO (ADD_SCRIPT SCRIPT_NAME SOURCE)
-	SET (OUTPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${SCRIPT_NAME}")
-	SET (SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE}")
-
-	FILE (READ ${SOURCE_FILE} SCRIPT)
-	CONFIGURE_FILE (${SCRIPT_HEADER_FILE} ${OUTPUT_FILE})
-
-	INSTALL (PROGRAMS    ${SCRIPT_NAME}
-		 DESTINATION bin)
-
-#	IF (WIN32)
-#		INSTALL (PROGRAMS    "${CMAKE_CURRENT_SOURCE_DIR}/runner_skeleton.exe"
-#		         DESTINATION bin
-#			 RENAME      ${SCRIPT_NAME}.exe)
-#       ENDIF (WIN32)
-ENDMACRO (ADD_SCRIPT)
-
-ADD_SCRIPT (apertium apertium-header.sh)
-
-INSTALL (TARGETS ${INSTALLABLES}
-         RUNTIME DESTINATION bin
-         LIBRARY DESTINATION lib
-         ARCHIVE DESTINATION lib)
-
-FILE(GLOB HEADERS *.h)
-
-INSTALL (FILES ${HEADERS}
-         DESTINATION include/apertium-3.1/apertium)
-
-IF (WIN32)
-	INSTALL (FILES ${PROJECT_SOURCE_DIR}/etc/LEAVE_THIS_DIRECTORY_HERE.txt
-		 DESTINATION etc)
-
-	INSTALL (PROGRAMS "${CMAKE_CURRENT_SOURCE_DIR}/sh.exe"
-	                  "${CMAKE_CURRENT_SOURCE_DIR}/dirname.exe"
-			  "${CMAKE_CURRENT_SOURCE_DIR}/basename.exe"
-			  "${CMAKE_CURRENT_SOURCE_DIR}/msys-1.0.dll"
-		 DESTINATION bin)
-ENDIF (WIN32)
diff --git a/apertium/Makefile.am b/apertium/Makefile.am
index 579441a..6fda448 100644
--- a/apertium/Makefile.am
+++ b/apertium/Makefile.am
@@ -37,10 +37,10 @@ GENERATEDSCRIPTS = apertium-gen-deformat apertium-gen-reformat \
                    apertium-gen-modes apertium-validate-acx \
                    apertium-utils-fixlatex
 #DEPR.:
-                   #apertium-preprocess-corpus-lextor 
-                   #apertium-gen-stopwords-lextor 
-                   #apertium-gen-lextorbil 
-                   #apertium-gen-lextormono apertium-gen-wlist-lextor 
+                   #apertium-preprocess-corpus-lextor
+                   #apertium-gen-stopwords-lextor
+                   #apertium-gen-lextorbil
+                   #apertium-gen-lextormono apertium-gen-wlist-lextor
 
 lib_LTLIBRARIES = libapertium3.la
 libapertium3_la_SOURCES = $(h_sources) $(cc_sources)
@@ -68,8 +68,8 @@ bin_PROGRAMS = apertium-pretransfer apertium-destxt apertium-retxt \
                apertium-tagger-readwords \
                apertium-tmxbuild
                ###pruebas-lextor apertium-lextor-search apertium-lextor-eval
-               ###apertium-gen-wlist-lextor-translation 
-               ###apertium-lextor 
+               ###apertium-gen-wlist-lextor-translation
+               ###apertium-lextor
 
 bin_SCRIPTS =  $(GENERATEDSCRIPTS)
 
@@ -77,7 +77,7 @@ instdir = apertium
 
 apertiumdir = $(prefix)/share/apertium
 apertiuminclude = $(prefix)/include/apertium-$(GENERIC_API_VERSION)
-apertiumlib = $(prefix)/lib 
+apertiumlib = $(prefix)/lib
 apertiumsysconf = $(prefix)/etc/apertium
 
 apertium_DATA = deformat.xsl reformat.xsl new2old.xsl lexchoice.xsl \
@@ -161,7 +161,11 @@ apertium_tagger_readwords_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VER
 ###apertium_gen_wlist_lextor_translation_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
 
 
+if WINDOWS
+INCLUDES = -I$(top_srcdir)/apertium/win32 -I$(top_srcdir) $(APERTIUM_CFLAGS)
+else
 INCLUDES = -I$(top_srcdir) $(APERTIUM_CFLAGS)
+endif
 CLEANFILES = *~ apertium_destxt.cc apertium_retxt.cc apertium_deshtml.cc \
              apertium_rehtml.cc apertium_desrtf.cc apertium_rertf.cc \
              apertium_rehtml_noent.cc \
@@ -188,7 +192,7 @@ apertium_desxpresstag.cc: xpresstag-format.xml Makefile.am deformat.xsl
 apertium_rexpresstag.cc: xpresstag-format.xml Makefile.am reformat.xsl
 	$(XSLTPROC) reformat.xsl xpresstag-format.xml >$@tmp
 	$(FLEX) -Cfer -o$@ $@tmp
-	rm $@tmp	
+	rm $@tmp
 
 apertium_retxt.cc: txt-format.xml Makefile.am reformat.xsl
 	$(XSLTPROC) reformat.xsl txt-format.xml >$@tmp
@@ -295,48 +299,42 @@ apertium-validate-tagger: Makefile.am validate-header.sh
 	@echo "Creating apertium-validate-tagger script"
 	@echo "#!$(BASH)" > $@
 	@cat validate-header.sh >> $@
-	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/tagger.dtd --noout \$$FILE1 && exit 0;" >>$@
-	@echo "exit 1;" >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/tagger.dtd --noout \"\$$FILE1\"" >>$@
 	@chmod a+x $@
 
 apertium-validate-transfer: Makefile.am validate-header.sh
 	@echo "Creating apertium-validate-transfer script"
 	@echo "#!$(BASH)" > $@
 	@cat validate-header.sh >> $@
-	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/transfer.dtd --noout \$$FILE1 && exit 0;" >>$@
-	@echo "exit 1;" >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/transfer.dtd --noout \"\$$FILE1\"" >>$@
 	@chmod a+x $@
 
 apertium-validate-interchunk: Makefile.am validate-header.sh
 	@echo "Creating apertium-validate-interchunk script"
 	@echo "#!$(BASH)" > $@
 	@cat validate-header.sh >> $@
-	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/interchunk.dtd --noout \$$FILE1 && exit 0;" >>$@
-	@echo "exit 1;" >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/interchunk.dtd --noout \"\$$FILE1\"" >>$@
 	@chmod a+x $@
 
 apertium-validate-postchunk: Makefile.am validate-header.sh
 	@echo "Creating apertium-validate-postchunk script"
 	@echo "#!$(BASH)" > $@
 	@cat validate-header.sh >> $@
-	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/postchunk.dtd --noout \$$FILE1 && exit 0;" >>$@
-	@echo "exit 1;" >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/postchunk.dtd --noout \"\$$FILE1\"" >>$@
 	@chmod a+x $@
 
 apertium-validate-acx: Makefile.am validate-header.sh
 	@echo "Creating apertium-validate-acx script"
 	@echo "#!$(BASH)" > $@
 	@cat validate-header.sh >> $@
-	@echo "$(XMLLINT) --relaxng $(prefix)/share/lttoolbox/acx.rng --noout \$$FILE1 && exit 0;" >>$@
-	@echo "exit 1;" >> $@
+	@echo "$(XMLLINT) --relaxng $(prefix)/share/lttoolbox/acx.rng --schema $(prefix)/share/lttoolbox/acx.xsd --noout \"\$$FILE1\"" >>$@
 	@chmod a+x $@
 
 apertium-validate-modes: Makefile.am validate-header.sh
 	@echo "Creating apertium-validate-modes script"
 	@echo "#!$(BASH)" > $@
 	@cat validate-header.sh >> $@
-	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/modes.dtd --noout \$$FILE1 && exit 0;" >>$@
-	@echo "exit 1;" >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/modes.dtd --noout \"\$$FILE1\"" >>$@
 	@chmod a+x $@
 
 
@@ -344,8 +342,9 @@ apertium-validate-dictionary: Makefile.am validate-header.sh
 	@echo "Creating apertium-validate-dictionary script"
 	@echo "#!$(BASH)" > $@
 	@cat validate-header.sh >> $@
-	@echo "$(XMLLINT) --dtdvalid $(prefix)/share/lttoolbox/dix.dtd --noout \$$FILE1 && exit 0;" >> $@
-	@echo "exit 1;" >> $@
+	@echo "# xsd is a non-final command, so just treated as a warning when compiling:" >> $@
+	@echo "$(XMLLINT) --schema $(prefix)/share/lttoolbox/dix.xsd --noout \"\$$FILE1\"" >> $@
+	@echo "$(XMLLINT) --dtdvalid $(prefix)/share/lttoolbox/dix.dtd --noout \"\$$FILE1\"" >> $@
 	@chmod a+x $@
 
 apertium-gen-deformat: Makefile.am deformat-header.sh
@@ -356,7 +355,7 @@ apertium-gen-deformat: Makefile.am deformat-header.sh
 	@if [ `basename $(XSLTPROC)` == xsltproc ]; \
 	  then echo "$(XSLTPROC) --stringparam mode \$$MODE $(apertiumdir)/deformat.xsl \$$FILE1 >/tmp/\$$\$$.deformat.l && \\"; \
           else echo "$(XSLTPROC) $(apertiumdir)/deformat.xsl \$$FILE1 \"\\\$$mode=\$$MODE\" >/tmp/\$$\$$.deformat.l && \\"; \
-          fi >> $@ 
+          fi >> $@
 	@echo "$(FLEX) \$$FLEXOPTS -o/tmp/\$$\$$.lex.cc /tmp/\$$\$$.deformat.l && \\" >> $@
 	@echo "$(CXX) -DGENFORMAT $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) -o \$$FILE2 /tmp/\$$\$$.lex.cc $(APERTIUM_LIBS) 2>/dev/null && \\" >> $@
 	@echo "rm /tmp/\$$\$$.deformat.l /tmp/\$$\$$.lex.cc" >> $@
@@ -382,7 +381,7 @@ apertium-gen-modes: Makefile.am modes-header.sh
 	@if [ `basename $(XSLTPROC)` == xsltproc ]; \
 	  then echo "$(XSLTPROC) --stringparam prefix $(prefix)/bin --stringparam dataprefix \$$FULLDIRNAME  $(apertiumdir)/modes2bash.xsl \$$FILE1 | awk -f $(apertiumdir)/apertium-createmodes.awk PARAM=\$$FULLDIRNAME"; \
           else echo "$(XSLTPROC) $(apertiumdir)/modes2bash.xsl \$$FILE1 \\\$$prefix=$(prefix)/bin \\\$$dataprefix=\$$FULLDIRNAME| awk -f $(apertiumdir)/apertium-createmodes.awk PARAM=\$$FULLDIRNAME"; \
-          fi >> $@ 
+          fi >> $@
 	@chmod a+x $@
 
 apertium-utils-fixlatex: Makefile.am utils-fixlatex-header.sh
@@ -491,7 +490,7 @@ man_MANS=apertium.1 apertium-deshtml.1 apertium-desrtf.1 apertium-destxt.1 \
          apertium-validate-postchunk.1 apertium-validate-modes.1 apertium-tagger-apply-new-rules.1 \
 	 apertium-validate-acx.1 apertium-multiple-translations.1 \
 	 apertium-unformat.1
-         ###apertium-lextor-eval.1 
+         ###apertium-lextor-eval.1
 
 EXTRA_DIST = gen-header.sh deformat-header.sh \
              reformat.xsl deformat.xsl new2old.xsl lexchoice.xsl lexchoicebil.xsl \
@@ -506,4 +505,4 @@ EXTRA_DIST = gen-header.sh deformat-header.sh \
              gen-wlist-lextor-header.sh gen-stopwords-lextor.sh preprocess-corpus-lextor.sh \
              interchunk.dtd postchunk.dtd modes.dtd \
              utils-fixlatex-header.sh \
-             modes-header.sh apertium-createmodes.awk modes2bash.xsl ###trans-lextor-header.sh 
+             modes-header.sh apertium-createmodes.awk modes2bash.xsl ###trans-lextor-header.sh
diff --git a/apertium/Makefile.in b/apertium/Makefile.in
new file mode 100644
index 0000000..0972aaa
--- /dev/null
+++ b/apertium/Makefile.in
@@ -0,0 +1,1767 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+bin_PROGRAMS = apertium-pretransfer$(EXEEXT) apertium-destxt$(EXEEXT) \
+	apertium-retxt$(EXEEXT) apertium-deshtml$(EXEEXT) \
+	apertium-rehtml$(EXEEXT) apertium-rehtml-noent$(EXEEXT) \
+	apertium-desxpresstag$(EXEEXT) apertium-rexpresstag$(EXEEXT) \
+	apertium-desodt$(EXEEXT) apertium-reodt$(EXEEXT) \
+	apertium-desrtf$(EXEEXT) apertium-rertf$(EXEEXT) \
+	apertium-deswxml$(EXEEXT) apertium-rewxml$(EXEEXT) \
+	apertium-deslatex$(EXEEXT) apertium-relatex$(EXEEXT) \
+	apertium-desxlsx$(EXEEXT) apertium-rexlsx$(EXEEXT) \
+	apertium-despptx$(EXEEXT) apertium-repptx$(EXEEXT) \
+	apertium-desmediawiki$(EXEEXT) apertium-remediawiki$(EXEEXT) \
+	apertium-prelatex$(EXEEXT) apertium-postlatex$(EXEEXT) \
+	apertium-postlatex-raw$(EXEEXT) apertium-tagger$(EXEEXT) \
+	apertium-preprocess-transfer$(EXEEXT) \
+	apertium-transfer$(EXEEXT) apertium-filter-ambiguity$(EXEEXT) \
+	apertium-interchunk$(EXEEXT) apertium-postchunk$(EXEEXT) \
+	apertium-multiple-translations$(EXEEXT) \
+	apertium-tagger-apply-new-rules$(EXEEXT) \
+	apertium-tagger-readwords$(EXEEXT) apertium-tmxbuild$(EXEEXT)
+subdir = apertium
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(library_include_HEADERS) \
+	$(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = apertium_config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
+	"$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
+	"$(DESTDIR)$(apertiumdir)" "$(DESTDIR)$(library_includedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libapertium3_la_LIBADD =
+am__objects_1 =
+am__objects_2 = collection.lo constant_manager.lo hmm.lo lswpost.lo \
+	interchunk.lo interchunk_word.lo lextor.lo lextor_data.lo \
+	lextor_eval.lo lextor_word.lo morpho_stream.lo postchunk.lo \
+	string_utils.lo tagger.lo tagger_data.lo tagger_data_hmm.lo \
+	tagger_data_lsw.lo tagger_utils.lo tagger_word.lo transfer.lo \
+	transfer_data.lo transfer_instr.lo transfer_token.lo \
+	transfer_word.lo transfer_word_list.lo trx_reader.lo \
+	tsx_reader.lo utf_converter.lo apertium_re.lo \
+	endian_double_util.lo transfer_mult.lo tmx_builder.lo \
+	tmx_aligner_tool.lo tmx_alignment.lo tmx_arguments_parser.lo \
+	tmx_book_to_matrix.lo tmx_dictionary.lo \
+	tmx_strings_and_streams.lo tmx_trail_postprocessors.lo \
+	tmx_translate.lo latex_accentsmap.lo
+am_libapertium3_la_OBJECTS = $(am__objects_1) $(am__objects_2)
+libapertium3_la_OBJECTS = $(am_libapertium3_la_OBJECTS)
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libapertium3_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(libapertium3_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
+PROGRAMS = $(bin_PROGRAMS)
+am_apertium_deshtml_OBJECTS = apertium_deshtml.$(OBJEXT)
+apertium_deshtml_OBJECTS = $(am_apertium_deshtml_OBJECTS)
+apertium_deshtml_LDADD = $(LDADD)
+am_apertium_deslatex_OBJECTS = apertium_deslatex.$(OBJEXT)
+apertium_deslatex_OBJECTS = $(am_apertium_deslatex_OBJECTS)
+apertium_deslatex_LDADD = $(LDADD)
+am_apertium_desmediawiki_OBJECTS = apertium_desmediawiki.$(OBJEXT)
+apertium_desmediawiki_OBJECTS = $(am_apertium_desmediawiki_OBJECTS)
+apertium_desmediawiki_LDADD = $(LDADD)
+am_apertium_desodt_OBJECTS = apertium_desodt.$(OBJEXT)
+apertium_desodt_OBJECTS = $(am_apertium_desodt_OBJECTS)
+apertium_desodt_LDADD = $(LDADD)
+am_apertium_despptx_OBJECTS = apertium_despptx.$(OBJEXT)
+apertium_despptx_OBJECTS = $(am_apertium_despptx_OBJECTS)
+apertium_despptx_LDADD = $(LDADD)
+am_apertium_desrtf_OBJECTS = apertium_desrtf.$(OBJEXT)
+apertium_desrtf_OBJECTS = $(am_apertium_desrtf_OBJECTS)
+apertium_desrtf_LDADD = $(LDADD)
+am_apertium_destxt_OBJECTS = apertium_destxt.$(OBJEXT)
+apertium_destxt_OBJECTS = $(am_apertium_destxt_OBJECTS)
+apertium_destxt_LDADD = $(LDADD)
+am_apertium_deswxml_OBJECTS = apertium_deswxml.$(OBJEXT)
+apertium_deswxml_OBJECTS = $(am_apertium_deswxml_OBJECTS)
+apertium_deswxml_LDADD = $(LDADD)
+am_apertium_desxlsx_OBJECTS = apertium_desxlsx.$(OBJEXT)
+apertium_desxlsx_OBJECTS = $(am_apertium_desxlsx_OBJECTS)
+apertium_desxlsx_LDADD = $(LDADD)
+am_apertium_desxpresstag_OBJECTS = apertium_desxpresstag.$(OBJEXT)
+apertium_desxpresstag_OBJECTS = $(am_apertium_desxpresstag_OBJECTS)
+apertium_desxpresstag_LDADD = $(LDADD)
+am_apertium_filter_ambiguity_OBJECTS =  \
+	apertium_filter_ambiguity.$(OBJEXT)
+apertium_filter_ambiguity_OBJECTS =  \
+	$(am_apertium_filter_ambiguity_OBJECTS)
+am__DEPENDENCIES_1 =
+apertium_filter_ambiguity_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_interchunk_OBJECTS = apertium_interchunk.$(OBJEXT)
+apertium_interchunk_OBJECTS = $(am_apertium_interchunk_OBJECTS)
+apertium_interchunk_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_multiple_translations_OBJECTS =  \
+	apertium-multiple-translations.$(OBJEXT)
+apertium_multiple_translations_OBJECTS =  \
+	$(am_apertium_multiple_translations_OBJECTS)
+apertium_multiple_translations_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_postchunk_OBJECTS = apertium_postchunk.$(OBJEXT)
+apertium_postchunk_OBJECTS = $(am_apertium_postchunk_OBJECTS)
+apertium_postchunk_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_postlatex_OBJECTS = apertium_postlatex.$(OBJEXT)
+apertium_postlatex_OBJECTS = $(am_apertium_postlatex_OBJECTS)
+apertium_postlatex_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_postlatex_raw_OBJECTS = apertium_postlatex_raw.$(OBJEXT)
+apertium_postlatex_raw_OBJECTS = $(am_apertium_postlatex_raw_OBJECTS)
+apertium_postlatex_raw_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_prelatex_OBJECTS = apertium_prelatex.$(OBJEXT)
+apertium_prelatex_OBJECTS = $(am_apertium_prelatex_OBJECTS)
+apertium_prelatex_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_preprocess_transfer_OBJECTS = transferpp.$(OBJEXT)
+apertium_preprocess_transfer_OBJECTS =  \
+	$(am_apertium_preprocess_transfer_OBJECTS)
+apertium_preprocess_transfer_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_pretransfer_OBJECTS = apertium_pretransfer.$(OBJEXT)
+apertium_pretransfer_OBJECTS = $(am_apertium_pretransfer_OBJECTS)
+apertium_pretransfer_LDADD = $(LDADD)
+am_apertium_rehtml_OBJECTS = apertium_rehtml.$(OBJEXT)
+apertium_rehtml_OBJECTS = $(am_apertium_rehtml_OBJECTS)
+apertium_rehtml_LDADD = $(LDADD)
+am_apertium_rehtml_noent_OBJECTS = apertium_rehtml_noent.$(OBJEXT)
+apertium_rehtml_noent_OBJECTS = $(am_apertium_rehtml_noent_OBJECTS)
+apertium_rehtml_noent_LDADD = $(LDADD)
+am_apertium_relatex_OBJECTS = apertium_relatex.$(OBJEXT)
+apertium_relatex_OBJECTS = $(am_apertium_relatex_OBJECTS)
+apertium_relatex_LDADD = $(LDADD)
+am_apertium_remediawiki_OBJECTS = apertium_remediawiki.$(OBJEXT)
+apertium_remediawiki_OBJECTS = $(am_apertium_remediawiki_OBJECTS)
+apertium_remediawiki_LDADD = $(LDADD)
+am_apertium_reodt_OBJECTS = apertium_reodt.$(OBJEXT)
+apertium_reodt_OBJECTS = $(am_apertium_reodt_OBJECTS)
+apertium_reodt_LDADD = $(LDADD)
+am_apertium_repptx_OBJECTS = apertium_repptx.$(OBJEXT)
+apertium_repptx_OBJECTS = $(am_apertium_repptx_OBJECTS)
+apertium_repptx_LDADD = $(LDADD)
+am_apertium_rertf_OBJECTS = apertium_rertf.$(OBJEXT)
+apertium_rertf_OBJECTS = $(am_apertium_rertf_OBJECTS)
+apertium_rertf_LDADD = $(LDADD)
+am_apertium_retxt_OBJECTS = apertium_retxt.$(OBJEXT)
+apertium_retxt_OBJECTS = $(am_apertium_retxt_OBJECTS)
+apertium_retxt_LDADD = $(LDADD)
+am_apertium_rewxml_OBJECTS = apertium_rewxml.$(OBJEXT)
+apertium_rewxml_OBJECTS = $(am_apertium_rewxml_OBJECTS)
+apertium_rewxml_LDADD = $(LDADD)
+am_apertium_rexlsx_OBJECTS = apertium_rexlsx.$(OBJEXT)
+apertium_rexlsx_OBJECTS = $(am_apertium_rexlsx_OBJECTS)
+apertium_rexlsx_LDADD = $(LDADD)
+am_apertium_rexpresstag_OBJECTS = apertium_rexpresstag.$(OBJEXT)
+apertium_rexpresstag_OBJECTS = $(am_apertium_rexpresstag_OBJECTS)
+apertium_rexpresstag_LDADD = $(LDADD)
+am_apertium_tagger_OBJECTS = apertium_tagger.$(OBJEXT)
+apertium_tagger_OBJECTS = $(am_apertium_tagger_OBJECTS)
+apertium_tagger_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_tagger_apply_new_rules_OBJECTS =  \
+	apertium_tagger_apply_new_rules.$(OBJEXT)
+apertium_tagger_apply_new_rules_OBJECTS =  \
+	$(am_apertium_tagger_apply_new_rules_OBJECTS)
+apertium_tagger_apply_new_rules_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_tagger_readwords_OBJECTS =  \
+	apertium_tagger_readwords.$(OBJEXT)
+apertium_tagger_readwords_OBJECTS =  \
+	$(am_apertium_tagger_readwords_OBJECTS)
+apertium_tagger_readwords_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_tmxbuild_OBJECTS = apertium_tmxbuild.$(OBJEXT)
+apertium_tmxbuild_OBJECTS = $(am_apertium_tmxbuild_OBJECTS)
+apertium_tmxbuild_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_apertium_transfer_OBJECTS = apertium_transfer.$(OBJEXT)
+apertium_transfer_OBJECTS = $(am_apertium_transfer_OBJECTS)
+apertium_transfer_DEPENDENCIES = $(am__DEPENDENCIES_1)
+SCRIPTS = $(bin_SCRIPTS)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I. at am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_ at AM_V@)
+am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libapertium3_la_SOURCES) $(apertium_deshtml_SOURCES) \
+	$(apertium_deslatex_SOURCES) $(apertium_desmediawiki_SOURCES) \
+	$(apertium_desodt_SOURCES) $(apertium_despptx_SOURCES) \
+	$(apertium_desrtf_SOURCES) $(apertium_destxt_SOURCES) \
+	$(apertium_deswxml_SOURCES) $(apertium_desxlsx_SOURCES) \
+	$(apertium_desxpresstag_SOURCES) \
+	$(apertium_filter_ambiguity_SOURCES) \
+	$(apertium_interchunk_SOURCES) \
+	$(apertium_multiple_translations_SOURCES) \
+	$(apertium_postchunk_SOURCES) $(apertium_postlatex_SOURCES) \
+	$(apertium_postlatex_raw_SOURCES) $(apertium_prelatex_SOURCES) \
+	$(apertium_preprocess_transfer_SOURCES) \
+	$(apertium_pretransfer_SOURCES) $(apertium_rehtml_SOURCES) \
+	$(apertium_rehtml_noent_SOURCES) $(apertium_relatex_SOURCES) \
+	$(apertium_remediawiki_SOURCES) $(apertium_reodt_SOURCES) \
+	$(apertium_repptx_SOURCES) $(apertium_rertf_SOURCES) \
+	$(apertium_retxt_SOURCES) $(apertium_rewxml_SOURCES) \
+	$(apertium_rexlsx_SOURCES) $(apertium_rexpresstag_SOURCES) \
+	$(apertium_tagger_SOURCES) \
+	$(apertium_tagger_apply_new_rules_SOURCES) \
+	$(apertium_tagger_readwords_SOURCES) \
+	$(apertium_tmxbuild_SOURCES) $(apertium_transfer_SOURCES)
+DIST_SOURCES = $(libapertium3_la_SOURCES) $(apertium_deshtml_SOURCES) \
+	$(apertium_deslatex_SOURCES) $(apertium_desmediawiki_SOURCES) \
+	$(apertium_desodt_SOURCES) $(apertium_despptx_SOURCES) \
+	$(apertium_desrtf_SOURCES) $(apertium_destxt_SOURCES) \
+	$(apertium_deswxml_SOURCES) $(apertium_desxlsx_SOURCES) \
+	$(apertium_desxpresstag_SOURCES) \
+	$(apertium_filter_ambiguity_SOURCES) \
+	$(apertium_interchunk_SOURCES) \
+	$(apertium_multiple_translations_SOURCES) \
+	$(apertium_postchunk_SOURCES) $(apertium_postlatex_SOURCES) \
+	$(apertium_postlatex_raw_SOURCES) $(apertium_prelatex_SOURCES) \
+	$(apertium_preprocess_transfer_SOURCES) \
+	$(apertium_pretransfer_SOURCES) $(apertium_rehtml_SOURCES) \
+	$(apertium_rehtml_noent_SOURCES) $(apertium_relatex_SOURCES) \
+	$(apertium_remediawiki_SOURCES) $(apertium_reodt_SOURCES) \
+	$(apertium_repptx_SOURCES) $(apertium_rertf_SOURCES) \
+	$(apertium_retxt_SOURCES) $(apertium_rewxml_SOURCES) \
+	$(apertium_rexlsx_SOURCES) $(apertium_rexpresstag_SOURCES) \
+	$(apertium_tagger_SOURCES) \
+	$(apertium_tagger_apply_new_rules_SOURCES) \
+	$(apertium_tagger_readwords_SOURCES) \
+	$(apertium_tmxbuild_SOURCES) $(apertium_transfer_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
+DATA = $(apertium_DATA)
+HEADERS = $(library_include_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)apertium_config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/apertium_config.h.in \
+	$(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APERTIUM_CFLAGS = @APERTIUM_CFLAGS@
+APERTIUM_LIBS = @APERTIUM_LIBS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BASH = @BASH@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FLEX = @FLEX@
+GENERIC_API_VERSION = @GENERIC_API_VERSION@
+GENERIC_LIBRARY_NAME = @GENERIC_LIBRARY_NAME@
+GENERIC_LIBRARY_VERSION = @GENERIC_LIBRARY_VERSION@
+GENERIC_MAJOR_VERSION = @GENERIC_MAJOR_VERSION@
+GENERIC_RELEASE = @GENERIC_RELEASE@
+GENERIC_VERSION = @GENERIC_VERSION@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+XMLLINT = @XMLLINT@
+XSLTPROC = @XSLTPROC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+h_sources = collection.h constant_manager.h hmm.h lswpost.h interchunk.h \
+            interchunk_word.h lextor_data.h lextor_eval.h lextor.h \
+            lextor_word.h morpho_stream.h postchunk.h string_utils.h \
+            tagger_data.h tagger_data_hmm.h tagger_data_lsw.h tagger.h tagger_utils.h tagger_word.h \
+            transfer_data.h transfer.h transfer_instr.h transfer_token.h \
+            transfer_word.h transfer_word_list.h trx_reader.h tsx_reader.h \
+            ttag.h utf_converter.h apertium_re.h unlocked_cstdio.h \
+            endian_double_util.h transfer_mult.h tmx_builder.h \
+            tmx_alignment.h tmx_arguments_parser.h tmx_book_to_matrix.h \
+            tmx_dictionary.h tmx_dic_tree.h tmx_quasi_diagonal.h \
+            tmx_serialize_impl.h tmx_strings_and_streams.h \
+            tmx_trail_postprocessors.h tmx_translate.h tmx_words.h \
+            tmx_align_parameters.h tmx_aligner_tool.h latex_accentsmap.h
+
+cc_sources = collection.cc constant_manager.cc hmm.cc lswpost.cc interchunk.cc \
+             interchunk_word.cc lextor.cc lextor_data.cc lextor_eval.cc \
+             lextor_word.cc morpho_stream.cc postchunk.cc string_utils.cc \
+             tagger.cc tagger_data.cc tagger_data_hmm.cc tagger_data_lsw.cc tagger_utils.cc tagger_word.cc \
+             transfer.cc transfer_data.cc transfer_instr.cc \
+             transfer_token.cc transfer_word.cc transfer_word_list.cc \
+             trx_reader.cc tsx_reader.cc utf_converter.cc apertium_re.cc \
+             endian_double_util.cc transfer_mult.cc tmx_builder.cc \
+             tmx_aligner_tool.cc tmx_alignment.cc tmx_arguments_parser.cc \
+             tmx_book_to_matrix.cc tmx_dictionary.cc \
+             tmx_strings_and_streams.cc tmx_trail_postprocessors.cc \
+             tmx_translate.cc latex_accentsmap.cc
+
+library_includedir = $(includedir)/$(GENERIC_LIBRARY_NAME)-$(GENERIC_API_VERSION)/$(GENERIC_LIBRARY_NAME)
+library_include_HEADERS = $(h_sources)
+GENERATEDSCRIPTS = apertium-gen-deformat apertium-gen-reformat \
+                   apertium-validate-tagger \
+                   apertium-validate-transfer apertium-validate-dictionary \
+                   apertium-validate-modes \
+                   apertium-validate-interchunk \
+                   apertium-validate-postchunk apertium apertium-unformat \
+                   apertium-gen-modes apertium-validate-acx \
+                   apertium-utils-fixlatex
+
+lib_LTLIBRARIES = libapertium3.la
+libapertium3_la_SOURCES = $(h_sources) $(cc_sources)
+libapertium3_la_LDFLAGS = -version-info $(GENERIC_LIBRARY_VERSION) -release $(GENERIC_RELEASE)
+bin_SCRIPTS = $(GENERATEDSCRIPTS)
+instdir = apertium
+apertiumdir = $(prefix)/share/apertium
+apertiuminclude = $(prefix)/include/apertium-$(GENERIC_API_VERSION)
+apertiumlib = $(prefix)/lib
+apertiumsysconf = $(prefix)/etc/apertium
+apertium_DATA = deformat.xsl reformat.xsl new2old.xsl lexchoice.xsl \
+                lexchoicebil.xsl tagger.dtd interchunk.dtd format.dtd \
+                transfer.dtd postchunk.dtd modes.dtd modes2bash.xsl \
+                apertium-createmodes.awk
+
+apertium_pretransfer_SOURCES = apertium_pretransfer.cc
+apertium_multiple_translations_SOURCES = apertium-multiple-translations.cc
+apertium_multiple_translations_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_destxt_SOURCES = apertium_destxt.cc
+apertium_retxt_SOURCES = apertium_retxt.cc
+apertium_deshtml_SOURCES = apertium_deshtml.cc
+apertium_rehtml_SOURCES = apertium_rehtml.cc
+apertium_rehtml_noent_SOURCES = apertium_rehtml_noent.cc
+apertium_desxpresstag_SOURCES = apertium_desxpresstag.cc
+apertium_rexpresstag_SOURCES = apertium_rexpresstag.cc
+apertium_desodt_SOURCES = apertium_desodt.cc
+apertium_reodt_SOURCES = apertium_reodt.cc
+apertium_desrtf_SOURCES = apertium_desrtf.cc
+apertium_rertf_SOURCES = apertium_rertf.cc
+apertium_deswxml_SOURCES = apertium_deswxml.cc
+apertium_rewxml_SOURCES = apertium_rewxml.cc
+apertium_deslatex_SOURCES = apertium_deslatex.cc
+apertium_relatex_SOURCES = apertium_relatex.cc
+apertium_desxlsx_SOURCES = apertium_desxlsx.cc
+apertium_rexlsx_SOURCES = apertium_rexlsx.cc
+apertium_despptx_SOURCES = apertium_despptx.cc
+apertium_repptx_SOURCES = apertium_repptx.cc
+apertium_desmediawiki_SOURCES = apertium_desmediawiki.cc
+apertium_remediawiki_SOURCES = apertium_remediawiki.cc
+apertium_prelatex_SOURCES = apertium_prelatex.cc
+apertium_prelatex_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_postlatex_SOURCES = apertium_postlatex.cc
+apertium_postlatex_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_postlatex_raw_SOURCES = apertium_postlatex_raw.cc
+apertium_postlatex_raw_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_tagger_SOURCES = apertium_tagger.cc
+apertium_tagger_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_tmxbuild_SOURCES = apertium_tmxbuild.cc
+apertium_tmxbuild_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_preprocess_transfer_SOURCES = transferpp.cc
+apertium_preprocess_transfer_LDADD = $(APERTIUM_LIBS) \
+                                     -lapertium$(GENERIC_MAJOR_VERSION)
+
+apertium_filter_ambiguity_SOURCES = apertium_filter_ambiguity.cc
+apertium_filter_ambiguity_LDADD = $(APERTIUM_LIBS) \
+                                  -lapertium$(GENERIC_MAJOR_VERSION)
+
+apertium_transfer_SOURCES = apertium_transfer.cc
+apertium_transfer_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_interchunk_SOURCES = apertium_interchunk.cc
+apertium_interchunk_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_postchunk_SOURCES = apertium_postchunk.cc
+apertium_postchunk_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+
+###apertium_lextor_SOURCES = apertium_lextor.cc
+###apertium_lextor_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+
+#apertium_lextor_eval_SOURCES = apertium-lextor-eval.C
+#apertium_lextor_eval_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_tagger_apply_new_rules_SOURCES = apertium_tagger_apply_new_rules.cc
+apertium_tagger_apply_new_rules_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+apertium_tagger_readwords_SOURCES = apertium_tagger_readwords.cc
+apertium_tagger_readwords_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+ at WINDOWS_FALSE@INCLUDES = -I$(top_srcdir) $(APERTIUM_CFLAGS)
+
+###apertium_lextor_search_SOURCES = apertium-lextor-search.C
+###apertium_lextor_search_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+
+###pruebas_lextor_SOURCES = pruebas-lextor.C
+###pruebas_lextor_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+
+###apertium_gen_wlist_lextor_translation_SOURCES = apertium_gen_wlist_lextor_translation.cc
+###apertium_gen_wlist_lextor_translation_LDADD = $(APERTIUM_LIBS) -lapertium$(GENERIC_MAJOR_VERSION)
+ at WINDOWS_TRUE@INCLUDES = -I$(top_srcdir)/apertium/win32 -I$(top_srcdir) $(APERTIUM_CFLAGS)
+CLEANFILES = *~ apertium_destxt.cc apertium_retxt.cc apertium_deshtml.cc \
+             apertium_rehtml.cc apertium_desrtf.cc apertium_rertf.cc \
+             apertium_rehtml_noent.cc \
+             apertium_deswxml.cc apertium_rewxml.cc \
+             apertium_deslatex.cc apertium_relatex.cc \
+             apertium_desxlsx.cc apertium_rexlsx.cc \
+             apertium_despptx.cc apertium_repptx.cc \
+             apertium_desodt.cc apertium_reodt.cc \
+	     apertium_desxpresstag.cc apertium_rexpresstag.cc \
+             apertium_desmediawiki.cc apertium_remediawiki.cc \
+             apertium_prelatex.cc apertium_postlatex.cc \
+             $(GENERATEDSCRIPTS)
+
+man_MANS = apertium.1 apertium-deshtml.1 apertium-desrtf.1 apertium-destxt.1 \
+         apertium-desodt.1 apertium-reodt.1 \
+         apertium-deswxml.1 apertium-rewxml.1 \
+         apertium-deslatex.1 apertium-relatex.1 \
+         apertium-prelatex.1 apertium-postlatex.1 apertium-postlatex-raw.1 \
+         apertium-desxlsx.1 apertium-rexlsx.1 \
+         apertium-despptx.1 apertium-repptx.1 \
+         apertium-desmediawiki.1 apertium-remediawiki.1 \
+         apertium-filter-ambiguity.1 apertium-gen-deformat.1 apertium-gen-lextorbil.1 \
+         apertium-gen-lextormono.1 apertium-gen-reformat.1 apertium-gen-stopwords-lextor.1 \
+         apertium-gen-wlist-lextor.1 apertium-gen-wlist-lextor-translation.1 \
+         apertium-lextor.1 apertium-preprocess-corpus-lextor.1 \
+         apertium-preprocess-transfer.1 apertium-pretransfer.1 apertium-rehtml.1 \
+         apertium-rertf.1 apertium-retxt.1 apertium-tagger.1 apertium-transfer.1 \
+         apertium-validate-dictionary.1 apertium-validate-tagger.1 \
+         apertium-validate-transfer.1 apertium-gen-modes.1 apertium-interchunk.1 \
+         apertium-postchunk.1 apertium-validate-interchunk.1 apertium-utils-fixlatex.1 \
+         apertium-validate-postchunk.1 apertium-validate-modes.1 apertium-tagger-apply-new-rules.1 \
+	 apertium-validate-acx.1 apertium-multiple-translations.1 \
+	 apertium-unformat.1
+
+EXTRA_DIST = gen-header.sh deformat-header.sh \
+             reformat.xsl deformat.xsl new2old.xsl lexchoice.xsl lexchoicebil.xsl \
+             tagger.dtd transfer.dtd format.dtd txt-format.xml \
+             html-format.xml odt-format.xml rtf-format.xml wxml-format.xml latex-format.xml\
+             html-noent-format.xml \
+             xlsx-format.xml pptx-format.xml mediawiki-format.xml trans-header.sh \
+             apertium-postlatex.l  apertium-postlatex-raw.l  apertium-prelatex.l \
+             apertium-header.sh apertium-unformat-header.sh $(man_MANS) \
+             xpresstag-format.xml \
+             validate-header.sh transformdic-header.sh transformdicbil-header.sh \
+             gen-wlist-lextor-header.sh gen-stopwords-lextor.sh preprocess-corpus-lextor.sh \
+             interchunk.dtd postchunk.dtd modes.dtd \
+             utils-fixlatex-header.sh \
+             modes-header.sh apertium-createmodes.awk modes2bash.xsl ###trans-lextor-header.sh
+
+all: apertium_config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu apertium/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu apertium/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+apertium_config.h: stamp-h1
+	@test -f $@ || rm -f stamp-h1
+	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/apertium_config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status apertium/apertium_config.h
+$(srcdir)/apertium_config.h.in:  $(am__configure_deps) 
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f apertium_config.h stamp-h1
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
+	  if test -f $$p; then \
+	    list2="$$list2 $$p"; \
+	  else :; fi; \
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
+
+uninstall-libLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+	done
+
+clean-libLTLIBRARIES:
+	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
+libapertium3.la: $(libapertium3_la_OBJECTS) $(libapertium3_la_DEPENDENCIES) $(EXTRA_libapertium3_la_DEPENDENCIES) 
+	$(AM_V_CXXLD)$(libapertium3_la_LINK) -rpath $(libdir) $(libapertium3_la_OBJECTS) $(libapertium3_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+apertium-deshtml$(EXEEXT): $(apertium_deshtml_OBJECTS) $(apertium_deshtml_DEPENDENCIES) $(EXTRA_apertium_deshtml_DEPENDENCIES) 
+	@rm -f apertium-deshtml$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_deshtml_OBJECTS) $(apertium_deshtml_LDADD) $(LIBS)
+
+apertium-deslatex$(EXEEXT): $(apertium_deslatex_OBJECTS) $(apertium_deslatex_DEPENDENCIES) $(EXTRA_apertium_deslatex_DEPENDENCIES) 
+	@rm -f apertium-deslatex$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_deslatex_OBJECTS) $(apertium_deslatex_LDADD) $(LIBS)
+
+apertium-desmediawiki$(EXEEXT): $(apertium_desmediawiki_OBJECTS) $(apertium_desmediawiki_DEPENDENCIES) $(EXTRA_apertium_desmediawiki_DEPENDENCIES) 
+	@rm -f apertium-desmediawiki$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_desmediawiki_OBJECTS) $(apertium_desmediawiki_LDADD) $(LIBS)
+
+apertium-desodt$(EXEEXT): $(apertium_desodt_OBJECTS) $(apertium_desodt_DEPENDENCIES) $(EXTRA_apertium_desodt_DEPENDENCIES) 
+	@rm -f apertium-desodt$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_desodt_OBJECTS) $(apertium_desodt_LDADD) $(LIBS)
+
+apertium-despptx$(EXEEXT): $(apertium_despptx_OBJECTS) $(apertium_despptx_DEPENDENCIES) $(EXTRA_apertium_despptx_DEPENDENCIES) 
+	@rm -f apertium-despptx$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_despptx_OBJECTS) $(apertium_despptx_LDADD) $(LIBS)
+
+apertium-desrtf$(EXEEXT): $(apertium_desrtf_OBJECTS) $(apertium_desrtf_DEPENDENCIES) $(EXTRA_apertium_desrtf_DEPENDENCIES) 
+	@rm -f apertium-desrtf$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_desrtf_OBJECTS) $(apertium_desrtf_LDADD) $(LIBS)
+
+apertium-destxt$(EXEEXT): $(apertium_destxt_OBJECTS) $(apertium_destxt_DEPENDENCIES) $(EXTRA_apertium_destxt_DEPENDENCIES) 
+	@rm -f apertium-destxt$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_destxt_OBJECTS) $(apertium_destxt_LDADD) $(LIBS)
+
+apertium-deswxml$(EXEEXT): $(apertium_deswxml_OBJECTS) $(apertium_deswxml_DEPENDENCIES) $(EXTRA_apertium_deswxml_DEPENDENCIES) 
+	@rm -f apertium-deswxml$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_deswxml_OBJECTS) $(apertium_deswxml_LDADD) $(LIBS)
+
+apertium-desxlsx$(EXEEXT): $(apertium_desxlsx_OBJECTS) $(apertium_desxlsx_DEPENDENCIES) $(EXTRA_apertium_desxlsx_DEPENDENCIES) 
+	@rm -f apertium-desxlsx$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_desxlsx_OBJECTS) $(apertium_desxlsx_LDADD) $(LIBS)
+
+apertium-desxpresstag$(EXEEXT): $(apertium_desxpresstag_OBJECTS) $(apertium_desxpresstag_DEPENDENCIES) $(EXTRA_apertium_desxpresstag_DEPENDENCIES) 
+	@rm -f apertium-desxpresstag$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_desxpresstag_OBJECTS) $(apertium_desxpresstag_LDADD) $(LIBS)
+
+apertium-filter-ambiguity$(EXEEXT): $(apertium_filter_ambiguity_OBJECTS) $(apertium_filter_ambiguity_DEPENDENCIES) $(EXTRA_apertium_filter_ambiguity_DEPENDENCIES) 
+	@rm -f apertium-filter-ambiguity$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_filter_ambiguity_OBJECTS) $(apertium_filter_ambiguity_LDADD) $(LIBS)
+
+apertium-interchunk$(EXEEXT): $(apertium_interchunk_OBJECTS) $(apertium_interchunk_DEPENDENCIES) $(EXTRA_apertium_interchunk_DEPENDENCIES) 
+	@rm -f apertium-interchunk$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_interchunk_OBJECTS) $(apertium_interchunk_LDADD) $(LIBS)
+
+apertium-multiple-translations$(EXEEXT): $(apertium_multiple_translations_OBJECTS) $(apertium_multiple_translations_DEPENDENCIES) $(EXTRA_apertium_multiple_translations_DEPENDENCIES) 
+	@rm -f apertium-multiple-translations$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_multiple_translations_OBJECTS) $(apertium_multiple_translations_LDADD) $(LIBS)
+
+apertium-postchunk$(EXEEXT): $(apertium_postchunk_OBJECTS) $(apertium_postchunk_DEPENDENCIES) $(EXTRA_apertium_postchunk_DEPENDENCIES) 
+	@rm -f apertium-postchunk$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_postchunk_OBJECTS) $(apertium_postchunk_LDADD) $(LIBS)
+
+apertium-postlatex$(EXEEXT): $(apertium_postlatex_OBJECTS) $(apertium_postlatex_DEPENDENCIES) $(EXTRA_apertium_postlatex_DEPENDENCIES) 
+	@rm -f apertium-postlatex$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_postlatex_OBJECTS) $(apertium_postlatex_LDADD) $(LIBS)
+
+apertium-postlatex-raw$(EXEEXT): $(apertium_postlatex_raw_OBJECTS) $(apertium_postlatex_raw_DEPENDENCIES) $(EXTRA_apertium_postlatex_raw_DEPENDENCIES) 
+	@rm -f apertium-postlatex-raw$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_postlatex_raw_OBJECTS) $(apertium_postlatex_raw_LDADD) $(LIBS)
+
+apertium-prelatex$(EXEEXT): $(apertium_prelatex_OBJECTS) $(apertium_prelatex_DEPENDENCIES) $(EXTRA_apertium_prelatex_DEPENDENCIES) 
+	@rm -f apertium-prelatex$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_prelatex_OBJECTS) $(apertium_prelatex_LDADD) $(LIBS)
+
+apertium-preprocess-transfer$(EXEEXT): $(apertium_preprocess_transfer_OBJECTS) $(apertium_preprocess_transfer_DEPENDENCIES) $(EXTRA_apertium_preprocess_transfer_DEPENDENCIES) 
+	@rm -f apertium-preprocess-transfer$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_preprocess_transfer_OBJECTS) $(apertium_preprocess_transfer_LDADD) $(LIBS)
+
+apertium-pretransfer$(EXEEXT): $(apertium_pretransfer_OBJECTS) $(apertium_pretransfer_DEPENDENCIES) $(EXTRA_apertium_pretransfer_DEPENDENCIES) 
+	@rm -f apertium-pretransfer$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_pretransfer_OBJECTS) $(apertium_pretransfer_LDADD) $(LIBS)
+
+apertium-rehtml$(EXEEXT): $(apertium_rehtml_OBJECTS) $(apertium_rehtml_DEPENDENCIES) $(EXTRA_apertium_rehtml_DEPENDENCIES) 
+	@rm -f apertium-rehtml$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_rehtml_OBJECTS) $(apertium_rehtml_LDADD) $(LIBS)
+
+apertium-rehtml-noent$(EXEEXT): $(apertium_rehtml_noent_OBJECTS) $(apertium_rehtml_noent_DEPENDENCIES) $(EXTRA_apertium_rehtml_noent_DEPENDENCIES) 
+	@rm -f apertium-rehtml-noent$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_rehtml_noent_OBJECTS) $(apertium_rehtml_noent_LDADD) $(LIBS)
+
+apertium-relatex$(EXEEXT): $(apertium_relatex_OBJECTS) $(apertium_relatex_DEPENDENCIES) $(EXTRA_apertium_relatex_DEPENDENCIES) 
+	@rm -f apertium-relatex$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_relatex_OBJECTS) $(apertium_relatex_LDADD) $(LIBS)
+
+apertium-remediawiki$(EXEEXT): $(apertium_remediawiki_OBJECTS) $(apertium_remediawiki_DEPENDENCIES) $(EXTRA_apertium_remediawiki_DEPENDENCIES) 
+	@rm -f apertium-remediawiki$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_remediawiki_OBJECTS) $(apertium_remediawiki_LDADD) $(LIBS)
+
+apertium-reodt$(EXEEXT): $(apertium_reodt_OBJECTS) $(apertium_reodt_DEPENDENCIES) $(EXTRA_apertium_reodt_DEPENDENCIES) 
+	@rm -f apertium-reodt$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_reodt_OBJECTS) $(apertium_reodt_LDADD) $(LIBS)
+
+apertium-repptx$(EXEEXT): $(apertium_repptx_OBJECTS) $(apertium_repptx_DEPENDENCIES) $(EXTRA_apertium_repptx_DEPENDENCIES) 
+	@rm -f apertium-repptx$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_repptx_OBJECTS) $(apertium_repptx_LDADD) $(LIBS)
+
+apertium-rertf$(EXEEXT): $(apertium_rertf_OBJECTS) $(apertium_rertf_DEPENDENCIES) $(EXTRA_apertium_rertf_DEPENDENCIES) 
+	@rm -f apertium-rertf$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_rertf_OBJECTS) $(apertium_rertf_LDADD) $(LIBS)
+
+apertium-retxt$(EXEEXT): $(apertium_retxt_OBJECTS) $(apertium_retxt_DEPENDENCIES) $(EXTRA_apertium_retxt_DEPENDENCIES) 
+	@rm -f apertium-retxt$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_retxt_OBJECTS) $(apertium_retxt_LDADD) $(LIBS)
+
+apertium-rewxml$(EXEEXT): $(apertium_rewxml_OBJECTS) $(apertium_rewxml_DEPENDENCIES) $(EXTRA_apertium_rewxml_DEPENDENCIES) 
+	@rm -f apertium-rewxml$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_rewxml_OBJECTS) $(apertium_rewxml_LDADD) $(LIBS)
+
+apertium-rexlsx$(EXEEXT): $(apertium_rexlsx_OBJECTS) $(apertium_rexlsx_DEPENDENCIES) $(EXTRA_apertium_rexlsx_DEPENDENCIES) 
+	@rm -f apertium-rexlsx$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_rexlsx_OBJECTS) $(apertium_rexlsx_LDADD) $(LIBS)
+
+apertium-rexpresstag$(EXEEXT): $(apertium_rexpresstag_OBJECTS) $(apertium_rexpresstag_DEPENDENCIES) $(EXTRA_apertium_rexpresstag_DEPENDENCIES) 
+	@rm -f apertium-rexpresstag$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_rexpresstag_OBJECTS) $(apertium_rexpresstag_LDADD) $(LIBS)
+
+apertium-tagger$(EXEEXT): $(apertium_tagger_OBJECTS) $(apertium_tagger_DEPENDENCIES) $(EXTRA_apertium_tagger_DEPENDENCIES) 
+	@rm -f apertium-tagger$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_tagger_OBJECTS) $(apertium_tagger_LDADD) $(LIBS)
+
+apertium-tagger-apply-new-rules$(EXEEXT): $(apertium_tagger_apply_new_rules_OBJECTS) $(apertium_tagger_apply_new_rules_DEPENDENCIES) $(EXTRA_apertium_tagger_apply_new_rules_DEPENDENCIES) 
+	@rm -f apertium-tagger-apply-new-rules$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_tagger_apply_new_rules_OBJECTS) $(apertium_tagger_apply_new_rules_LDADD) $(LIBS)
+
+apertium-tagger-readwords$(EXEEXT): $(apertium_tagger_readwords_OBJECTS) $(apertium_tagger_readwords_DEPENDENCIES) $(EXTRA_apertium_tagger_readwords_DEPENDENCIES) 
+	@rm -f apertium-tagger-readwords$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_tagger_readwords_OBJECTS) $(apertium_tagger_readwords_LDADD) $(LIBS)
+
+apertium-tmxbuild$(EXEEXT): $(apertium_tmxbuild_OBJECTS) $(apertium_tmxbuild_DEPENDENCIES) $(EXTRA_apertium_tmxbuild_DEPENDENCIES) 
+	@rm -f apertium-tmxbuild$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_tmxbuild_OBJECTS) $(apertium_tmxbuild_LDADD) $(LIBS)
+
+apertium-transfer$(EXEEXT): $(apertium_transfer_OBJECTS) $(apertium_transfer_DEPENDENCIES) $(EXTRA_apertium_transfer_DEPENDENCIES) 
+	@rm -f apertium-transfer$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(apertium_transfer_OBJECTS) $(apertium_transfer_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+	@$(NORMAL_INSTALL)
+	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n' \
+	    -e 'h;s|.*|.|' \
+	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+	      if (++n[d] == $(am__install_max)) { \
+		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+	    else { print "f", d "/" $$4, $$1 } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	     test -z "$$files" || { \
+	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	     } \
+	; done
+
+uninstall-binSCRIPTS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	       sed -e 's,.*/,,;$(transform)'`; \
+	dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium-multiple-translations.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_deshtml.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_deslatex.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_desmediawiki.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_desodt.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_despptx.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_desrtf.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_destxt.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_deswxml.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_desxlsx.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_desxpresstag.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_filter_ambiguity.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_interchunk.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_postchunk.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_postlatex.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_postlatex_raw.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_prelatex.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_pretransfer.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_re.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_rehtml.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_rehtml_noent.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_relatex.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_remediawiki.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_reodt.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_repptx.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_rertf.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_retxt.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_rewxml.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_rexlsx.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_rexpresstag.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_tagger.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_tagger_apply_new_rules.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_tagger_readwords.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_tmxbuild.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/apertium_transfer.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/collection.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/constant_manager.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/endian_double_util.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hmm.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/interchunk.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/interchunk_word.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/latex_accentsmap.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lextor.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lextor_data.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lextor_eval.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lextor_word.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/lswpost.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/morpho_stream.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/postchunk.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/string_utils.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tagger.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tagger_data.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tagger_data_hmm.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tagger_data_lsw.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tagger_utils.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tagger_word.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_aligner_tool.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_alignment.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_arguments_parser.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_book_to_matrix.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_builder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_dictionary.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_strings_and_streams.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_trail_postprocessors.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tmx_translate.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transfer.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transfer_data.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transfer_instr.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transfer_mult.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transfer_token.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transfer_word.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transfer_word_list.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transferpp.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/trx_reader.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tsx_reader.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/utf_converter.Plo at am__quote@
+
+.cc.o:
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cc.lo:
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+install-man1: $(man_MANS)
+	@$(NORMAL_INSTALL)
+	@list1=''; \
+	list2='$(man_MANS)'; \
+	test -n "$(man1dir)" \
+	  && test -n "`echo $$list1$$list2`" \
+	  || exit 0; \
+	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+	{ for i in $$list1; do echo "$$i"; done;  \
+	if test -n "$$list2"; then \
+	  for i in $$list2; do echo "$$i"; done \
+	    | sed -n '/\.1[a-z]*$$/p'; \
+	fi; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
+	done; \
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-apertiumDATA: $(apertium_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(apertium_DATA)'; test -n "$(apertiumdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(apertiumdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(apertiumdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(apertiumdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(apertiumdir)" || exit $$?; \
+	done
+
+uninstall-apertiumDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(apertium_DATA)'; test -n "$(apertiumdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(apertiumdir)'; $(am__uninstall_files_from_dir)
+install-library_includeHEADERS: $(library_include_HEADERS)
+	@$(NORMAL_INSTALL)
+	@list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(library_includedir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(library_includedir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_includedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_includedir)" || exit $$?; \
+	done
+
+uninstall-library_includeHEADERS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(library_include_HEADERS)'; test -n "$(library_includedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(library_includedir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \
+		$(HEADERS) apertium_config.h
+install-binPROGRAMS: install-libLTLIBRARIES
+
+installdirs:
+	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(apertiumdir)" "$(DESTDIR)$(library_includedir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
+	clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-apertiumDATA install-library_includeHEADERS \
+	install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-binSCRIPTS \
+	install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-apertiumDATA uninstall-binPROGRAMS \
+	uninstall-binSCRIPTS uninstall-libLTLIBRARIES \
+	uninstall-library_includeHEADERS uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: all install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
+	clean-libtool cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-hdr \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-apertiumDATA \
+	install-binPROGRAMS install-binSCRIPTS install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-libLTLIBRARIES \
+	install-library_includeHEADERS install-man install-man1 \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-apertiumDATA uninstall-binPROGRAMS \
+	uninstall-binSCRIPTS uninstall-libLTLIBRARIES \
+	uninstall-library_includeHEADERS uninstall-man uninstall-man1
+
+.PRECIOUS: Makefile
+
+#DEPR.:
+                   #apertium-preprocess-corpus-lextor
+                   #apertium-gen-stopwords-lextor
+                   #apertium-gen-lextorbil
+                   #apertium-gen-lextormono apertium-gen-wlist-lextor
+               ###pruebas-lextor apertium-lextor-search apertium-lextor-eval
+               ###apertium-gen-wlist-lextor-translation
+               ###apertium-lextor
+
+apertium_destxt.cc: txt-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl txt-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_desxpresstag.cc: xpresstag-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl xpresstag-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_rexpresstag.cc: xpresstag-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl xpresstag-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_retxt.cc: txt-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl txt-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_deshtml.cc: html-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl html-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_rehtml.cc: html-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl html-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_rehtml_noent.cc: html-noent-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl html-noent-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_desodt.cc: odt-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl odt-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_reodt.cc: odt-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl odt-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_desrtf.cc: rtf-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl rtf-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_rertf.cc: rtf-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl rtf-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_deswxml.cc: wxml-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl wxml-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_rewxml.cc: wxml-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl wxml-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_deslatex.cc: latex-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl latex-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_relatex.cc: latex-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl latex-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_desxlsx.cc: xlsx-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl xlsx-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_rexlsx.cc: xlsx-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl xlsx-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_despptx.cc: pptx-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl pptx-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_repptx.cc: pptx-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl pptx-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_desmediawiki.cc: mediawiki-format.xml Makefile.am deformat.xsl
+	$(XSLTPROC) deformat.xsl mediawiki-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_remediawiki.cc: mediawiki-format.xml Makefile.am reformat.xsl
+	$(XSLTPROC) reformat.xsl mediawiki-format.xml >$@tmp
+	$(FLEX) -Cfer -o$@ $@tmp
+	rm $@tmp
+
+apertium_prelatex.cc: apertium-prelatex.l
+	$(FLEX) -Cfer -o$@ apertium-prelatex.l
+
+apertium_postlatex.cc: apertium-postlatex.l
+	$(FLEX) -Cfer -o$@ apertium-postlatex.l
+
+apertium_postlatex_raw.cc: apertium-postlatex-raw.l
+	$(FLEX) -Cfer -o$@ apertium-postlatex-raw.l
+
+apertium-validate-tagger: Makefile.am validate-header.sh
+	@echo "Creating apertium-validate-tagger script"
+	@echo "#!$(BASH)" > $@
+	@cat validate-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/tagger.dtd --noout \"\$$FILE1\"" >>$@
+	@chmod a+x $@
+
+apertium-validate-transfer: Makefile.am validate-header.sh
+	@echo "Creating apertium-validate-transfer script"
+	@echo "#!$(BASH)" > $@
+	@cat validate-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/transfer.dtd --noout \"\$$FILE1\"" >>$@
+	@chmod a+x $@
+
+apertium-validate-interchunk: Makefile.am validate-header.sh
+	@echo "Creating apertium-validate-interchunk script"
+	@echo "#!$(BASH)" > $@
+	@cat validate-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/interchunk.dtd --noout \"\$$FILE1\"" >>$@
+	@chmod a+x $@
+
+apertium-validate-postchunk: Makefile.am validate-header.sh
+	@echo "Creating apertium-validate-postchunk script"
+	@echo "#!$(BASH)" > $@
+	@cat validate-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/postchunk.dtd --noout \"\$$FILE1\"" >>$@
+	@chmod a+x $@
+
+apertium-validate-acx: Makefile.am validate-header.sh
+	@echo "Creating apertium-validate-acx script"
+	@echo "#!$(BASH)" > $@
+	@cat validate-header.sh >> $@
+	@echo "$(XMLLINT) --relaxng $(prefix)/share/lttoolbox/acx.rng --schema $(prefix)/share/lttoolbox/acx.xsd --noout \"\$$FILE1\"" >>$@
+	@chmod a+x $@
+
+apertium-validate-modes: Makefile.am validate-header.sh
+	@echo "Creating apertium-validate-modes script"
+	@echo "#!$(BASH)" > $@
+	@cat validate-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/modes.dtd --noout \"\$$FILE1\"" >>$@
+	@chmod a+x $@
+
+apertium-validate-dictionary: Makefile.am validate-header.sh
+	@echo "Creating apertium-validate-dictionary script"
+	@echo "#!$(BASH)" > $@
+	@cat validate-header.sh >> $@
+	@echo "# xsd is a non-final command, so just treated as a warning when compiling:" >> $@
+	@echo "$(XMLLINT) --schema $(prefix)/share/lttoolbox/dix.xsd --noout \"\$$FILE1\"" >> $@
+	@echo "$(XMLLINT) --dtdvalid $(prefix)/share/lttoolbox/dix.dtd --noout \"\$$FILE1\"" >> $@
+	@chmod a+x $@
+
+apertium-gen-deformat: Makefile.am deformat-header.sh
+	@echo "Creating apertium-gen-deformat script"
+	@echo "#!$(BASH)" > $@
+	@cat deformat-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/format.dtd --noout \$$FILE1 && \\" >> $@
+	@if [ `basename $(XSLTPROC)` == xsltproc ]; \
+	  then echo "$(XSLTPROC) --stringparam mode \$$MODE $(apertiumdir)/deformat.xsl \$$FILE1 >/tmp/\$$\$$.deformat.l && \\"; \
+          else echo "$(XSLTPROC) $(apertiumdir)/deformat.xsl \$$FILE1 \"\\\$$mode=\$$MODE\" >/tmp/\$$\$$.deformat.l && \\"; \
+          fi >> $@
+	@echo "$(FLEX) \$$FLEXOPTS -o/tmp/\$$\$$.lex.cc /tmp/\$$\$$.deformat.l && \\" >> $@
+	@echo "$(CXX) -DGENFORMAT $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) -o \$$FILE2 /tmp/\$$\$$.lex.cc $(APERTIUM_LIBS) 2>/dev/null && \\" >> $@
+	@echo "rm /tmp/\$$\$$.deformat.l /tmp/\$$\$$.lex.cc" >> $@
+	@chmod a+x $@
+
+apertium-gen-reformat: Makefile.am gen-header.sh
+	@echo "Creating apertium-gen-reformat script"
+	@echo "#!$(BASH)" > $@
+	@cat gen-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/format.dtd --noout \$$FILE1 && \\" >> $@
+	@echo "$(XSLTPROC) $(apertiumdir)/reformat.xsl \$$FILE1 >/tmp/\$$\$$.reformat.l && \\" >> $@
+	@echo "$(FLEX) \$$FLEXOPTS -o/tmp/\$$\$$.lex.cc /tmp/\$$\$$.reformat.l && \\" >> $@
+	@echo "$(CXX) -DGENFORMAT $(CXXFLAGS) -w $(APERTIUM_CFLAGS) -I $(apertiuminclude) -o \$$FILE2 /tmp/\$$\$$.lex.cc $(APERTIUM_LIBS) 2>/dev/null &&\\" >> $@
+	@echo "rm /tmp/\$$\$$.reformat.l /tmp/\$$\$$.lex.cc" >> $@
+	@chmod a+x $@
+
+apertium-gen-modes: Makefile.am modes-header.sh
+	@echo "Creating apertium-gen-modes script"
+	@echo "#!$(BASH)" > $@
+	@echo "APERTIUMDIR="$(apertiumdir) >> $@
+	@cat modes-header.sh >> $@
+	@echo "$(XMLLINT) --dtdvalid $(apertiumdir)/modes.dtd --noout \$$FILE1 && \\" >> $@
+	@if [ `basename $(XSLTPROC)` == xsltproc ]; \
+	  then echo "$(XSLTPROC) --stringparam prefix $(prefix)/bin --stringparam dataprefix \$$FULLDIRNAME  $(apertiumdir)/modes2bash.xsl \$$FILE1 | awk -f $(apertiumdir)/apertium-createmodes.awk PARAM=\$$FULLDIRNAME"; \
+          else echo "$(XSLTPROC) $(apertiumdir)/modes2bash.xsl \$$FILE1 \\\$$prefix=$(prefix)/bin \\\$$dataprefix=\$$FULLDIRNAME| awk -f $(apertiumdir)/apertium-createmodes.awk PARAM=\$$FULLDIRNAME"; \
+          fi >> $@
+	@chmod a+x $@
+
+apertium-utils-fixlatex: Makefile.am utils-fixlatex-header.sh
+	@echo "Creating apertium-utils-fixlatex script"
+	@echo "#!$(BASH)" > $@
+	@cat utils-fixlatex-header.sh >> $@
+	@chmod a+x $@
+
+apertium: Makefile.am apertium-header.sh
+	@echo "Creating apertium script"
+	@echo "#!$(BASH)" > $@
+	@echo "APERTIUM_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "DEFAULT_DIRECTORY=\"$(prefix)/share/apertium\"" >>$@
+	@cat apertium-header.sh >>$@
+	@chmod a+x $@
+
+apertium-unformat: Makefile.am apertium-unformat-header.sh
+	@echo "Creating apertium-unformat script"
+	@echo "#!$(BASH)" > $@
+	@echo "APERTIUM_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "DEFAULT_DIRECTORY=\"$(prefix)/share/apertium\"" >>$@
+	@cat apertium-unformat-header.sh >>$@
+	@chmod a+x $@
+
+#apertium-translator-lextor: Makefile.am trans-lextor-header.sh
+#	@echo "Creating apertium-translator-lextor script"
+#	@echo "#!$(BASH)" > $@
+#	@echo "APERTIUM_PATH=\"$(prefix)/bin\"" >>$@
+#	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+#	@cat trans-lextor-header.sh >>$@
+#	@chmod a+x $@
+
+#apertium-gen-oldbil: Makefile.am transformdicbil-header.sh
+#	@echo "Creating apertium-gen-oldbil script"
+#	@echo "#!$(BASH)" >$@
+#	@echo "APERTIUM_PATH=\"$(prefix)/bin\"" >>$@
+#	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+#	@echo "XSLTPROC_OPTIONS=\"\"">>$@
+#	@echo "STYLESHEET=\"$(apertiumdir)/new2old.xsl\"">>$@
+#	@cat transformdicbil-header.sh >>$@
+#	@chmod a+x $@
+
+apertium-gen-lextorbil: Makefile.am transformdic-header.sh
+	@echo "Creating apertium-gen-lextorbil script"
+	@echo "#!$(BASH)" >$@
+	@echo "APERTIUM_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "XSLTPROC_OPTIONS_LR=\"\"">>$@
+	@echo "XSLTPROC_OPTIONS_RL=\"--stringparam r2l yes\"">>$@
+	@echo "STYLESHEET=\"$(apertiumdir)/lexchoicebil.xsl\"">>$@
+	@cat transformdic-header.sh >>$@
+	@chmod a+x $@
+
+apertium-gen-lextormono: Makefile.am transformdic-header.sh
+	@echo "Creating apertium-gen-lextormono script"
+	@echo "#!$(BASH)" >$@
+	@echo "APERTIUM_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "XSLTPROC_OPTIONS_LR=\"\"">>$@
+	@echo "XSLTPROC_OPTIONS_RL=\"--stringparam r2l yes\"">>$@
+	@echo "STYLESHEET=\"$(apertiumdir)/lexchoice.xsl\"">>$@
+	@cat transformdic-header.sh >>$@
+	@chmod a+x $@
+
+apertium-gen-wlist-lextor: Makefile.am gen-wlist-lextor-header.sh
+	@echo "Creating apertium-gen-wlist-lextor script"
+	@echo "#!$(BASH)" >$@
+	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+	@cat gen-wlist-lextor-header.sh >>$@
+	@chmod a+x $@
+
+apertium-preprocess-corpus-lextor: Makefile.am preprocess-corpus-lextor.sh
+	@echo "Creating apertium-preprocess-corpus-lextor script"
+	@echo "#!$(BASH)" >$@
+	@echo "LTTOOLBOX_PATH=\"$(prefix)/bin\"" >>$@
+	@echo "APERTIUM_PATH=\"$(prefix)/bin\"" >>$@
+	@cat preprocess-corpus-lextor.sh >>$@
+	@chmod a+x $@
+
+apertium-gen-stopwords-lextor: Makefile.am gen-stopwords-lextor.sh
+	@echo "Creating apertium-gen-stopwords-lextor script"
+	@echo "#!$(BASH)" >$@
+	@cat gen-stopwords-lextor.sh >>$@
+	@chmod a+x $@
+         ###apertium-lextor-eval.1
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/apertium/apertium-desrtf-cp1250.1 b/apertium/apertium-desrtf-cp1250.1
deleted file mode 100644
index edf3264..0000000
--- a/apertium/apertium-desrtf-cp1250.1
+++ /dev/null
@@ -1,41 +0,0 @@
-.TH apertium-desrtf 1 2006-03-21 "" ""
-.SH NAME
-apertium-desrtf \- This application is part of (
-.B apertium 
-)
-.PP
-This tool is part of the apertium open-source machine translation
-toolbox: \fBhttp://apertium.sf.net\fR.
-.SH SYNOPSIS
-.B apertium-desrtf
-[ <input file> [ <output file> ] ]
-.PP
-.SH DESCRIPTION
-.BR apertium-desrtf 
-is an RTF format processor. Data should be passed through this 
-processor before being piped to lt-proc. The program takes input
-in the form of an RTF document and produces output suitable for 
-processing with lt-proc. RTF commands  and other format information are  enclosed in brackets so that lt-proc treats them as whitespace between words.
-.SH OPTIONS
-.TP
-.B \-h, \-\-help
-Display this help.
-.PP
-.SH EXAMPLE
-.TP
-You could write the following to show how the input document  is analysed: 
-.TP
-cat <input.rtf> | apertium-desrtf | lt-proc ca-es.automorf.bin
-.PP
-.SH SEE ALSO
-.I apertium-destxt\fR(1),
-.I apertium-deshtml\fR(1),
-.I lt-proc\fR(1),
-.I apertium\fR(1).
-.SH BUGS
-Lots of...lurking in the dark and waiting for you!
-.SH AUTHOR
-Copyright (c) 2005, 2006 Universitat d'Alacant / Universidad de Alicante.
-This is free software.  You may redistribute copies of it under the terms
-of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
-
diff --git a/apertium/apertium-desrtf-cp1251.1 b/apertium/apertium-desrtf-cp1251.1
deleted file mode 100644
index edf3264..0000000
--- a/apertium/apertium-desrtf-cp1251.1
+++ /dev/null
@@ -1,41 +0,0 @@
-.TH apertium-desrtf 1 2006-03-21 "" ""
-.SH NAME
-apertium-desrtf \- This application is part of (
-.B apertium 
-)
-.PP
-This tool is part of the apertium open-source machine translation
-toolbox: \fBhttp://apertium.sf.net\fR.
-.SH SYNOPSIS
-.B apertium-desrtf
-[ <input file> [ <output file> ] ]
-.PP
-.SH DESCRIPTION
-.BR apertium-desrtf 
-is an RTF format processor. Data should be passed through this 
-processor before being piped to lt-proc. The program takes input
-in the form of an RTF document and produces output suitable for 
-processing with lt-proc. RTF commands  and other format information are  enclosed in brackets so that lt-proc treats them as whitespace between words.
-.SH OPTIONS
-.TP
-.B \-h, \-\-help
-Display this help.
-.PP
-.SH EXAMPLE
-.TP
-You could write the following to show how the input document  is analysed: 
-.TP
-cat <input.rtf> | apertium-desrtf | lt-proc ca-es.automorf.bin
-.PP
-.SH SEE ALSO
-.I apertium-destxt\fR(1),
-.I apertium-deshtml\fR(1),
-.I lt-proc\fR(1),
-.I apertium\fR(1).
-.SH BUGS
-Lots of...lurking in the dark and waiting for you!
-.SH AUTHOR
-Copyright (c) 2005, 2006 Universitat d'Alacant / Universidad de Alicante.
-This is free software.  You may redistribute copies of it under the terms
-of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
-
diff --git a/apertium/apertium-header.sh b/apertium/apertium-header.sh
index 60f363e..0adcce4 100644
--- a/apertium/apertium-header.sh
+++ b/apertium/apertium-header.sh
@@ -1,3 +1,5 @@
+# -*- sh-basic-offset: 2 -*-
+
 # Copyright (C) 2005 Universitat d'Alacant / Universidad de Alicante
 #
 # This program is free software; you can redistribute it and/or
@@ -15,12 +17,6 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
-PATH="${APERTIUM_PATH}:${PATH}"
-PAIR=""
-INPUT_FILE="/dev/stdin"
-OUTPUT_FILE="/dev/stdout"
-
-[ -z "$TMPDIR" ] && TMPDIR=/tmp
 
 message ()
 {
@@ -29,7 +25,7 @@ message ()
   echo " -f format        one of: txt (default), html, rtf, odt, docx, wxml, xlsx, pptx,"
   echo "                  xpresstag, html-noent, latex, latex-raw";
   echo " -a               display ambiguity"
-  echo " -u               don't display marks '*' for unknown words" 
+  echo " -u               don't display marks '*' for unknown words"
   echo " -m memory.tmx    use a translation memory to recycle translations"
   echo " -o direction     translation direction using the translation memory,"
   echo "                  by default 'direction' is used instead"
@@ -42,48 +38,48 @@ message ()
 
 list_directions ()
 {
-         for i in $DATOS/modes/*.mode;
-         do echo "  " $(basename $i) |awk '{gsub(".mode", ""); print;}'
-         done;
+  for mode in "$DATADIR"/modes/*.mode; do
+    echo "  $(basename "${mode%%.mode}")"
+  done
 }
 
 locale_utf8 ()
 {
   export LC_CTYPE=$(locale -a|grep -i "utf[.]*8"|head -1);
-  if [ LC_CTYPE = "" ]
-  then echo "Error: Install an UTF-8 locale in your system";
-       exit 1;
+  if [ LC_CTYPE = "" ]; then
+    echo "Error: Install an UTF-8 locale in your system";
+    exit 1;
   fi
 }
 
 locale_latin1 ()
 {
   export LC_CTYPE=$(locale -a|grep -i -e "8859-1" -e "@euro"|head -1);
-  if [ LC_CTYPE = "" ]
-  then echo "Error: Install a Latin-1 locale in your system";
-       exit 1;
+  if [ LC_CTYPE = "" ]; then
+    echo "Error: Install a Latin-1 locale in your system";
+    exit 1;
   fi
 }
 
 test_zip ()
 {
- if [ "$(which zip)" = "" ]
-  then echo "Error: Install 'zip' command in your system";
-       exit 1;
+  if [ "$(which zip)" = "" ]; then
+    echo "Error: Install 'zip' command in your system";
+    exit 1;
+  fi
+
+  if [ "$(which unzip)" = "" ]; then
+    echo "Error: Install 'unzip' command in your system";
+    exit 1;
   fi
-  
-  if [ "$(which unzip)" = "" ]
-  then echo "Error: Install 'unzip' command in your system";
-       exit 1;
-  fi 
 }
 
 test_gawk ()
 {
   GAWK=$(which gawk)
-  if [ "$GAWK" = "" ]
-  then echo "Error: Install 'gawk' in your system"
-       exit 1
+  if [ "$GAWK" = "" ]; then
+    echo "Error: Install 'gawk' in your system"
+    exit 1
   fi
 }
 
@@ -92,536 +88,557 @@ translate_latex()
 {
   test_gawk
 
-  if [ "$FICHERO" = ""  -o "$FICHERO" = /dev/stdin ]
-  then FICHERO=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-       cat > "$FICHERO"
-       BORRAFICHERO="true"
+  if [ "$INFILE" = ""  -o "$INFILE" = /dev/stdin ]; then
+    INFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+    cat > "$INFILE"
+    BORRAFICHERO="true"
   fi
 
-  if [ "$(file -b --mime-encoding $FICHERO)" == "utf-8" ]
-  then locale_latin1
+  if [ "$(file -b --mime-encoding "$INFILE")" == "utf-8" ]; then
+    locale_latin1
   else locale_utf8
   fi
-  
-  $APERTIUM_PATH/apertium-prelatex "$FICHERO" | \
-  $APERTIUM_PATH/apertium-utils-fixlatex | \
-  $APERTIUM_PATH/apertium-deslatex | \
-  if [ "$TRANSLATION_MEMORY_FILE" = "" ]; 
-  then cat;
-  else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
-  fi | \
-  if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-  then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  fi | \
-  $APERTIUM_PATH/apertium-relatex| \
-  awk '{gsub("</CONTENTS-noeos>", "</CONTENTS>"); print;}' | \
-  $APERTIUM_PATH/apertium-postlatex >"$SALIDA"
-  
-  if [ "$BORRAFICHERO" = "true" ]
-  then rm -Rf "$FICHERO"
-  fi
+
+  "$APERTIUM_PATH/apertium-prelatex" "$INFILE" | \
+    "$APERTIUM_PATH/apertium-utils-fixlatex" | \
+    "$APERTIUM_PATH/apertium-deslatex" | \
+    if [ "$TRANSLATION_MEMORY_FILE" = "" ];
+    then cat;
+    else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
+    fi | \
+      if [ ! -x "$DATADIR/modes/$PAIR.mode" ]; then
+      sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+    else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+    fi | \
+      "$APERTIUM_PATH/apertium-relatex"| \
+      awk '{gsub("</CONTENTS-noeos>", "</CONTENTS>"); print;}' | \
+      if [ "$REDIR" == "" ]; then "$APERTIUM_PATH/apertium-postlatex-raw"; else "$APERTIUM_PATH/apertium-postlatex-raw" > "$SALIDA"; fi
+
+    if [ "$BORRAFICHERO" = "true" ]; then
+      rm -Rf "$INFILE"
+    fi
 }
 
 
 translate_latex_raw()
 {
   test_gawk
-  
-  if [ "$FICHERO" = "" -o "$FICHERO" = /dev/stdin ]
-  then FICHERO=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-       cat > "$FICHERO"
-       BORRAFICHERO="true"
+
+  if [ "$INFILE" = "" -o "$INFILE" = /dev/stdin ]; then
+    INFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+    cat > "$INFILE"
+    BORRAFICHERO="true"
   fi
 
-  if [ "$(file -b --mime-encoding $FICHERO)" = "utf-8" ]
-  then locale_latin1
+  if [ "$(file -b --mime-encoding "$INFILE")" = "utf-8" ]; then
+    locale_latin1
   else locale_utf8
   fi
 
-  $APERTIUM_PATH/apertium-prelatex "$FICHERO" | \
-  $APERTIUM_PATH/apertium-utils-fixlatex | \
-  $APERTIUM_PATH/apertium-deslatex | \
-  if [ "$TRANSLATION_MEMORY_FILE" = "" ]; 
-  then cat;  
-  else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
-  fi | \
-  if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-  then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  fi | \
-  $APERTIUM_PATH/apertium-relatex| \
-  awk '{gsub("</CONTENTS-noeos>", "</CONTENTS>"); print;}' | \
-  $APERTIUM_PATH/apertium-postlatex-raw >"$SALIDA"  
+  "$APERTIUM_PATH/apertium-prelatex" "$INFILE" | \
+    "$APERTIUM_PATH/apertium-utils-fixlatex" | \
+    "$APERTIUM_PATH/apertium-deslatex" | \
+    if [ "$TRANSLATION_MEMORY_FILE" = "" ];
+    then cat;
+    else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
+    fi | \
+      if [ ! -x "$DATADIR/modes/$PAIR.mode" ]; then
+      sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+    else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+    fi | \
+      "$APERTIUM_PATH/apertium-relatex"| \
+      awk '{gsub("</CONTENTS-noeos>", "</CONTENTS>"); print;}' | \
+      if [ "$REDIR" == "" ]; then "$APERTIUM_PATH/apertium-postlatex-raw"; else "$APERTIUM_PATH/apertium-postlatex-raw" > "$SALIDA"; fi
 }
 
 
 translate_odt ()
 {
-  INPUT_TMPDIR=$(mktemp -d $TMPDIR/apertium.XXXXXXXX)
+  INPUT_TMPDIR=$(mktemp -d "$TMPDIR/apertium.XXXXXXXX")
 
   locale_utf8
   test_zip
 
-  if [ "$FICHERO" = "" ]
-  then FICHERO=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-       cat > "$FICHERO"
-       BORRAFICHERO="true"
+  if [ "$INFILE" = "" ]; then
+    INFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+    cat > "$INFILE"
+    BORRAFICHERO="true"
   fi
   OTRASALIDA=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-  
-  unzip -q -o -d $INPUT_TMPDIR "$FICHERO"
-  find $INPUT_TMPDIR | grep "content\\.xml\\|styles\\.xml" |\
+
+  unzip -q -o -d "$INPUT_TMPDIR" "$INFILE"
+  find "$INPUT_TMPDIR" | grep "content\\.xml\\|styles\\.xml" |\
   awk '{printf "<file name=\"" $0 "\"/>"; PART = $0; while(getline < PART) printf(" %s", $0); printf("\n");}' |\
-  $APERTIUM_PATH/apertium-desodt |\
+  "$APERTIUM_PATH/apertium-desodt" |\
   if [ "$TRANSLATION_MEMORY_FILE" = "" ];
   then cat;
-  else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
+  else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
   fi | \
-  if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-  then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
+    if [ ! -x "$DATADIR/modes/$PAIR.mode" ]; then
+    sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+  else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
   fi | \
-  $APERTIUM_PATH/apertium-reodt|\
+    "$APERTIUM_PATH/apertium-reodt"|\
   awk '{punto = index($0, "/>") + 3; cabeza = substr($0, 1, punto-1); cola = substr($0, punto); n1 = substr(cabeza, index(cabeza, "\"")+1); name = substr(n1, 1, index(n1, "\"")-1); gsub("[?]> ", "?>\n", cola); print cola > name;}'
   VUELVE=$(pwd)
-  cd $INPUT_TMPDIR
+  cd "$INPUT_TMPDIR"
   rm -Rf ObjectReplacements
-  zip -q -r - . >$OTRASALIDA
-  cd $VUELVE
-  rm -Rf $INPUT_TMPDIR
+  zip -q -r - . >"$OTRASALIDA"
+  cd "$VUELVE"
+  rm -Rf "$INPUT_TMPDIR"
 
-  if [ "$BORRAFICHERO" = "true" ]
-  then rm -Rf "$FICHERO";
+  if [ "$BORRAFICHERO" = "true" ]; then
+    rm -Rf "$INFILE";
   fi
-  
-  cat $OTRASALIDA >"$SALIDA"
-  rm -Rf $OTRASALIDA
-  rm -Rf $TMCOMPFILE
+
+  if [ "$REDIR" == "" ]; then cat "$OTRASALIDA"; else cat "$OTRASALIDA" > "$SALIDA"; fi
+  rm -Rf "$OTRASALIDA"
+  rm -Rf "$TMCOMPFILE"
 }
 
 translate_docx ()
 {
-  INPUT_TMPDIR=$(mktemp -d $TMPDIR/apertium.XXXXXXXX)
+  INPUT_TMPDIR=$(mktemp -d "$TMPDIR/apertium.XXXXXXXX")
 
   locale_utf8
   test_zip
-  
-  if [ "$FICHERO" = "" ]
-  then FICHERO=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-       cat > "$FICHERO"
-       BORRAFICHERO="true"
+
+  if [ "$INFILE" = "" ]; then
+    INFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+    cat > "$INFILE"
+    BORRAFICHERO="true"
   fi
   OTRASALIDA=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-  
-  if [ "$UWORDS" = "no" ]
-  then OPCIONU="-u";
+
+  if [ "$UWORDS" = "no" ]; then
+    OPCIONU="-u";
   else OPCIONU="";
   fi
-  
-  unzip -q -o -d $INPUT_TMPDIR "$FICHERO"
-  
-  for i in $(find $INPUT_TMPDIR|grep "xlsx$");
+
+  unzip -q -o -d "$INPUT_TMPDIR" "$INFILE"
+
+  for i in $(find "$INPUT_TMPDIR"|grep "xlsx$");
   do LOCALTEMP=$(mktemp "$TMPDIR/apertium.XXXXXXXX");
-     $APERTIUM_PATH/apertium -f xlsx -d $DIRECTORY $OPCIONU $PREFIJO <$i >$LOCALTEMP;
-     cp $LOCALTEMP $i;
-     rm $LOCALTEMP;
+    "$APERTIUM_PATH/apertium" -f xlsx -d "$DATADIR" "$OPCIONU" "$PAIR" <"$i" >"$LOCALTEMP";
+    cp "$LOCALTEMP" "$i";
+    rm "$LOCALTEMP";
   done;
-  
-  find $INPUT_TMPDIR | grep "xml" |\
+
+  find "$INPUT_TMPDIR" | grep "xml" |\
   grep -v -i \\\(settings\\\|theme\\\|styles\\\|font\\\|rels\\\|docProps\\\) |\
   awk '{printf "<file name=\"" $0 "\"/>"; PART = $0; while(getline < PART) printf(" %s", $0); printf("\n");}' |\
-  $APERTIUM_PATH/apertium-deswxml |\
-  if [ "$TRANSLATION_MEMORY_FILE" = "" ]; 
-  then cat;  
-  else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
+  "$APERTIUM_PATH/apertium-deswxml" |\
+  if [ "$TRANSLATION_MEMORY_FILE" = "" ];
+  then cat;
+  else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
   fi | \
-  if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-  then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
+    if [ ! -x "$DATADIR/modes/$PAIR.mode" ]; then
+    sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+  else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
   fi | \
-  $APERTIUM_PATH/apertium-rewxml|\
+    "$APERTIUM_PATH/apertium-rewxml"|\
   awk '{punto = index($0, "/>") + 3; cabeza = substr($0, 1, punto-1); cola = substr($0, punto); n1 = substr(cabeza, index(cabeza, "\"")+1); name = substr(n1, 1, index(n1, "\"")-1); gsub("[?]> ", "?>\n", cola); print cola > name;}'
   VUELVE=$(pwd)
-  cd $INPUT_TMPDIR
-  zip -q -r - . >$OTRASALIDA
-  cd $VUELVE
-  rm -Rf $INPUT_TMPDIR
+  cd "$INPUT_TMPDIR"
+  zip -q -r - . >"$OTRASALIDA"
+  cd "$VUELVE"
+  rm -Rf "$INPUT_TMPDIR"
 
-  if [ "$BORRAFICHERO" = "true" ]
-  then rm -Rf "$FICHERO";
+  if [ "$BORRAFICHERO" = "true" ]; then
+    rm -Rf "$INFILE";
   fi
-  
-  cat $OTRASALIDA >"$SALIDA"
-  rm -Rf $OTRASALIDA
-  rm -Rf $TMCOMPFILE
+
+  if [ "$REDIR" == "" ]; then cat "$OTRASALIDA"; else cat "$OTRASALIDA" > "$SALIDA"; fi
+  rm -Rf "$OTRASALIDA"
+  rm -Rf "$TMCOMPFILE"
 }
 
 translate_pptx ()
 {
-  INPUT_TMPDIR=$(mktemp -d $TMPDIR/apertium.XXXXXXXX)
+  INPUT_TMPDIR=$(mktemp -d "$TMPDIR/apertium.XXXXXXXX")
 
   locale_utf8
   test_zip
-  
-  if [ "$FICHERO" = "" ]
-  then FICHERO=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-       cat > "$FICHERO"
-       BORRAFICHERO="true"
+
+  if [ "$INFILE" = "" ]; then
+    INFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+    cat > "$INFILE"
+    BORRAFICHERO="true"
   fi
   OTRASALIDA=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-  
-  if [ "$UWORDS" = "no" ]
-  then OPCIONU="-u";
+
+  if [ "$UWORDS" = "no" ]; then
+    OPCIONU="-u";
   else OPCIONU="";
   fi
-  
-  unzip -q -o -d $INPUT_TMPDIR "$FICHERO"
-  
-  for i in $(find $INPUT_TMPDIR|grep "xlsx$");
-  do LOCALTEMP=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-     $APERTIUM_PATH/apertium -f xlsx -d $DIRECTORY $OPCIONU $PREFIJO <$i >$LOCALTEMP;
-     cp $LOCALTEMP $i
-     rm $LOCALTEMP
+
+  unzip -q -o -d "$INPUT_TMPDIR" "$INFILE"
+
+  for i in $(find "$INPUT_TMPDIR"|grep "xlsx$"); do
+    LOCALTEMP=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+    "$APERTIUM_PATH/apertium" -f xlsx -d "$DATADIR" "$OPCIONU" "$PAIR" <"$i" >"$LOCALTEMP";
+    cp "$LOCALTEMP" "$i"
+    rm "$LOCALTEMP"
   done;
-  
-  find $INPUT_TMPDIR | grep "xml$" |\
+
+  find "$INPUT_TMPDIR" | grep "xml$" |\
   grep "slides\/slide" |\
   awk '{printf "<file name=\"" $0 "\"/>"; PART = $0; while(getline < PART) printf(" %s", $0); printf("\n");}' |\
-  $APERTIUM_PATH/apertium-despptx |\
-  if [ "$TRANSLATION_MEMORY_FILE" = "" ]; 
-  then cat;  
-  else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
+  "$APERTIUM_PATH/apertium-despptx" |\
+  if [ "$TRANSLATION_MEMORY_FILE" = "" ];
+  then cat;
+  else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
   fi | \
-  if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-  then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
+    if [ ! -x "$DATADIR/modes/$PAIR.mode" ]; then
+    sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+  else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
   fi | \
-  $APERTIUM_PATH/apertium-repptx |\
+    "$APERTIUM_PATH/apertium-repptx" |\
   awk '{punto = index($0, "/>") + 3; cabeza = substr($0, 1, punto-1); cola = substr($0, punto); n1 = substr(cabeza, index(cabeza, "\"")+1); name = substr(n1, 1, index(n1, "\"")-1); gsub("[?]> ", "?>\n", cola); print cola > name;}'
   VUELVE=$(pwd)
-  cd $INPUT_TMPDIR
-  zip -q -r - . >$OTRASALIDA
-  cd $VUELVE
-  rm -Rf $INPUT_TMPDIR
+  cd "$INPUT_TMPDIR"
+  zip -q -r - . >"$OTRASALIDA"
+  cd "$VUELVE"
+  rm -Rf "$INPUT_TMPDIR"
 
-  if [ "$BORRAFICHERO" = "true" ]
-  then rm -Rf "$FICHERO";
+  if [ "$BORRAFICHERO" = "true" ]; then
+    rm -Rf "$INFILE";
   fi
-  
-  cat $OTRASALIDA >"$SALIDA"
-  rm -Rf $OTRASALIDA
-  rm -Rf $TMCOMPFILE
+
+  if [ "$REDIR" == "" ]; then cat "$OTRASALIDA"; else cat "$OTRASALIDA" > "$SALIDA"; fi
+  rm -Rf "$OTRASALIDA"
+  rm -Rf "$TMCOMPFILE"
 }
 
 
 translate_xlsx ()
 {
-  INPUT_TMPDIR=$(mktemp -d $TMPDIR/apertium.XXXXXXXX)
+  INPUT_TMPDIR=$(mktemp -d "$TMPDIR/apertium.XXXXXXXX")
 
   locale_utf8
   test_zip
-  
-  if [ "$FICHERO" = "" ]
-  then FICHERO=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-       cat > "$FICHERO"
-       BORRAFICHERO="true"
+
+  if [ "$INFILE" = "" ]; then
+    INFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+    cat > "$INFILE"
+    BORRAFICHERO="true"
   fi
   OTRASALIDA=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
-  
-  unzip -q -o -d $INPUT_TMPDIR "$FICHERO"
-  find $INPUT_TMPDIR | grep "sharedStrings.xml" |\
+
+  unzip -q -o -d "$INPUT_TMPDIR" "$INFILE"
+  find "$INPUT_TMPDIR" | grep "sharedStrings.xml" |\
   awk '{printf "<file name=\"" $0 "\"/>"; PART = $0; while(getline < PART) printf(" %s", $0); printf("\n");}' |\
-  $APERTIUM_PATH/apertium-desxlsx |\
-  if [ "$TRANSLATION_MEMORY_FILE" = "" ]; 
-  then cat;  
-  else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
+  "$APERTIUM_PATH/apertium-desxlsx" |\
+  if [ "$TRANSLATION_MEMORY_FILE" = "" ];
+  then cat;
+  else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
   fi | \
-  if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-  then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
+    if [ ! -x "$DATADIR/modes/$PAIR.mode" ]; then
+    sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+  else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
   fi | \
-  $APERTIUM_PATH/apertium-rexlsx |\
+    "$APERTIUM_PATH/apertium-rexlsx" |\
   awk '{punto = index($0, "/>") + 3; cabeza = substr($0, 1, punto-1); cola = substr($0, punto); n1 = substr(cabeza, index(cabeza, "\"")+1); name = substr(n1, 1, index(n1, "\"")-1); gsub("[?]> ", "?>\n", cola); print cola > name;}'
   VUELVE=$(pwd)
-  cd $INPUT_TMPDIR
-  zip -q -r - . >$OTRASALIDA
-  cd $VUELVE
-  rm -Rf $INPUT_TMPDIR
+  cd "$INPUT_TMPDIR"
+  zip -q -r - . >"$OTRASALIDA"
+  cd "$VUELVE"
+  rm -Rf "$INPUT_TMPDIR"
 
-  if [ "$BORRAFICHERO" = "true" ]
-  then rm -Rf "$FICHERO";
+  if [ "$BORRAFICHERO" = "true" ]; then
+    rm -Rf "$INFILE";
   fi
 
-  cat $OTRASALIDA >"$SALIDA"
-  rm -Rf $OTRASALIDA
-  rm -Rf $TMCOMPFILE
+  if [ "$REDIR" == "" ]; then cat "$OTRASALIDA"; else cat "$OTRASALIDA" > "$SALIDA"; fi
+  rm -Rf "$OTRASALIDA"
+  rm -Rf "$TMCOMPFILE"
 }
 
 translate_htmlnoent ()
 {
-  $APERTIUM_PATH/apertium-deshtml "$FICHERO" | \
-  if [ "$TRANSLATION_MEMORY_FILE" = "" ]; 
-  then cat;  
-  else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
-  fi | if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-  then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-  fi | if [ "$FORMATADOR" = "none" ]
-  then cat >"$SALIDA";
-  else $APERTIUM_PATH/apertium-rehtml-noent >"$SALIDA";
+  "$APERTIUM_PATH/apertium-deshtml" "$INFILE" | \
+    if [ "$TRANSLATION_MEMORY_FILE" = "" ]; then
+    cat
+  else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
+  fi | if [ ! -x "$DATADIR/modes/$PAIR.mode" ]; then
+    sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+  else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+  fi | if [ "$FORMAT" = "none" ]; then
+    if [ "$REDIR" == "" ]; then cat; else cat > "$SALIDA"; fi
+  else if [ "$REDIR" == "" ]; then "$APERTIUM_PATH/apertium-rehtml-noent"; else "$APERTIUM_PATH/apertium-rehtml-noent" > "$SALIDA"; fi
   fi
 
-  rm -Rf $TMCOMPFILE
+  rm -Rf "$TMCOMPFILE"
 }
 
 
 
 
-ARGS=$(getopt "uahlf:d:m:o:" $*)
-set -- $ARGS
-for i
-do
-  case "$i" in 
-    -f) shift; FORMAT=$1; shift;;
-    -d) shift; DIRECTORY=$1; shift;;
-    -m) shift; TRANSLATION_MEMORY_FILE=$1; shift;;
-    -o) shift; TRANSLATION_MEMORY_DIRECTION=$1 shift;;
-    -u) UWORDS="no"; shift;;
-    -a) OPTION_TAGGER="-m"; shift;;
-    -l) DATOS=$DEFAULT_DIRECTORY; list_directions; exit 0;;
-    -h) message;;
-    --) shift; break;;
+
+##########################################################
+# Option and argument parsing, setting globals variables #
+##########################################################
+PATH="${APERTIUM_PATH}:${PATH}"
+[[ -z $TMPDIR ]] && TMPDIR=/tmp
+TMCOMPFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
+
+# Default values, may be overridden below:
+PAIR=""
+INFILE="/dev/stdin"
+FORMAT="txt"
+DATADIR=$DEFAULT_DIRECTORY
+TRANSLATION_MEMORY_DIRECTION=$PAIR
+LIST_MODES_AND_EXIT=false
+
+# Skip (but store) non-option arguments that come before options:
+declare -a ARGS_PREOPT
+declare -i OPTIND=1
+while [[ $OPTIND -le $# ]]; do
+  arg=${@:$OPTIND:1}
+  case $arg in
+    -*) break ;;
+    *) ARGS_PREOPT+=($arg); (( OPTIND++ )) ;;
   esac
 done
 
-case "$#" in 
-     3)
-       OUTPUT_FILE=$3; 
-       INPUT_FILE=$2;
-       PAIR=$1;
-       if [ ! -e $INPUT_FILE ];
-       then echo "Error: file '$INPUT_FILE' not found."
-            message;
-       fi
-       ;;
-     2)
-       INPUT_FILE=$2;
-       PAIR=$1;
-       if [ ! -e $INPUT_FILE ];
-       then echo "Error: file '$INPUT_FILE' not found."
-            message;
-       fi
-       ;;
-     1)
-       PAIR=$1
-       ;;
-     *)
-       message 
-       ;;
-esac    
-
-if [ x$FORMAT = x ]; then FORMAT="txt"; fi
-if [ x$DIRECTORY = x ]; then DIRECTORY=$DEFAULT_DIRECTORY; fi
-if [ x$TRANSLATION_MEMORY_DIRECTION = x ]; then TRANSLATION_MEMORY_DIRECTION=$PAIR; fi
-
-PREFIJO=$PAIR;
-FORMATADOR=$FORMAT;
-DATOS=$DIRECTORY;
-FICHERO=$INPUT_FILE;
-SALIDA=$OUTPUT_FILE;
-TMCOMPFILE=$(mktemp "$TMPDIR/apertium.XXXXXXXX")
 
-if [ "$TRANSLATION_MEMORY_FILE" != "" ]
-then $APERTIUM_PATH/lt-tmxcomp $TRANSLATION_MEMORY_DIRECTION $TRANSLATION_MEMORY_FILE $TMCOMPFILE >/dev/null
-     if [ "$?" != "0" ]
-     then echo "Error: Cannot compile TM '" $TRANSLATION_MEMORY_FILE "'";
-          echo"   hint: use -o parameter";
-          message;
-     fi
+while getopts ":uahlf:d:m:o:" opt; do
+  case "$opt" in
+    f) FORMAT=$OPTARG ;;
+    d) DATADIR=$OPTARG ;;
+    m) TRANSLATION_MEMORY_FILE=$OPTARG ;;
+    o) TRANSLATION_MEMORY_DIRECTION=$OPTARG ;;
+    u) UWORDS="no" ;;
+    a) OPTION_TAGGER="-m" ;;
+    l) LIST_MODES_AND_EXIT=true ;;
+    h) message ;;
+    \?) echo "ERROR: Unknown option $OPTARG"; message ;;
+    :) echo "ERROR: $OPTARG requires an argument"; message ;;
+  esac
+done
+shift $(($OPTIND-1))
+
+if $LIST_MODES_AND_EXIT; then list_directions; exit 0; fi
+
+# Restore non-option arguments that came before options back into arg list:
+set -- "${ARGS_PREOPT[@]}" "$@"
+
+case "$#" in
+  3)
+    SALIDA=$3
+    REDIR=">"
+    INFILE=$2
+    PAIR=$1
+    if [[ ! -e "$INFILE" ]]; then
+      echo "Error: file '$INFILE' not found."
+      message
+    fi
+    ;;
+  2)
+    INFILE=$2
+    PAIR=$1
+    if [[ ! -e "$INFILE" ]]; then
+      echo "Error: file '$INFILE' not found."
+      message
+    fi
+    ;;
+  1)
+    PAIR=$1
+    ;;
+  *)
+    message
+    ;;
+esac
+
+
+if [[ -n $TRANSLATION_MEMORY_FILE ]]; then
+  "$APERTIUM_PATH/lt-tmxcomp" "$TRANSLATION_MEMORY_DIRECTION" "$TRANSLATION_MEMORY_FILE" "$TMCOMPFILE" >/dev/null
+  if [ "$?" != "0" ]; then
+    echo "Error: Cannot compile TM '$TRANSLATION_MEMORY_FILE'"
+    echo"   hint: use -o parameter"
+    message
+  fi
 fi
 
-if [ ! -d $DATOS/modes ];
-then echo "Error: Directory '$DATOS/modes' does not exist."
-     message
+if [[ ! -d "$DATADIR/modes" ]]; then
+  echo "Error: Directory '$DATADIR/modes' does not exist."
+  message
 fi
 
-if [ ! -e $DATOS/modes/$PREFIJO.mode ];
-  then echo -n "Error: Mode $PREFIJO does not exist";
-       c=$(find $DATOS/modes|wc -l)
-       if [ "$c" -le 1 ];
-       then echo ".";
-       else echo ". Try one of:";
-         list_directions;
-#         for i in $DATOS/modes/*.mode;
-#         do echo "  " $(basename $i) |awk '{gsub(".mode", ""); print;}'
-#         done;
-       fi
-       exit 1;
+if [[ ! -e "$DATADIR/modes/$PAIR.mode" ]]; then
+  echo -n "Error: Mode $PAIR does not exist"
+  c=$(find "$DATADIR/modes"|wc -l)
+  if [ "$c" -le 1 ]; then
+    echo "."
+  else
+    echo ". Try one of:"
+    list_directions
+  fi
+  exit 1
 fi
 
 #Parametro opcional, de no estar, lee de la entrada estandar (stdin)
 
-case "$FORMATADOR" in 
-        none)
-        	if [ "$UWORDS" = "no" ]
-        	then OPTION="-n";
-        	else OPTION="-g";
-        	fi
-	        ;;
-	txt|rtf|html|xpresstag)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		;;
-        rtf)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		MILOCALE=$(locale -a|grep -i -v "utf\|^C$\|^POSIX$"|head -1);
-		if [ "$MILOCALE" = "" ]
-		then echo "Error: Install a ISO-8859-1 compatible locale in your system";
-	             exit 1;
-	        fi
-	        export LC_CTYPE=$MILOCALE
-		;;
-        
-        odt)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		translate_odt
-		exit 0
-		;;
-        latex)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		translate_latex
-		exit 0
-		;;
-        latex-raw)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		translate_latex_raw
-		exit 0
-		;;
-		
-		
-	docx)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		translate_docx
-		exit 0
-		;;
-	xlsx)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		translate_xlsx
-		exit 0
-		;;
-	pptx)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n"; 
-		else OPTION="-g";
-		fi;
-		translate_pptx
-		exit 0
-		;;
-	html-noent)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n";
-		else OPTION="-g";
-		fi;
-		translate_htmlnoent
-		exit 0
-		;;
-		
-	wxml)
-		if [ "$UWORDS" = "no" ]; then OPTION="-n";
-		else OPTION="-g";
-		fi;
-	        locale_utf8
-	        ;;
-	        	
-	txtu)
-	        FORMATADOR="txt";
-		OPTION="-n"
-		;;
-	htmlu) 
-		FORMATADOR="html";
-		OPTION="-n";
-		;;
-	xpresstagu)
-		FORMATADOR="xpresstag";
-		OPTION="-n";
-		;;
-	rtfu)
-		FORMATADOR="rtf";
-		OPTION="-n";
-		MILOCALE=$(locale -a|grep -i -v "utf\|^C$\|^POSIX$"|head -1);
-		if [ "$MILOCALE" = "" ]
-		then echo "Error: Install a ISO-8859-1 compatible locale in your system";
-	             exit 1;
-	        fi
-	        export LC_CTYPE=$MILOCALE
-		;;
- 
-        odtu) 
-                OPTION="-n"
-                translate_odt
-                exit 0
-                ;;
-                
-        docxu)
-                OPTION="-n"
-                translate_docx
-                exit 0
-                ;;
-
-        xlsxu)
-                OPTION="-n"
-                translate_xlsx
-                exit 0
-                ;;
-
-        pptxu)
-                OPTION="-n"
-                translate_pptx
-                exit 0
-                ;;
-        
-        wxmlu)
-		OPTION="-n";
-	        locale_utf8
-	        ;;
-
-                
-        
-	*) # Por defecto asumimos txt
-		FORMATADOR="txt"
-		OPTION="-g"
-		;;	
+case "$FORMAT" in
+  none)
+    if [ "$UWORDS" = "no" ]; then
+      OPTION="-n";
+    else OPTION="-g";
+    fi
+    ;;
+  txt|rtf|html|xpresstag)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    ;;
+  rtf)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    MILOCALE=$(locale -a|grep -i -v "utf\|^C$\|^POSIX$"|head -1);
+    if [ "$MILOCALE" = "" ]; then
+      echo "Error: Install a ISO-8859-1 compatible locale in your system";
+      exit 1;
+    fi
+    export LC_CTYPE=$MILOCALE
+    ;;
+
+  odt)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    translate_odt
+    exit 0
+    ;;
+  latex)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    translate_latex
+    exit 0
+    ;;
+  latex-raw)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    translate_latex_raw
+    exit 0
+    ;;
+  
+  
+  docx)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    translate_docx
+    exit 0
+    ;;
+  xlsx)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    translate_xlsx
+    exit 0
+    ;;
+  pptx)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    translate_pptx
+    exit 0
+    ;;
+  html-noent)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    translate_htmlnoent
+    exit 0
+    ;;
+  
+  wxml)
+    if [ "$UWORDS" = "no" ]; then OPTION="-n";
+    else OPTION="-g";
+    fi;
+    locale_utf8
+    ;;
+  
+  txtu)
+    FORMAT="txt";
+    OPTION="-n"
+    ;;
+  htmlu)
+    FORMAT="html";
+    OPTION="-n";
+    ;;
+  xpresstagu)
+    FORMAT="xpresstag";
+    OPTION="-n";
+    ;;
+  rtfu)
+    FORMAT="rtf";
+    OPTION="-n";
+    MILOCALE=$(locale -a|grep -i -v "utf\|^C$\|^POSIX$"|head -1);
+    if [ "$MILOCALE" = "" ]; then
+      echo "Error: Install a ISO-8859-1 compatible locale in your system";
+      exit 1;
+    fi
+    export LC_CTYPE=$MILOCALE
+    ;;
+
+  odtu)
+    OPTION="-n"
+    translate_odt
+    exit 0
+    ;;
+
+  docxu)
+    OPTION="-n"
+    translate_docx
+    exit 0
+    ;;
+
+  xlsxu)
+    OPTION="-n"
+    translate_xlsx
+    exit 0
+    ;;
+
+  pptxu)
+    OPTION="-n"
+    translate_pptx
+    exit 0
+    ;;
+
+  wxmlu)
+    OPTION="-n";
+    locale_utf8
+    ;;
+
+
+
+  *) # Por defecto asumimos txt
+    FORMAT="txt"
+    OPTION="-g"
+    ;;	
 esac
 
-if [ -z $REF ]
-then 
-        REF=$FORMATADOR
+if [ -z "$REF" ]
+then
+  REF=$FORMAT
 fi
 
-if [ "$FORMATADOR" = "none" ]
-then cat "$FICHERO";
-else $APERTIUM_PATH/apertium-des$FORMATADOR "$FICHERO"; fi| \
-if [ "$TRANSLATION_MEMORY_FILE" = "" ]; 
-then cat;  
-else $APERTIUM_PATH/lt-tmxproc $TMCOMPFILE;
-fi | if [ ! -x $DATOS/modes/$PREFIJO.mode ]
-then sh $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-else $DATOS/modes/$PREFIJO.mode $OPTION $OPTION_TAGGER
-fi | if [ "$FORMATADOR" = "none" ]
-then cat >"$SALIDA";
-else $APERTIUM_PATH/apertium-re$FORMATADOR >"$SALIDA";
+if [ "$FORMAT" = "none" ]
+then cat "$INFILE";
+else "$APERTIUM_PATH/apertium-des$FORMAT" "$INFILE"; fi| \
+  if [ "$TRANSLATION_MEMORY_FILE" = "" ];
+then cat;
+else "$APERTIUM_PATH/lt-tmxproc" "$TMCOMPFILE";
+fi | if [ ! -x "$DATADIR/modes/$PAIR.mode" ]
+then sh "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+else "$DATADIR/modes/$PAIR.mode" "$OPTION" "$OPTION_TAGGER"
+fi | if [ "$FORMAT" = "none" ]
+then if [ "$REDIR" = "" ]; then cat; else cat > "$SALIDA"; fi
+else if [ "$REDIR" = "" ]; then "$APERTIUM_PATH/apertium-re$FORMAT"; else "$APERTIUM_PATH/apertium-re$FORMAT" > "$SALIDA"; fi
 fi
 
-rm -Rf $TMCOMPFILE
+rm -Rf "$TMCOMPFILE"
diff --git a/apertium/apertium-lextor-eval.1 b/apertium/apertium-lextor-eval.1
deleted file mode 100644
index 0ed91de..0000000
--- a/apertium/apertium-lextor-eval.1
+++ /dev/null
@@ -1,62 +0,0 @@
-.TH apertium-lextor-eval 1 2006-12-12 "" ""
-.SH NAME
-apertium-lextor-eval \- This application is part of
-(
-.B apertium
-)
-.PP
-This tool is part of the apertium machine translation
-architecture: \fBhttp://apertium.org\fR.
-.SH SYNOPSIS
-.B apertium\-lextor\-eval
-.B \-\-reference\fR reftext 
-.B \-\-parameters\fR | \fB\-p\fR model dic left right
-.PP
-.SH DESCRIPTION
-.BR apertium\-lextor\-eval 
-is the application used to evaluate the performance of lexical
-selection models that have been previously estimated with
-\fBapertium\-lextor\fR(1). To achieve this purpose a manually
-disambiguated corpus is used. This corpus is read from the standard
-input and must be in the intermediate format used by apertium.
-.SH OPTIONS
-.TP
-.B \-\-reference | \-r\fR
-.br
-Specifies the reference corpus used for evaluation (one word per line
-with the correct translation sense for those words with more than
-one).
-.TP
-.B \-\-parameters | \-p\fR
-.br
-It allows to specify the following required parameters:
-.TP
-.I model\fR the file containing the model to be used for the lexical selection.
-.TP
-.I dic\fR  the lexical\-selection dictionary in binary format.
-.TP
-.I left\fR left\-side context to take into account (number of words).
-.TP
-.I right\fR right\-side context to take into account (number of words).
-.PP
-.B \-\-help | \-h
-.br
-Shows this help.
-.PP
-.B \-\-version | \-v
-.br
-Shows license information.
-.PP
-.SH SEE ALSO
-.I apertium\-gen\-lextorbil\fR(1),
-.I apertium\-preprocess\-corpus\-lextor\fR(1),
-.I apertium\-gen\-stopwords\-lextor\fR(1),
-.I apertium\-gen\-wlist\-lextor\fR(1),
-.I apertium\-gen\-wlist\-lextor\-translation\fR(1),
-.I apertium\-lextor\-mono\fR(1),
-.I apertium\-lextor\fR(1).
-.SH BUGS
-Lots of...lurking in the dark and waiting for you!
-.SH AUTHOR
-(c) 2005,2006 Universitat d'Alacant / Universidad de Alicante. All rights
-reserved.
diff --git a/apertium/apertium-postlatex-raw.l b/apertium/apertium-postlatex-raw.l
index 5eadfd7..42f17bc 100644
--- a/apertium/apertium-postlatex-raw.l
+++ b/apertium/apertium-postlatex-raw.l
@@ -25,7 +25,7 @@ extern "C" {
 #include "apertium_config.h"
 #endif
 #include <apertium/unlocked_cstdio.h>
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <io.h>
 #include <fcntl.h>
 #endif
@@ -47,20 +47,20 @@ wstring convertir(string const &multibyte, int const length)
   {
     delete[] retval;
     if(memconv.size() >= 4)
-    { 
+    {
       wcerr << L"Warning: wrong encoding" << endl;
     }
     return L"";
   }
   else
-  {   
+  {
     memconv = "";
     retval[l] = 0;
     wstring ret = retval;
     delete[] retval;
     return ret;
   }
-}  
+}
 
 
 
@@ -251,16 +251,16 @@ void usage(string const &progname)
 {
 
   cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
-  
+
   cerr << "LaTeX format postprocessor " << endl;
-  exit(EXIT_SUCCESS);  
+  exit(EXIT_SUCCESS);
 }
 
 int main(int argc, char *argv[])
 {
   LtLocale::tryToSetLocale();
   size_t base = 0;
-  
+
   if(argc >= 2 && !strcmp(argv[1],"-i"))
   {
     base++;
@@ -289,11 +289,11 @@ int main(int argc, char *argv[])
     default:
       break;
   }
-  
-#ifdef _MSC_VER
+
+#ifdef _WIN32
   _setmode(_fileno(yyin), _O_U8TEXT);
   _setmode(_fileno(yyout), _O_U8TEXT);
-#endif 
+#endif
   // prevent warning message
   yy_push_state(1);
   yy_top_state();
diff --git a/apertium/apertium-postlatex.l b/apertium/apertium-postlatex.l
index a08ca47..0fe0224 100644
--- a/apertium/apertium-postlatex.l
+++ b/apertium/apertium-postlatex.l
@@ -25,7 +25,7 @@ extern "C" {
 #include "apertium_config.h"
 #endif
 #include <apertium/unlocked_cstdio.h>
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <io.h>
 #include <fcntl.h>
 #endif
@@ -47,20 +47,20 @@ wstring convertir(string const &multibyte, int const length)
   {
     delete[] retval;
     if(memconv.size() >= 4)
-    { 
+    {
       wcerr << L"Warning: wrong encoding" << endl;
     }
     return L"";
   }
   else
-  {   
+  {
     memconv = "";
     retval[l] = 0;
     wstring ret = retval;
     delete[] retval;
     return ret;
   }
-}  
+}
 
 
 
@@ -277,7 +277,7 @@ wstring convertir(string const &multibyte, int const length)
  \#	{
         fputws(L"\\#", yyout);
  }*/
- 
+
 
 [^A-Za-z\n]	{
 	wstring wt = convertir(yytext,yyleng);
@@ -309,16 +309,16 @@ void usage(string const &progname)
 {
 
   cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
-  
+
   cerr << "LaTeX format postprocessor " << endl;
-  exit(EXIT_SUCCESS);  
+  exit(EXIT_SUCCESS);
 }
 
 int main(int argc, char *argv[])
 {
   LtLocale::tryToSetLocale();
   size_t base = 0;
-  
+
   if(argc >= 2 && !strcmp(argv[1],"-i"))
   {
     base++;
@@ -347,11 +347,11 @@ int main(int argc, char *argv[])
     default:
       break;
   }
-  
-#ifdef _MSC_VER
+
+#ifdef _WIN32
   _setmode(_fileno(yyin), _O_U8TEXT);
   _setmode(_fileno(yyout), _O_U8TEXT);
-#endif 
+#endif
   // prevent warning message
   yy_push_state(1);
   yy_top_state();
diff --git a/apertium/apertium-prelatex.l b/apertium/apertium-prelatex.l
index 9c7e9fa..237541e 100644
--- a/apertium/apertium-prelatex.l
+++ b/apertium/apertium-prelatex.l
@@ -25,7 +25,7 @@ extern "C" {
 #include "apertium_config.h"
 #endif
 #include <apertium/unlocked_cstdio.h>
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <io.h>
 #include <fcntl.h>
 #endif
@@ -49,20 +49,20 @@ wstring convertir(string const &multibyte, int const length)
   {
     delete[] retval;
     if(memconv.size() >= 4)
-    { 
+    {
       wcerr << L"Warning: wrong encoding" << endl;
     }
     return L"";
   }
   else
-  {   
+  {
     memconv = "";
     retval[l] = 0;
     wstring ret = retval;
     delete[] retval;
     return ret;
   }
-}  
+}
 
 
 
@@ -184,15 +184,15 @@ wstring convertir(string const &multibyte, int const length)
 
 \\[`'\^\"H~ck=b.druv]((\{.\})|(.))	{
 	wstring ws = convertir(yytext,yyleng).c_str();
-	
+
 	wstring result = accentsMap.get(
 	  L""+ws.substr(1,1)+ (
 	    (yyleng==3)? ws.substr(2,1) : ws.substr(3,1)
 	  ));
-	  
+
         if(result == L"")
         {
-	  fputws((wstring(L"<")+convertir(yytext+1,yyleng)+wstring(L"/>")).c_str(),yyout);          
+	  fputws((wstring(L"<")+convertir(yytext+1,yyleng)+wstring(L"/>")).c_str(),yyout);
         }
         else
         {
@@ -207,7 +207,7 @@ wstring convertir(string const &multibyte, int const length)
 \%.*	{
 	if(yytext[yyleng-1]=='\r')
 		fputws((wstring(L"<COMMENT>")+convertir(yytext+1,yyleng-2)+wstring(L"</COMMENT>\r")).c_str(),yyout);
-	else		
+	else
 		fputws((wstring(L"<COMMENT>")+convertir(yytext+1,yyleng-1)+wstring(L"</COMMENT>")).c_str(),yyout);
 }
 
@@ -260,18 +260,18 @@ wstring convertir(string const &multibyte, int const length)
 }
 
 
-\\[A-Za-z]+\*	{ 
+\\[A-Za-z]+\*	{
 	fputws((wstring(L"<")+convertir(yytext+1,yyleng-2)+wstring(L"_STAR/>")).c_str(),yyout);
 }
 
-\\[A-Za-z]+	{ 
+\\[A-Za-z]+	{
 	fputws((wstring(L"<")+convertir(yytext+1,yyleng)+wstring(L"/>")).c_str(),yyout);
 }
 
 \\\{	{
         fputws(L"<LEFTESCAPEDBRACE/>", yyout);
         }
-       
+
 \\\{	{
         fputws(L"<RIGHTESCAPEDBRACE/>", yyout);
         }
@@ -317,42 +317,42 @@ wstring convertir(string const &multibyte, int const length)
         wstring ws = convertir(yytext, yyleng);
         fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
         fputws(L"</VERB>", yyout);
-}        
+}
 
 \\verb[!][^!]+[!]	{
         fputws(L"<VERB>",yyout);
         wstring ws = convertir(yytext, yyleng);
         fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
         fputws(L"</VERB>", yyout);
-}        
+}
 
 \\verb[?][^?]+[?]	{
         fputws(L"<VERB>",yyout);
         wstring ws = convertir(yytext, yyleng);
         fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
         fputws(L"</VERB>", yyout);
-}        
+}
 
 \\verb[/][^/]+[/]	{
         fputws(L"<VERB>",yyout);
         wstring ws = convertir(yytext, yyleng);
         fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
         fputws(L"</VERB>", yyout);
-}        
+}
 
 \\verb[#][^#]+[#]	{
         fputws(L"<VERB>",yyout);
         wstring ws = convertir(yytext, yyleng);
         fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
         fputws(L"</VERB>", yyout);
-}        
+}
 
 \\verb[+][^+]+[+]	{
         fputws(L"<VERB>",yyout);
         wstring ws = convertir(yytext, yyleng);
         fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
         fputws(L"</VERB>", yyout);
-}        
+}
 
 \\\(	{
 	fputws(L"<MATH_PAR>",yyout);
@@ -421,16 +421,16 @@ void usage(string const &progname)
 {
 
   cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
-  
+
   cerr << "LaTeX format preprocessor " << endl;
-  exit(EXIT_SUCCESS);  
+  exit(EXIT_SUCCESS);
 }
 
 int main(int argc, char *argv[])
 {
   LtLocale::tryToSetLocale();
   size_t base = 0;
-  
+
   if(argc >= 2 && !strcmp(argv[1],"-i"))
   {
     base++;
@@ -459,11 +459,11 @@ int main(int argc, char *argv[])
     default:
       break;
   }
-  
-#ifdef _MSC_VER
+
+#ifdef _WIN32
   _setmode(_fileno(yyin), _O_U8TEXT);
   _setmode(_fileno(yyout), _O_U8TEXT);
-#endif 
+#endif
   // prevent warning message
   yy_push_state(1);
   yy_top_state();
diff --git a/apertium/apertium-rertf-cp1250.1 b/apertium/apertium-rertf-cp1250.1
deleted file mode 100644
index 34c80da..0000000
--- a/apertium/apertium-rertf-cp1250.1
+++ /dev/null
@@ -1,34 +0,0 @@
-.TH apertium-rertf 1 2006-03-21 "" ""
-.SH NAME
-apertium-rertf \- This application is part of (
-.B apertium 
-)
-.PP
-This tool is part of the apertium open-source machine translation
-toolbox: \fBhttp://www.apertium.org\fR.
-.SH SYNOPSIS
-.B apertium-rertf
-[ <input file> [ <output file> ] ]
-.PP
-.SH DESCRIPTION
-.BR apertium-rertf 
-is an RTF format processor. It restores the original RTF formatting
-the text had before being passed through the apertium-desrtf deformatter.
-
-.SH OPTIONS
-.TP
-.B \-h, \-\-help
-Display this help.
-.PP
-.SH SEE ALSO
-.I apertium-retxt\fR(1),
-.I apertium-rehtml\fR(1),
-.I lt-proc\fR(1),
-.I apertium\fR(1).
-.SH BUGS
-Lots of...lurking in the dark and waiting for you!
-.SH AUTHOR
-Copyright (c) 2005, 2006 Universitat d'Alacant / Universidad de Alicante.
-This is free software.  You may redistribute copies of it under the terms
-of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
-
diff --git a/apertium/apertium-rertf-cp1251.1 b/apertium/apertium-rertf-cp1251.1
deleted file mode 100644
index 34c80da..0000000
--- a/apertium/apertium-rertf-cp1251.1
+++ /dev/null
@@ -1,34 +0,0 @@
-.TH apertium-rertf 1 2006-03-21 "" ""
-.SH NAME
-apertium-rertf \- This application is part of (
-.B apertium 
-)
-.PP
-This tool is part of the apertium open-source machine translation
-toolbox: \fBhttp://www.apertium.org\fR.
-.SH SYNOPSIS
-.B apertium-rertf
-[ <input file> [ <output file> ] ]
-.PP
-.SH DESCRIPTION
-.BR apertium-rertf 
-is an RTF format processor. It restores the original RTF formatting
-the text had before being passed through the apertium-desrtf deformatter.
-
-.SH OPTIONS
-.TP
-.B \-h, \-\-help
-Display this help.
-.PP
-.SH SEE ALSO
-.I apertium-retxt\fR(1),
-.I apertium-rehtml\fR(1),
-.I lt-proc\fR(1),
-.I apertium\fR(1).
-.SH BUGS
-Lots of...lurking in the dark and waiting for you!
-.SH AUTHOR
-Copyright (c) 2005, 2006 Universitat d'Alacant / Universidad de Alicante.
-This is free software.  You may redistribute copies of it under the terms
-of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
-
diff --git a/apertium/apertium_config.h.cmake_in b/apertium/apertium_config.h.cmake_in
deleted file mode 100644
index 2d14f63..0000000
--- a/apertium/apertium_config.h.cmake_in
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "${PACKAGE_BUGREPORT}"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "${PACKAGE_NAME}"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "${PACKAGE_STRING}"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "${PACKAGE_TARNAME}"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "${PACKAGE_VERSION}"
-
-#define HAVE_DECL_FPUTS_UNLOCKED   ${HAVE_DECL_FPUTS_UNLOCKED}
-#define HAVE_DECL_FGETC_UNLOCKED   ${HAVE_DECL_FGETC_UNLOCKED}
-#define HAVE_DECL_FPUTC_UNLOCKED   ${HAVE_DECL_FPUTC_UNLOCKED}
-#define HAVE_DECL_FWRITE_UNLOCKED  ${HAVE_DECL_FWRITE_UNLOCKED}
-#define HAVE_DECL_FREAD_UNLOCKED   ${HAVE_DECL_FREAD_UNLOCKED}
-#define HAVE_DECL_FGETWC_UNLOCKED  ${HAVE_DECL_FGETWC_UNLOCKED}
-#define HAVE_DECL_FPUTWC_UNLOCKED  ${HAVE_DECL_FPUTWC_UNLOCKED}
-#define HAVE_DECL_FPUTWS_UNLOCKED  ${HAVE_DECL_FPUTWS_UNLOCKED}
-
-#define HAVE_DECL_FPUTS_NOLOCK   ${HAVE_DECL_FPUTS_NOLOCK}
-#define HAVE_DECL_FGETC_NOLOCK   ${HAVE_DECL_FGETC_NOLOCK}
-#define HAVE_DECL_FPUTC_NOLOCK   ${HAVE_DECL_FPUTC_NOLOCK}
-#define HAVE_DECL_FWRITE_NOLOCK  ${HAVE_DECL_FWRITE_NOLOCK}
-#define HAVE_DECL_FREAD_NOLOCK   ${HAVE_DECL_FREAD_NOLOCK}
-#define HAVE_DECL_FGETWC_NOLOCK  ${HAVE_DECL_FGETWC_NOLOCK}
-#define HAVE_DECL_FPUTWC_NOLOCK  ${HAVE_DECL_FPUTWC_NOLOCK}
-#define HAVE_DECL_FPUTWS_NOLOCK  ${HAVE_DECL_FPUTWS_NOLOCK}
-
-#if !defined(HAVE_DECL_FPUTS_UNLOCKED) && defined (HAVE_DECL_FPUTS_NOLOCK)
-#define fputs_unlocked _fputs_nolock
-#endif
-#if !defined(HAVE_DECL_FGETC_UNLOCKED) && defined (HAVE_DECL_FGETC_NOLOCK)
-#define fgetc_unlocked _fgetc_nolock
-#endif
-#if !defined(HAVE_DECL_FPUTC_UNLOCKED) && defined (HAVE_DECL_FPUTC_NOLOCK)
-#define fputc_unlocked _fputc_nolock
-#endif
-#if !defined(HAVE_DECL_FWRITE_UNLOCKED) && defined (HAVE_DECL_FWRITE_NOLOCK)
-#define fwrite_unlocked _fwrite_nolock
-#endif
-#if !defined(HAVE_DECL_FREAD_UNLOCKED) && defined (HAVE_DECL_FREAD_NOLOCK)
-#define fread_unlocked _fread_nolock
-#endif
-#if !defined(HAVE_DECL_FPUTWS_UNLOCKED) && defined (HAVE_DECL_FPUTWS_NOLOCK)
-#define fputws_unlocked _fputws_nolock
-#endif
-#if !defined(HAVE_DECL_FGETWC_UNLOCKED) && defined (HAVE_DECL_FGETWC_NOLOCK)
-#define fgetwc_unlocked _fgetwc_nolock
-#endif
-#if !defined(HAVE_DECL_FPUTWC_UNLOCKED) && defined (HAVE_DECL_FPUTWC_NOLOCK)
-#define fputwc_unlocked _fputwc_nolock
-#endif
diff --git a/apertium/apertium_config.h.in b/apertium/apertium_config.h.in
new file mode 100644
index 0000000..fd93b9c
--- /dev/null
+++ b/apertium/apertium_config.h.in
@@ -0,0 +1,140 @@
+/* apertium/apertium_config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Define to 1 if you have the declaration of `fgetc_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FGETC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fgetwc_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FGETWC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fgetws_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FGETWS_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FPUTC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FPUTS_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputwc_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FPUTWC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputws_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FPUTWS_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FREAD_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+   you don't. */
+#undef HAVE_DECL_FWRITE_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getopt_long', and to 0 if you
+   don't. */
+#undef HAVE_DECL_GETOPT_LONG
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the `getopt_long' function. */
+#undef HAVE_GETOPT_LONG
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `setlocale' function. */
+#undef HAVE_SETLOCALE
+
+/* Define to 1 if you have the `snprintf' function. */
+#undef HAVE_SNPRINTF
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#undef HAVE_STRCASECMP
+
+/* Define to 1 if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#undef LT_OBJDIR
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+#  undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
diff --git a/apertium/apertium_deshtml.cc b/apertium/apertium_deshtml.cc
new file mode 100644
index 0000000..fcd635d
--- /dev/null
+++ b/apertium/apertium_deshtml.cc
@@ -0,0 +1,5476 @@
+#line 2 "apertium_deshtml.cc"
+
+#line 4 "apertium_deshtml.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][61] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0
+    },
+
+    {
+       11,   12,   13,   14,   13,   12,   12,   15,   16,   12,
+       15,   12,   12,   12,   17,   13,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12
+    },
+
+    {
+       11,   12,   13,   14,   13,   12,   12,   15,   16,   12,
+       15,   12,   12,   12,   17,   13,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+
+       12
+    },
+
+    {
+       11,   18,   18,   18,   18,   18,   18,   18,   18,   19,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18
+    },
+
+    {
+       11,   18,   18,   18,   18,   18,   18,   18,   18,   19,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18
+    },
+
+    {
+       11,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   21,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20
+    },
+
+    {
+       11,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   21,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20
+    },
+
+    {
+       11,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+
+       22,   22,   22,   22,   23,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22
+    },
+
+    {
+       11,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   23,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22
+    },
+
+    {
+       11,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   25,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24
+
+    },
+
+    {
+       11,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   25,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24
+    },
+
+    {
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11
+    },
+
+    {
+       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+
+      -12
+    },
+
+    {
+       11,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13
+    },
+
+    {
+       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14
+    },
+
+    {
+       11,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15
+    },
+
+    {
+       11,  -16,  -16,  -16,  -16,  -16,   26,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27
+    },
+
+    {
+       11,  -17,  -17,  -17,  -17,   28,  -17,  -17,  -17,  -17,
+
+       29,  -17,  -17,  -17,  -17,  -17,   30,   31,   32,   33,
+       34,   33,   33,   33,   35,   36,   33,   33,   37,   33,
+       33,   38,   39,   33,   40,   41,   42,   33,   33,   33,
+       31,   32,   33,   34,   33,   33,   35,   36,   33,   37,
+       33,   33,   38,   39,   33,   40,   41,   42,   33,   33,
+       33
+    },
+
+    {
+       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18
+    },
+
+    {
+       11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,   43,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19
+
+    },
+
+    {
+       11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20
+    },
+
+    {
+       11,  -21,  -21,  -21,  -21,   44,  -21,  -21,  -21,  -21,
+       45,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21
+    },
+
+    {
+       11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+
+      -22
+    },
+
+    {
+       11,  -23,  -23,  -23,  -23,   46,  -23,  -23,  -23,  -23,
+       47,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23
+    },
+
+    {
+       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24
+    },
+
+    {
+       11,  -25,  -25,  -25,  -25,   48,  -25,  -25,  -25,  -25,
+       49,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25
+    },
+
+    {
+       11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,   50,   50,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   51,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   51,
+      -26
+    },
+
+    {
+       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+
+      -27,  -27,  -27,   52,  -27,  -27,  -27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
+       27
+    },
+
+    {
+       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,   53,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54
+    },
+
+    {
+       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,   55,   56,   55,
+       57,   55,   55,   55,   58,   55,   55,   55,   59,   55,
+       55,   60,   61,   55,   55,   62,   63,   55,   55,   55,
+       55,   56,   55,   57,   55,   55,   58,   55,   55,   59,
+       55,   55,   60,   61,   55,   55,   62,   63,   55,   55,
+       55
+
+    },
+
+    {
+       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   66,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   66,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   67,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   67,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   68,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   68,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   69,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   70,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   70,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   71,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       71,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   72,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   72,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   73,   64,
+       64,   64,   74,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   73,
+       64,   64,   64,   74,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   75,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   76,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   77,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   78,   64,   64,   64,   64,
+       64,   64,   77,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   78,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       79,   64,   64,   64,   80,   81,   64,   64,   64,   64,
+
+       64,   64,   64,   82,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   79,   64,   64,   80,   81,   64,   64,
+       64,   64,   64,   64,   82,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   83,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   83,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,   84,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43
+    },
+
+    {
+       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,   85,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44
+    },
+
+    {
+       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,   86,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+
+      -45,  -45,  -45,  -45,  -45,   86,  -45,  -45,  -45,  -45,
+      -45
+    },
+
+    {
+       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,   87,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46
+    },
+
+    {
+       11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,   88,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+       88,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47
+    },
+
+    {
+       11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,   89,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48
+    },
+
+    {
+       11,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,   90,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,   90,  -49,  -49,  -49,  -49,
+      -49
+
+    },
+
+    {
+       11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,   91,   91,   52,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50
+    },
+
+    {
+       11,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,   92,   92,  -51,  -51,  -51,  -51,   92,   92,   92,
+       92,   92,   92,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+       92,   92,   92,   92,   92,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51
+    },
+
+    {
+       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+
+      -52
+    },
+
+    {
+       11,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,   93,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53
+    },
+
+    {
+       11,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   95,   94,   94,   94,   94,
+
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   98,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   98,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   99,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   99,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,  100,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,  101,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,  101,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  102,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,  102,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,  103,   96,
+       96,   96,  104,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,  103,
+       96,   96,   96,  104,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,  105,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  106,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+      107,   96,   96,   96,  108,  109,   96,   96,   96,   96,
+       96,   96,   96,  110,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,  107,   96,   96,  108,  109,   96,   96,
+       96,   96,   96,   96,  110,   96,   96,   96,   96,   96,
+
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,  111,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,  111,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,  112,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,  112,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  113,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   76,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,  114,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,  114,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  115,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  116,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+
+    },
+
+    {
+       11,   64,   64,   64,  117,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   76,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,  118,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  118,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  119,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  120,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+      121,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,  121,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,   64,   64,   64,  122,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  120,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  123,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,  123,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,   76,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124
+    },
+
+    {
+       11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,  125,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,  125,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,  126,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+      126
+    },
+
+    {
+       11,   64,   64,   64,  127,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  128,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+
+    },
+
+    {
+       11,   64,   64,   64,  129,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  128,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,  130,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,  130,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  131,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  128,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,   64,   64,   64,  132,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  120,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84
+    },
+
+    {
+       11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  133,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85
+    },
+
+    {
+       11,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  134,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  134,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86
+    },
+
+    {
+       11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  135,
+
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87
+    },
+
+    {
+       11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  136,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  136,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88
+    },
+
+    {
+       11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  137,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89
+
+    },
+
+    {
+       11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  138,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  138,  -90,  -90,  -90,
+      -90
+    },
+
+    {
+       11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  139,  139,   52,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91
+    },
+
+    {
+       11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  140,  140,   52,  -92,  -92,  -92,  140,  140,  140,
+      140,  140,  140,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      140,  140,  140,  140,  140,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+
+      -92
+    },
+
+    {
+       11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93
+    },
+
+    {
+       11,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   95,   94,   94,   94,   94,
+
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94
+    },
+
+    {
+       11,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97
+    },
+
+    {
+       11,   96,   96,   96,  141,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  106,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,  142,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,  142,   96,
+       96
+
+    },
+
+    {
+       11,   96,   96,   96,  143,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  144,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,  145,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  106,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,  146,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  147,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96
+    },
+
+    {
+       11,   96,   96,   96,  148,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  147,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  149,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,  149,   96,   96,   96,
+       96
+    },
+
+    {
+       11,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  106,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150
+    },
+
+    {
+       11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106
+    },
+
+    {
+       11,   96,   96,   96,  151,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,  152,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,  153,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  152,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  154,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,  154,   96,   96,   96,
+       96
+
+    },
+
+    {
+       11,   96,   96,   96,  155,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  152,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,  156,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  147,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,  157,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,  157,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,   76,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158
+    },
+
+    {
+       11,   64,   64,   64,  159,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  116,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  116,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160
+    },
+
+    {
+       11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+
+      161,  161,  161,  161,  161,   76,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161
+    },
+
+    {
+       11,   64,   64,   64,  162,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  163,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  120,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164
+
+    },
+
+    {
+       11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,  165,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,  165,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  120,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+
+      166
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  167,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,  167,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,   76,  124,  124,  124,  124,
+
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  168,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,  168,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,  169,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,  169,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+
+      170,  170,  170,  170,  170,  128,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170
+    },
+
+    {
+       11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128
+    },
+
+    {
+       11,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  128,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171
+
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,  172,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,  172,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  128,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173
+    },
+
+    {
+       11,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  120,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+
+      174
+    },
+
+    {
+       11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133
+    },
+
+    {
+       11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134,  175, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134,  175, -134, -134, -134, -134, -134,
+     -134
+    },
+
+    {
+       11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135
+    },
+
+    {
+       11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136,  176, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136,  176, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136
+    },
+
+    {
+       11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137
+    },
+
+    {
+       11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138,  177,
+
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+      177
+    },
+
+    {
+       11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139,  178,  178,   52, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139
+
+    },
+
+    {
+       11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140,  179,  179,   52, -140, -140, -140,  179,  179,  179,
+      179,  179,  179, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+      179,  179,  179,  179,  179, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140
+    },
+
+    {
+       11,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  106,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180
+    },
+
+    {
+       11,   96,   96,   96,  181,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  144,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96
+    },
+
+    {
+       11,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  144,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182
+    },
+
+    {
+       11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144
+    },
+
+    {
+       11,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  106,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183
+    },
+
+    {
+       11,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  147,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184
+    },
+
+    {
+       11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147
+    },
+
+    {
+       11,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  147,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  186,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,  186,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+
+    },
+
+    {
+       11,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  106,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
+      150
+    },
+
+    {
+       11,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  152,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187
+    },
+
+    {
+       11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+
+     -152
+    },
+
+    {
+       11,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  152,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,  189,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,  189,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  152,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190
+    },
+
+    {
+       11,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  147,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  192,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,  192,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,   76,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158
+    },
+
+    {
+       11,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  116,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193
+
+    },
+
+    {
+       11,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  116,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,   76,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161
+    },
+
+    {
+       11,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  163,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+
+      194
+    },
+
+    {
+       11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163
+    },
+
+    {
+       11,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  120,  164,  164,  164,  164,
+
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164
+    },
+
+    {
+       11,   64,   64,   64,  162,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  163,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  120,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
+      166
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,  195,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,  195,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,  196,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,  196,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,  197,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,  197,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+
+    },
+
+    {
+       11,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  128,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
+      170
+    },
+
+    {
+       11,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  128,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
+      171
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,  198,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,  198,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  128,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
+      173
+    },
+
+    {
+       11,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  120,  174,  174,  174,  174,
+
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
+      174
+    },
+
+    {
+       11, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175,  199, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175,  199, -175, -175,
+
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175
+    },
+
+    {
+       11, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176,  200, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176,  200, -176, -176, -176, -176, -176,
+     -176
+    },
+
+    {
+       11, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177,  201, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177,  201,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177
+    },
+
+    {
+       11, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178,  202,  202,   52, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178
+    },
+
+    {
+       11, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179,  203,  203,   52, -179, -179, -179,  203,  203,  203,
+      203,  203,  203, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+      203,  203,  203,  203,  203, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179
+
+    },
+
+    {
+       11,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  106,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180
+    },
+
+    {
+       11,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  144,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204
+    },
+
+    {
+       11,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  144,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+      182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
+
+      182
+    },
+
+    {
+       11,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  106,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183
+    },
+
+    {
+       11,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  147,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184
+    },
+
+    {
+       11,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  147,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,  205,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,  205,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+
+      187,  187,  187,  187,  187,  152,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187
+    },
+
+    {
+       11,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  152,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
+      188
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,  206,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,  206,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+
+    },
+
+    {
+       11,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  152,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
+      190
+    },
+
+    {
+       11,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  147,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
+      191
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  207,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,  207,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  116,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
+      193
+    },
+
+    {
+       11,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  163,  194,  194,  194,  194,
+
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194,  194,  194,  194,  194,  194,  194,  194,  194,  194,
+      194
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+      208,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,  208,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  209,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,  209,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  210,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,  211,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  212,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  116,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199,  213, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199,  213, -199, -199, -199, -199, -199, -199,
+     -199
+
+    },
+
+    {
+       11, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200,  214, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200,  214, -200, -200, -200,
+     -200
+    },
+
+    {
+       11, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201,  215, -201, -201, -201, -201, -201, -201, -201, -201,
+
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201,  215, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201
+    },
+
+    {
+       11, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202,  216,  216,   52, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+
+     -202
+    },
+
+    {
+       11, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203,   52, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203
+    },
+
+    {
+       11,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  144,  204,  204,  204,  204,
+
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
+      204
+    },
+
+    {
+       11,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   97,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+      217,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,  217,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   96,   96,   96,  218,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,  144,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,  219,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,  219,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  220,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  116,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,   64,   64,   64,  221,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  222,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+
+    },
+
+    {
+       11,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  211,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223
+    },
+
+    {
+       11, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211
+    },
+
+    {
+       11,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  116,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+
+      224
+    },
+
+    {
+       11, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213,  225, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213,  225, -213, -213, -213,
+     -213
+    },
+
+    {
+       11, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+
+     -214, -214, -214, -214, -214,  226, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214,  226, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214
+    },
+
+    {
+       11, -215, -215, -215,  227, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215,  228, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215
+    },
+
+    {
+       11, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216,  229,  229,   52, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216
+    },
+
+    {
+       11,   96,   96,   96,  230,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,  144,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96
+    },
+
+    {
+       11,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  144,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,  232,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+      232,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+
+    },
+
+    {
+       11,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  116,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233
+    },
+
+    {
+       11,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  222,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234
+    },
+
+    {
+       11, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+
+     -222
+    },
+
+    {
+       11,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  211,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
+      223
+    },
+
+    {
+       11,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  116,  224,  224,  224,  224,
+
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
+      224
+    },
+
+    {
+       11, -225, -225, -225,  235, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225,  236, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225
+    },
+
+    {
+       11, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226,  237, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226,  237, -226, -226,
+     -226
+    },
+
+    {
+       11,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+
+      238,  238,  238,  238,  238,  228,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238
+    },
+
+    {
+       11, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228
+    },
+
+    {
+       11, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229,  239,  239,   52, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229
+
+    },
+
+    {
+       11,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  144,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240
+    },
+
+    {
+       11,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  144,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
+      231
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,  241,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  116,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
+      233
+    },
+
+    {
+       11,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  222,  234,  234,  234,  234,
+
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
+      234
+    },
+
+    {
+       11,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  236,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242
+    },
+
+    {
+       11, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236
+    },
+
+    {
+       11, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237,  243,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+      243, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237
+    },
+
+    {
+       11,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  228,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
+      238
+    },
+
+    {
+       11, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239,   52, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239
+
+    },
+
+    {
+       11,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  144,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
+      240
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+
+      244,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,  244,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  236,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242
+    },
+
+    {
+       11, -243, -243, -243, -243, -243, -243, -243, -243,  245,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,  246,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,  246,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+      247, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+
+     -245,  247, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  248,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,  248,   64,   64,   64,
+       64
+    },
+
+    {
+       11, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247,  249, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247,  249, -247, -247, -247, -247, -247, -247, -247,
+     -247
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,  250,   64,   64,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,  250,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249,  251, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249,  251, -249, -249, -249,
+     -249
+
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,  252,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+      252,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+
+     -251, -251, -251,  253, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251,  253, -251, -251, -251, -251, -251,
+     -251
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+      254,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,  254,   64,   64,   64,   64,   64,   64,   64,   64,
+
+       64
+    },
+
+    {
+       11, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253,  255, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+      255, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253
+    },
+
+    {
+       11,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   65,   64,   64,   64,   64,
+
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,  256,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  256,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+      257, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+
+     -255,  257, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255
+    },
+
+    {
+       11,   64,   64,   64,  258,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,  259,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64
+    },
+
+    {
+       11, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+
+     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257,  260, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257,  260, -257, -257, -257, -257,
+     -257
+    },
+
+    {
+       11,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  259,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261
+    },
+
+    {
+       11, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259
+
+    },
+
+    {
+       11, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260,  262, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260
+    },
+
+    {
+       11,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  259,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
+      261
+    },
+
+    {
+       11, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+
+     -262
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 32
+#define YY_END_OF_BUFFER 33
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[263] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       33,   31,   29,   29,   30,   31,   29,    2,    2,    5,
+        5,    8,    8,   11,   11,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   28,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   26,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   16,    0,    0,    0,    0,
+        0,    0,    0,    1,    0,    0,    0,    0,    0,    0,
+        0,    0,   12,    0,   25,    0,   27,    0,    0,    0,
+
+        0,    0,    0,    0,    0,   19,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   22,    0,    0,    0,   17,
+        0,    0,    0,    0,    0,    0,    0,   18,    0,    0,
+        0,    0,    3,    0,    6,    0,    9,    0,    0,    0,
+        0,    0,    0,   23,    0,    0,   20,    0,    0,    0,
+        0,   21,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   24,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       15,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   13,    0,    0,    0,    0,    0,   10,    0,    0,
+        0,    0,    0,    0,    0,    4,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   14,    0,
+        0,    7
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    4,    5,    1,    6,    7,    1,    8,    1,    1,
+        1,    1,    1,    1,    9,    1,   10,   11,   12,   12,
+       12,   12,   12,   12,   11,   11,   11,    1,   13,   14,
+        1,   15,   16,    7,   17,   18,   19,   20,   21,   22,
+       23,   24,   25,   26,   27,   28,   29,   30,   31,   32,
+       26,   33,   34,   35,   36,   37,   26,   38,   39,   26,
+        7,    7,    7,    7,    1,    1,   40,   41,   42,   43,
+
+       44,   22,   45,   46,   47,   26,   48,   49,   50,   51,
+       52,   53,   26,   54,   55,   56,   57,   58,   26,   59,
+       60,   26,    7,    1,    7,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_deshtml.cctmp"
+#line 4 "apertium_deshtml.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/${}]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+map<string, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution["À"] = L"À";
+  S1_substitution["À"] = L"À";
+  S1_substitution["&#xC0;"] = L"À";
+  S1_substitution["&#xc0;"] = L"À";
+  S1_substitution["Á"] = L"Á";
+  S1_substitution["Á"] = L"Á";
+  S1_substitution["&#xC1;"] = L"Á";
+  S1_substitution["&#xc1;"] = L"Á";
+  S1_substitution["Â"] = L"Â";
+  S1_substitution["Â"] = L"Â";
+  S1_substitution["&#xC2;"] = L"Â";
+  S1_substitution["&#xc2;"] = L"Â";
+  S1_substitution["Ã"] = L"Ã";
+  S1_substitution["Ã"] = L"Ã";
+  S1_substitution["&#xC3;"] = L"Ã";
+  S1_substitution["&#xc3;"] = L"Ã";
+  S1_substitution["Ä"] = L"Ä";
+  S1_substitution["Ä"] = L"Ä";
+  S1_substitution["&#xC4;"] = L"Ä";
+  S1_substitution["&#xc4;"] = L"Ä";
+  S1_substitution["Å"] = L"Å";
+  S1_substitution["Å"] = L"Å";
+  S1_substitution["&#xC5;"] = L"Å";
+  S1_substitution["&#xc5;"] = L"Å";
+  S1_substitution["Æ"] = L"Æ";
+  S1_substitution["Æ"] = L"Æ";
+  S1_substitution["&#xC6;"] = L"Æ";
+  S1_substitution["&#xc6;"] = L"Æ";
+  S1_substitution["Ç"] = L"Ç";
+  S1_substitution["Ç"] = L"Ç";
+  S1_substitution["&#xC7;"] = L"Ç";
+  S1_substitution["&#xc7;"] = L"Ç";
+  S1_substitution["È"] = L"È";
+  S1_substitution["È"] = L"È";
+  S1_substitution["&#xC8;"] = L"È";
+  S1_substitution["&#xc8;"] = L"È";
+  S1_substitution["É"] = L"É";
+  S1_substitution["É"] = L"É";
+  S1_substitution["&#xC9;"] = L"É";
+  S1_substitution["&#xc9;"] = L"É";
+  S1_substitution["Ê"] = L"Ê";
+  S1_substitution["Ê"] = L"Ê";
+  S1_substitution["&#xCA;"] = L"Ê";
+  S1_substitution["&#xca;"] = L"Ê";
+  S1_substitution["Ë"] = L"Ë";
+  S1_substitution["Ë"] = L"Ë";
+  S1_substitution["&#xCB;"] = L"Ë";
+  S1_substitution["&#xcb;"] = L"Ë";
+  S1_substitution["Ì"] = L"Ì";
+  S1_substitution["Ì"] = L"Ì";
+  S1_substitution["&#xCC;"] = L"Ì";
+  S1_substitution["&#xcc;"] = L"Ì";
+  S1_substitution["Í"] = L"Í";
+  S1_substitution["Í"] = L"Í";
+  S1_substitution["&#xCD;"] = L"Í";
+  S1_substitution["&#xcd;"] = L"Í";
+  S1_substitution["Î"] = L"Î";
+  S1_substitution["Î"] = L"Î";
+  S1_substitution["&#xCE;"] = L"Î";
+  S1_substitution["&#xce;"] = L"Î";
+  S1_substitution["Ï"] = L"Ï";
+  S1_substitution["Ï"] = L"Ï";
+  S1_substitution["&#xCF;"] = L"Ï";
+  S1_substitution["&#xcf;"] = L"Ï";
+  S1_substitution["Ð"] = L"Ð";
+  S1_substitution["Ð"] = L"Ð";
+  S1_substitution["&#xD0;"] = L"Ð";
+  S1_substitution["&#xd0;"] = L"Ð";
+  S1_substitution["Ñ"] = L"Ñ";
+  S1_substitution["Ñ"] = L"Ñ";
+  S1_substitution["&#xD1;"] = L"Ñ";
+  S1_substitution["&#xd1;"] = L"Ñ";
+  S1_substitution["Ò"] = L"Ò";
+  S1_substitution["Ò"] = L"Ò";
+  S1_substitution["&#xD2;"] = L"Ò";
+  S1_substitution["&#xd2;"] = L"Ò";
+  S1_substitution["Ó"] = L"Ó";
+  S1_substitution["Ó"] = L"Ó";
+  S1_substitution["&#xD3;"] = L"Ó";
+  S1_substitution["&#xd3;"] = L"Ó";
+  S1_substitution["Ô"] = L"Ô";
+  S1_substitution["Ô"] = L"Ô";
+  S1_substitution["&#xD4;"] = L"Ô";
+  S1_substitution["&#xd4;"] = L"Ô";
+  S1_substitution["Õ"] = L"Õ";
+  S1_substitution["Õ"] = L"Õ";
+  S1_substitution["&#xD5;"] = L"Õ";
+  S1_substitution["&#xd5;"] = L"Õ";
+  S1_substitution["Ö"] = L"Ö";
+  S1_substitution["Ö"] = L"Ö";
+  S1_substitution["&#xD6;"] = L"Ö";
+  S1_substitution["&#xd6;"] = L"Ö";
+  S1_substitution["Ø"] = L"Ø";
+  S1_substitution["Ø"] = L"Ø";
+  S1_substitution["&#xD8;"] = L"Ø";
+  S1_substitution["&#xd8;"] = L"Ø";
+  S1_substitution["Ù"] = L"Ù";
+  S1_substitution["Ù"] = L"Ù";
+  S1_substitution["&#xD9;"] = L"Ù";
+  S1_substitution["&#xd9;"] = L"Ù";
+  S1_substitution["Ú"] = L"Ú";
+  S1_substitution["Ú"] = L"Ú";
+  S1_substitution["&#xDA;"] = L"Ú";
+  S1_substitution["&#xda;"] = L"Ú";
+  S1_substitution["Û"] = L"Û";
+  S1_substitution["Û"] = L"Û";
+  S1_substitution["&#xDB;"] = L"Û";
+  S1_substitution["&#xdb;"] = L"Û";
+  S1_substitution["Ü"] = L"Ü";
+  S1_substitution["Ü"] = L"Ü";
+  S1_substitution["&#xDC;"] = L"Ü";
+  S1_substitution["&#xdc;"] = L"Ü";
+  S1_substitution["Ý"] = L"Ý";
+  S1_substitution["Ý"] = L"Ý";
+  S1_substitution["&#xDD;"] = L"Ý";
+  S1_substitution["&#xdd;"] = L"Ý";
+  S1_substitution["Þ"] = L"Þ";
+  S1_substitution["Þ"] = L"Þ";
+  S1_substitution["&#xDE;"] = L"Þ";
+  S1_substitution["&#xde;"] = L"Þ";
+  S1_substitution["ß"] = L"ß";
+  S1_substitution["ß"] = L"ß";
+  S1_substitution["&#xDF;"] = L"ß";
+  S1_substitution["&#xdf;"] = L"ß";
+  S1_substitution["à"] = L"à";
+  S1_substitution["à"] = L"à";
+  S1_substitution["&#xE0;"] = L"à";
+  S1_substitution["&#xe0;"] = L"à";
+  S1_substitution["á"] = L"á";
+  S1_substitution["á"] = L"á";
+  S1_substitution["&#xE1;"] = L"á";
+  S1_substitution["&#xe1;"] = L"á";
+  S1_substitution["â"] = L"â";
+  S1_substitution["â"] = L"â";
+  S1_substitution["&#xE2;"] = L"â";
+  S1_substitution["&#xe2;"] = L"â";
+  S1_substitution["ã"] = L"ã";
+  S1_substitution["ã"] = L"ã";
+  S1_substitution["&#xE3;"] = L"ã";
+  S1_substitution["&#xe3;"] = L"ã";
+  S1_substitution["ä"] = L"ä";
+  S1_substitution["ä"] = L"ä";
+  S1_substitution["&#xE4;"] = L"ä";
+  S1_substitution["&#xe4;"] = L"ä";
+  S1_substitution["å"] = L"å";
+  S1_substitution["å"] = L"å";
+  S1_substitution["&#xE5;"] = L"å";
+  S1_substitution["&#xe5;"] = L"å";
+  S1_substitution["æ"] = L"æ";
+  S1_substitution["æ"] = L"æ";
+  S1_substitution["&#xE6;"] = L"æ";
+  S1_substitution["&#xe6;"] = L"æ";
+  S1_substitution["ç"] = L"ç";
+  S1_substitution["ç"] = L"ç";
+  S1_substitution["&#xE7;"] = L"ç";
+  S1_substitution["&#xe7;"] = L"ç";
+  S1_substitution["è"] = L"è";
+  S1_substitution["è"] = L"è";
+  S1_substitution["&#xE8;"] = L"è";
+  S1_substitution["&#xe8;"] = L"è";
+  S1_substitution["é"] = L"é";
+  S1_substitution["é"] = L"é";
+  S1_substitution["&#xE9;"] = L"é";
+  S1_substitution["&#xe9;"] = L"é";
+  S1_substitution["ê"] = L"ê";
+  S1_substitution["ê"] = L"ê";
+  S1_substitution["&#xEA;"] = L"ê";
+  S1_substitution["&#xea;"] = L"ê";
+  S1_substitution["ë"] = L"ë";
+  S1_substitution["ë"] = L"ë";
+  S1_substitution["&#xEB;"] = L"ë";
+  S1_substitution["&#xeb;"] = L"ë";
+  S1_substitution["ì"] = L"ì";
+  S1_substitution["ì"] = L"ì";
+  S1_substitution["&#xEC;"] = L"ì";
+  S1_substitution["&#xec;"] = L"ì";
+  S1_substitution["í"] = L"í";
+  S1_substitution["í"] = L"í";
+  S1_substitution["&#xED;"] = L"í";
+  S1_substitution["&#xed;"] = L"í";
+  S1_substitution["î"] = L"î";
+  S1_substitution["î"] = L"î";
+  S1_substitution["&#xEE;"] = L"î";
+  S1_substitution["&#xee;"] = L"î";
+  S1_substitution["ï"] = L"ï";
+  S1_substitution["ï"] = L"ï";
+  S1_substitution["&#xEF;"] = L"ï";
+  S1_substitution["&#xef;"] = L"ï";
+  S1_substitution["ð"] = L"ð";
+  S1_substitution["ð"] = L"ð";
+  S1_substitution["&#xF0;"] = L"ð";
+  S1_substitution["&#xf0;"] = L"ð";
+  S1_substitution["ñ"] = L"ñ";
+  S1_substitution["ñ"] = L"ñ";
+  S1_substitution["&#xF1;"] = L"ñ";
+  S1_substitution["&#xf1;"] = L"ñ";
+  S1_substitution["ò"] = L"ò";
+  S1_substitution["ò"] = L"ò";
+  S1_substitution["&#xF2;"] = L"ò";
+  S1_substitution["&#xf2;"] = L"ò";
+  S1_substitution["ó"] = L"ó";
+  S1_substitution["ó"] = L"ó";
+  S1_substitution["&#xF3;"] = L"ó";
+  S1_substitution["&#xf3;"] = L"ó";
+  S1_substitution["ô"] = L"ô";
+  S1_substitution["ô"] = L"ô";
+  S1_substitution["&#xF4;"] = L"ô";
+  S1_substitution["&#xf4;"] = L"ô";
+  S1_substitution["õ"] = L"õ";
+  S1_substitution["õ"] = L"õ";
+  S1_substitution["&#xF5;"] = L"õ";
+  S1_substitution["&#xf5;"] = L"õ";
+  S1_substitution["ö"] = L"ö";
+  S1_substitution["ö"] = L"ö";
+  S1_substitution["&#xF6;"] = L"ö";
+  S1_substitution["&#xf6;"] = L"ö";
+  S1_substitution["ø"] = L"ø";
+  S1_substitution["ø"] = L"ø";
+  S1_substitution["&#xF8;"] = L"ø";
+  S1_substitution["&#xf8;"] = L"ø";
+  S1_substitution["ù"] = L"ù";
+  S1_substitution["ù"] = L"ù";
+  S1_substitution["&#xF9;"] = L"ù";
+  S1_substitution["&#xf9;"] = L"ù";
+  S1_substitution["ú"] = L"ú";
+  S1_substitution["ú"] = L"ú";
+  S1_substitution["&#xFA;"] = L"ú";
+  S1_substitution["&#xfa;"] = L"ú";
+  S1_substitution["û"] = L"û";
+  S1_substitution["û"] = L"û";
+  S1_substitution["&#xFB;"] = L"û";
+  S1_substitution["&#xfb;"] = L"û";
+  S1_substitution["ü"] = L"ü";
+  S1_substitution["ü"] = L"ü";
+  S1_substitution["&#xFC;"] = L"ü";
+  S1_substitution["&#xfc;"] = L"ü";
+  S1_substitution["ý"] = L"ý";
+  S1_substitution["ý"] = L"ý";
+  S1_substitution["&#xFD;"] = L"ý";
+  S1_substitution["&#xfd;"] = L"ý";
+  S1_substitution["þ"] = L"þ";
+  S1_substitution["þ"] = L"þ";
+  S1_substitution["&#xFE;"] = L"þ";
+  S1_substitution["&#xfe;"] = L"þ";
+  S1_substitution["ÿ"] = L"ÿ";
+  S1_substitution["ÿ"] = L"ÿ";
+  S1_substitution["&#xFF;"] = L"ÿ";
+  S1_substitution["&#xff;"] = L"ÿ";
+  S1_substitution["·"] = L"·";
+  S1_substitution["·"] = L"·";
+  S1_substitution["&#xB7;"] = L"·";
+  S1_substitution["&#xb7;"] = L"·";
+  S1_substitution["«"] = L"«";
+  S1_substitution["«"] = L"«";
+  S1_substitution["&#xAB;"] = L"«";
+  S1_substitution["&#xab;"] = L"«";
+  S1_substitution["»"] = L"»";
+  S1_substitution["»"] = L"»";
+  S1_substitution["&#xBB;"] = L"»";
+  S1_substitution["&#xbb;"] = L"»";
+  S1_substitution["’"] = L"'";
+  S1_substitution["Ĉ"] = L"Ĉ";
+  S1_substitution["ĉ"] = L"ĉ";
+  S1_substitution["Ĝ"] = L"Ĝ";
+  S1_substitution["ĝ"] = L"ĝ";
+  S1_substitution["Ĥ"] = L"Ĥ";
+  S1_substitution["ĥ"] = L"ĥ";
+  S1_substitution["Ĵ"] = L"Ĵ";
+  S1_substitution["ĵ"] = L"ĵ";
+  S1_substitution["Ŝ"] = L"Ŝ";
+  S1_substitution["ŝ"] = L"ŝ";
+  S1_substitution["Ŭ"] = L"Ŭ";
+  S1_substitution["ŭ"] = L"ŭ";
+  S1_substitution["'"] = L"'";
+  S1_substitution["'"] = L"'";
+}
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 3812 "apertium_deshtml.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+#define C4 4
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 546 "apertium_deshtml.cctmp"
+
+
+
+#line 4021 "apertium_deshtml.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 551 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 557 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 566 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 570 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 576 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 6:
+YY_RULE_SETUP
+#line 585 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 589 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 595 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 9:
+YY_RULE_SETUP
+#line 604 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 10:
+/* rule 10 can match eol */
+YY_RULE_SETUP
+#line 608 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 11:
+/* rule 11 can match eol */
+YY_RULE_SETUP
+#line 614 "apertium_deshtml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 12:
+YY_RULE_SETUP
+#line 620 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 13:
+/* rule 13 can match eol */
+YY_RULE_SETUP
+#line 624 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 14:
+/* rule 14 can match eol */
+YY_RULE_SETUP
+#line 628 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 15:
+/* rule 15 can match eol */
+YY_RULE_SETUP
+#line 632 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 16:
+/* rule 16 can match eol */
+YY_RULE_SETUP
+#line 636 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 17:
+/* rule 17 can match eol */
+YY_RULE_SETUP
+#line 640 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 18:
+/* rule 18 can match eol */
+YY_RULE_SETUP
+#line 644 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 19:
+/* rule 19 can match eol */
+YY_RULE_SETUP
+#line 648 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 652 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 21:
+/* rule 21 can match eol */
+YY_RULE_SETUP
+#line 656 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 660 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 23:
+/* rule 23 can match eol */
+YY_RULE_SETUP
+#line 664 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 24:
+/* rule 24 can match eol */
+YY_RULE_SETUP
+#line 668 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 25:
+/* rule 25 can match eol */
+YY_RULE_SETUP
+#line 671 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 674 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 27:
+/* rule 27 can match eol */
+YY_RULE_SETUP
+#line 677 "apertium_deshtml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 681 "apertium_deshtml.cctmp"
+{
+  if(S1_substitution.find(yytext) != S1_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
+    offset+=S1_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 29:
+/* rule 29 can match eol */
+YY_RULE_SETUP
+#line 695 "apertium_deshtml.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 703 "apertium_deshtml.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 723 "apertium_deshtml.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+case YY_STATE_EOF(C4):
+#line 748 "apertium_deshtml.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 755 "apertium_deshtml.cctmp"
+ECHO;
+	YY_BREAK
+#line 4410 "apertium_deshtml.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 755 "apertium_deshtml.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  S1_init();
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_deslatex.cc b/apertium/apertium_deslatex.cc
new file mode 100644
index 0000000..94838e0
--- /dev/null
+++ b/apertium/apertium_deslatex.cc
@@ -0,0 +1,67456 @@
+#line 2 "apertium_deslatex.cc"
+
+#line 4 "apertium_deslatex.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][65] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0
+    },
+
+    {
+       27,   28,   29,   30,   28,   28,   31,   32,   28,   31,
+       28,   28,   33,   29,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   29
+    },
+
+    {
+       27,   28,   29,   30,   28,   28,   31,   32,   28,   31,
+       28,   28,   33,   29,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+
+       28,   28,   28,   28,   29
+    },
+
+    {
+       27,   34,   34,   34,   34,   34,   34,   34,   35,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34
+    },
+
+    {
+       27,   34,   34,   34,   34,   34,   34,   34,   35,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34
+    },
+
+    {
+       27,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   37,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36
+    },
+
+    {
+       27,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   37,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36
+    },
+
+    {
+       27,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+
+       38,   38,   39,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38
+    },
+
+    {
+       27,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   39,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
+       38,   38,   38,   38,   38
+    },
+
+    {
+       27,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   41,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40
+
+    },
+
+    {
+       27,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   41,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40,   40,   40,   40,   40,   40,
+       40,   40,   40,   40,   40
+    },
+
+    {
+       27,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   43,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42
+    },
+
+    {
+       27,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   43,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+
+       42,   42,   42,   42,   42
+    },
+
+    {
+       27,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   45,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44
+    },
+
+    {
+       27,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   45,   44,   44,   44,   44,   44,   44,   44,
+
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       44,   44,   44,   44,   44
+    },
+
+    {
+       27,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   47,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46
+    },
+
+    {
+       27,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   47,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
+       46,   46,   46,   46,   46
+    },
+
+    {
+       27,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+
+       48,   48,   49,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48
+    },
+
+    {
+       27,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   49,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48
+    },
+
+    {
+       27,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   51,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50
+
+    },
+
+    {
+       27,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   51,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50
+    },
+
+    {
+       27,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   53,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52
+    },
+
+    {
+       27,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   53,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+
+       52,   52,   52,   52,   52
+    },
+
+    {
+       27,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   55,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54
+    },
+
+    {
+       27,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   55,   54,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54
+    },
+
+    {
+       27,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   57,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56
+    },
+
+    {
+       27,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   57,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
+       56,   56,   56,   56,   56
+    },
+
+    {
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27
+    },
+
+    {
+       27,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28
+    },
+
+    {
+       27,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29
+
+    },
+
+    {
+       27,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30
+    },
+
+    {
+       27,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31
+    },
+
+    {
+       27,  -32,  -32,  -32,  -32,   58,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,  -32,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+
+       59,   59,   59,   59,  -32
+    },
+
+    {
+       27,  -33,  -33,  -33,   60,  -33,  -33,  -33,  -33,   61,
+      -33,  -33,  -33,  -33,   62,   63,   64,   62,   65,   66,
+       62,   62,   67,   62,   62,   62,   68,   62,   62,   69,
+       62,   70,   71,   72,   62,   73,   62,   62,   62,  -33,
+       62,   63,   64,   62,   65,   66,   62,   62,   67,   62,
+       62,   68,   62,   62,   69,   62,   70,   71,   72,   62,
+       73,   62,   62,   62,  -33
+    },
+
+    {
+       27,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34
+    },
+
+    {
+       27,  -35,  -35,  -35,  -35,  -35,  -35,  -35,   74,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35
+    },
+
+    {
+       27,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36
+    },
+
+    {
+       27,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,   75,
+
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37
+    },
+
+    {
+       27,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38
+    },
+
+    {
+       27,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,   76,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39
+
+    },
+
+    {
+       27,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40
+    },
+
+    {
+       27,  -41,  -41,  -41,   77,  -41,  -41,  -41,  -41,   78,
+      -41,  -41,  -41,  -41,  -41,  -41,   79,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+
+      -41,  -41,  -41,  -41,  -41,   80,  -41,  -41,  -41,  -41,
+      -41,  -41,   79,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+       80,  -41,  -41,  -41,  -41
+    },
+
+    {
+       27,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+
+      -42,  -42,  -42,  -42,  -42
+    },
+
+    {
+       27,  -43,  -43,  -43,   81,  -43,  -43,  -43,  -43,   82,
+      -43,  -43,  -43,  -43,  -43,  -43,   83,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,   84,  -43,  -43,  -43,  -43,
+      -43,  -43,   83,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+       84,  -43,  -43,  -43,  -43
+    },
+
+    {
+       27,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44
+    },
+
+    {
+       27,  -45,  -45,  -45,   85,  -45,  -45,  -45,  -45,   86,
+      -45,  -45,  -45,  -45,  -45,   87,   88,  -45,   89,   90,
+      -45,  -45,   91,  -45,  -45,  -45,   92,  -45,  -45,   93,
+      -45,   94,   95,   96,  -45,   97,  -45,  -45,  -45,  -45,
+      -45,   87,   88,  -45,   89,   90,  -45,  -45,   91,  -45,
+
+      -45,   92,  -45,  -45,   93,  -45,   94,   95,   96,  -45,
+       97,  -45,  -45,  -45,  -45
+    },
+
+    {
+       27,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46
+    },
+
+    {
+       27,  -47,  -47,  -47,   98,  -47,  -47,  -47,  -47,   99,
+
+      -47,  -47,  -47,  -47,  -47,  100,  101,  -47,  102,  103,
+      -47,  -47,  104,  -47,  -47,  -47,  105,  -47,  -47,  106,
+      -47,  107,  108,  109,  -47,  110,  -47,  -47,  -47,  -47,
+      -47,  100,  101,  -47,  102,  103,  -47,  -47,  104,  -47,
+      -47,  105,  -47,  -47,  106,  -47,  107,  108,  109,  -47,
+      110,  -47,  -47,  -47,  -47
+    },
+
+    {
+       27,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48
+    },
+
+    {
+       27,  -49,  -49,  -49,  111,  -49,  -49,  -49,  -49,  112,
+      -49,  -49,  -49,  -49,  -49,  113,  114,  -49,  115,  116,
+      -49,  -49,  117,  -49,  -49,  -49,  118,  -49,  -49,  119,
+      -49,  120,  121,  122,  -49,  123,  -49,  -49,  -49,  -49,
+      -49,  113,  114,  -49,  115,  116,  -49,  -49,  117,  -49,
+      -49,  118,  -49,  -49,  119,  -49,  120,  121,  122,  -49,
+      123,  -49,  -49,  -49,  -49
+
+    },
+
+    {
+       27,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50
+    },
+
+    {
+       27,  -51,  -51,  -51,  124,  -51,  -51,  -51,  -51,  125,
+      -51,  -51,  -51,  -51,  -51,  126,  127,  -51,  128,  129,
+      -51,  -51,  130,  -51,  -51,  -51,  131,  -51,  -51,  132,
+
+      -51,  133,  134,  135,  -51,  136,  -51,  -51,  -51,  -51,
+      -51,  126,  127,  -51,  128,  129,  -51,  -51,  130,  -51,
+      -51,  131,  -51,  -51,  132,  -51,  133,  134,  135,  -51,
+      136,  -51,  -51,  -51,  -51
+    },
+
+    {
+       27,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+
+      -52,  -52,  -52,  -52,  -52
+    },
+
+    {
+       27,  -53,  -53,  -53,  137,  -53,  -53,  -53,  -53,  138,
+      -53,  -53,  -53,  -53,  -53,  139,  140,  -53,  141,  142,
+      -53,  -53,  143,  -53,  -53,  -53,  144,  -53,  -53,  145,
+      -53,  146,  147,  148,  -53,  149,  -53,  -53,  -53,  -53,
+      -53,  139,  140,  -53,  141,  142,  -53,  -53,  143,  -53,
+      -53,  144,  -53,  -53,  145,  -53,  146,  147,  148,  -53,
+      149,  -53,  -53,  -53,  -53
+    },
+
+    {
+       27,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54
+    },
+
+    {
+       27,  -55,  -55,  -55,  150,  -55,  -55,  -55,  -55,  151,
+      -55,  -55,  -55,  -55,  -55,  152,  153,  -55,  154,  155,
+      -55,  -55,  156,  -55,  -55,  -55,  157,  -55,  -55,  158,
+      -55,  159,  160,  161,  -55,  162,  -55,  -55,  -55,  -55,
+      -55,  152,  153,  -55,  154,  155,  -55,  -55,  156,  -55,
+
+      -55,  157,  -55,  -55,  158,  -55,  159,  160,  161,  -55,
+      162,  -55,  -55,  -55,  -55
+    },
+
+    {
+       27,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56
+    },
+
+    {
+       27,  -57,  -57,  -57,  163,  -57,  -57,  -57,  -57,  164,
+
+      -57,  -57,  -57,  -57,  -57,  165,  166,  -57,  167,  168,
+      -57,  -57,  169,  -57,  -57,  -57,  170,  -57,  -57,  171,
+      -57,  172,  173,  174,  -57,  175,  -57,  -57,  -57,  -57,
+      -57,  165,  166,  -57,  167,  168,  -57,  -57,  169,  -57,
+      -57,  170,  -57,  -57,  171,  -57,  172,  173,  174,  -57,
+      175,  -57,  -57,  -57,  -57
+    },
+
+    {
+       27,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      176,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  177,  -58,  -58,  -58,
+
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  177,  -58,  -58,  -58
+    },
+
+    {
+       27,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  178,  -59,  -59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,  -59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,  -59
+
+    },
+
+    {
+       27,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  179,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60
+    },
+
+    {
+       27,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  180,  180,  181,  180,  180,  180,
+      180,  180,  182,  180,  180,  180,  180,  180,  180,  183,
+
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  -61,
+      180,  180,  181,  180,  180,  180,  180,  180,  182,  180,
+      180,  180,  180,  180,  183,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  -61
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  186,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      186,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  187,  184,  184,  184,  184,  184,
+
+      184,  188,  189,  184,  184,  184,  184,  184,  190,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      187,  184,  184,  184,  184,  184,  184,  188,  189,  184,
+      184,  184,  184,  190,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  191,  184,  184,  184,
+      192,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  191,  184,  184,  184,  192,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  193,  184,
+      184,  194,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  193,  184,  184,  194,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  195,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  195,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  196,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  197,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      196,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      197,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  198,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      198,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  199,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  199,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  200,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  201,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  200,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  201,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  202,  184,
+      184,  203,  204,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  202,  184,  184,  203,  204,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  205,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  205,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  206,  -74,  -74,  -74,  -74,  -74,  -74,
+
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74
+    },
+
+    {
+       27,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  207,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  207,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75
+    },
+
+    {
+       27,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  208,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      208,  -76,  -76,  -76,  -76
+    },
+
+    {
+       27,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  209,  -77,
+
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77
+    },
+
+    {
+       27,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  210,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+
+      -78,  -78,  210,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78
+    },
+
+    {
+       27,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  211,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  211,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79
+
+    },
+
+    {
+       27,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  212,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  212,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80
+    },
+
+    {
+       27,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  213,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81
+    },
+
+    {
+       27,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  214,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  214,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+
+      -82,  -82,  -82,  -82,  -82
+    },
+
+    {
+       27,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  215,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  215,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83
+    },
+
+    {
+       27,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  216,  -84,
+
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  216,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84
+    },
+
+    {
+       27,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  217,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85
+    },
+
+    {
+       27,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  218,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  218,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86
+    },
+
+    {
+       27,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  219,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      219,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87
+    },
+
+    {
+       27,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  220,  -88,  -88,  -88,  -88,  -88,
+      -88,  221,  222,  -88,  -88,  -88,  -88,  -88,  223,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+
+      220,  -88,  -88,  -88,  -88,  -88,  -88,  221,  222,  -88,
+      -88,  -88,  -88,  223,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88
+    },
+
+    {
+       27,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  224,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  224,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89
+
+    },
+
+    {
+       27,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  225,  -90,
+      -90,  226,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  225,  -90,  -90,  226,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90
+    },
+
+    {
+       27,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+
+      -91,  -91,  -91,  227,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  227,  -91,
+      -91,  -91,  -91,  -91,  -91
+    },
+
+    {
+       27,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  228,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      228,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+
+      -92,  -92,  -92,  -92,  -92
+    },
+
+    {
+       27,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  229,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      229,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93
+    },
+
+    {
+       27,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  230,  -94,
+
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  230,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94
+    },
+
+    {
+       27,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  231,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  232,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  231,  -95,  -95,  -95,  -95,  -95,
+
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  232,
+      -95,  -95,  -95,  -95,  -95
+    },
+
+    {
+       27,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  233,  -96,
+      -96,  234,  235,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  233,  -96,  -96,  234,  235,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96
+    },
+
+    {
+       27,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  236,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  236,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97
+    },
+
+    {
+       27,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  237,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98
+    },
+
+    {
+       27,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  238,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  239,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  238,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  239,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99
+
+    },
+
+    {
+       27, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100,  240, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+      240, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100
+    },
+
+    {
+       27, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101,  241, -101, -101, -101, -101, -101,
+     -101,  242,  243, -101, -101, -101, -101, -101,  244, -101,
+
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+      241, -101, -101, -101, -101, -101, -101,  242,  243, -101,
+     -101, -101, -101,  244, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101
+    },
+
+    {
+       27, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102,  245, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102,  245, -102, -102, -102, -102, -102, -102, -102, -102,
+
+     -102, -102, -102, -102, -102
+    },
+
+    {
+       27, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103,  246, -103,
+     -103,  247, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103,  246, -103, -103,  247, -103, -103, -103,
+     -103, -103, -103, -103, -103
+    },
+
+    {
+       27, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104,  248, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104,  248, -104,
+     -104, -104, -104, -104, -104
+    },
+
+    {
+       27, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105,  249, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+
+      249, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105
+    },
+
+    {
+       27, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106,  250, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+      250, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106
+    },
+
+    {
+       27, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+
+     -107, -107, -107, -107, -107, -107, -107, -107,  251, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107,  251, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107
+    },
+
+    {
+       27, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108,  252, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108,  253, -108, -108, -108, -108, -108,
+
+     -108, -108, -108, -108,  252, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108,  253,
+     -108, -108, -108, -108, -108
+    },
+
+    {
+       27, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109,  254, -109,
+     -109,  255,  256, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109,  254, -109, -109,  255,  256, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109
+
+    },
+
+    {
+       27, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110,  257, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110,  257, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110
+    },
+
+    {
+       27, -111, -111, -111, -111, -111, -111, -111,  258, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111
+    },
+
+    {
+       27, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112,  259, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112,  260, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112,  259, -112, -112, -112, -112, -112, -112, -112,
+     -112,  260, -112, -112, -112, -112, -112, -112, -112, -112,
+
+     -112, -112, -112, -112, -112
+    },
+
+    {
+       27, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113,  261, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+      261, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113
+    },
+
+    {
+       27, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114,  262, -114, -114, -114, -114, -114,
+
+     -114,  263,  264, -114, -114, -114, -114, -114,  265, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+      262, -114, -114, -114, -114, -114, -114,  263,  264, -114,
+     -114, -114, -114,  265, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114
+    },
+
+    {
+       27, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115,  266, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+
+     -115,  266, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115
+    },
+
+    {
+       27, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116,  267, -116,
+     -116,  268, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116,  267, -116, -116,  268, -116, -116, -116,
+     -116, -116, -116, -116, -116
+    },
+
+    {
+       27, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117,  269, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117,  269, -117,
+     -117, -117, -117, -117, -117
+    },
+
+    {
+       27, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118,  270, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+      270, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118
+    },
+
+    {
+       27, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119,  271, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+      271, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119
+
+    },
+
+    {
+       27, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120,  272, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120,  272, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120
+    },
+
+    {
+       27, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121,  273, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+
+     -121, -121, -121, -121,  274, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121,  273, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121,  274,
+     -121, -121, -121, -121, -121
+    },
+
+    {
+       27, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122,  275, -122,
+     -122,  276,  277, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122,  275, -122, -122,  276,  277, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+
+     -122, -122, -122, -122, -122
+    },
+
+    {
+       27, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123,  278, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123,  278, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123
+    },
+
+    {
+       27, -124, -124, -124, -124, -124, -124, -124,  279, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124
+    },
+
+    {
+       27, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125,  280, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125,  281, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125,  280, -125, -125, -125, -125, -125, -125, -125,
+
+     -125,  281, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125
+    },
+
+    {
+       27, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126,  282, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+      282, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126
+    },
+
+    {
+       27, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+
+     -127, -127, -127, -127,  283, -127, -127, -127, -127, -127,
+     -127,  284,  285, -127, -127, -127, -127, -127,  286, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+      283, -127, -127, -127, -127, -127, -127,  284,  285, -127,
+     -127, -127, -127,  286, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127
+    },
+
+    {
+       27, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128,  287, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128,  287, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128
+    },
+
+    {
+       27, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129,  288, -129,
+     -129,  289, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129,  288, -129, -129,  289, -129, -129, -129,
+     -129, -129, -129, -129, -129
+
+    },
+
+    {
+       27, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130,  290, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130,  290, -130,
+     -130, -130, -130, -130, -130
+    },
+
+    {
+       27, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131,  291, -131, -131, -131, -131,
+
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+      291, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131
+    },
+
+    {
+       27, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132,  292, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+      292, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+
+     -132, -132, -132, -132, -132
+    },
+
+    {
+       27, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133,  293, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133,  293, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133
+    },
+
+    {
+       27, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134,  294, -134,
+
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134,  295, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134,  294, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134,  295,
+     -134, -134, -134, -134, -134
+    },
+
+    {
+       27, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135,  296, -135,
+     -135,  297,  298, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135,  296, -135, -135,  297,  298, -135,
+
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135
+    },
+
+    {
+       27, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136,  299, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136,  299, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136
+    },
+
+    {
+       27, -137, -137, -137, -137, -137, -137, -137,  300, -137,
+
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137
+    },
+
+    {
+       27, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138,  301, -138,  302, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+
+     -138, -138,  301, -138,  302, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138
+    },
+
+    {
+       27, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139,  303, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+      303, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139
+
+    },
+
+    {
+       27, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140,  304, -140, -140, -140, -140, -140,
+     -140,  305,  306, -140, -140, -140, -140, -140,  307, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+      304, -140, -140, -140, -140, -140, -140,  305,  306, -140,
+     -140, -140, -140,  307, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140
+    },
+
+    {
+       27, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141,  308, -141, -141, -141,
+
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141,  308, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141
+    },
+
+    {
+       27, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142,  309, -142,
+     -142,  310, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142,  309, -142, -142,  310, -142, -142, -142,
+
+     -142, -142, -142, -142, -142
+    },
+
+    {
+       27, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143,  311, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143,  311, -143,
+     -143, -143, -143, -143, -143
+    },
+
+    {
+       27, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+
+     -144, -144, -144, -144, -144,  312, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+      312, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144
+    },
+
+    {
+       27, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145,  313, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+      313, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145
+    },
+
+    {
+       27, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146,  314, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146,  314, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146
+    },
+
+    {
+       27, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+
+     -147, -147, -147, -147, -147, -147, -147, -147,  315, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147,  316, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147,  315, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147,  316,
+     -147, -147, -147, -147, -147
+    },
+
+    {
+       27, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148,  317, -148,
+     -148,  318,  319, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+
+     -148, -148, -148, -148,  317, -148, -148,  318,  319, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148
+    },
+
+    {
+       27, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149,  320, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149,  320, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149
+
+    },
+
+    {
+       27, -150, -150, -150, -150, -150, -150, -150,  321, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150
+    },
+
+    {
+       27, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151,  322, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+
+     -151, -151, -151,  323, -151, -151, -151, -151, -151, -151,
+     -151, -151,  322, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151,  323, -151,
+     -151, -151, -151, -151, -151
+    },
+
+    {
+       27, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152,  324, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+      324, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+
+     -152, -152, -152, -152, -152
+    },
+
+    {
+       27, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153,  325, -153, -153, -153, -153, -153,
+     -153,  326,  327, -153, -153, -153, -153, -153,  328, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+      325, -153, -153, -153, -153, -153, -153,  326,  327, -153,
+     -153, -153, -153,  328, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153
+    },
+
+    {
+       27, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+
+     -154, -154, -154, -154, -154, -154,  329, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154,  329, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154
+    },
+
+    {
+       27, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155,  330, -155,
+     -155,  331, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+
+     -155, -155, -155,  330, -155, -155,  331, -155, -155, -155,
+     -155, -155, -155, -155, -155
+    },
+
+    {
+       27, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156,  332, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156,  332, -156,
+     -156, -156, -156, -156, -156
+    },
+
+    {
+       27, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157,  333, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+      333, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157
+    },
+
+    {
+       27, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158,  334, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+
+      334, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158
+    },
+
+    {
+       27, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159,  335, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159,  335, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159
+
+    },
+
+    {
+       27, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160,  336, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160,  337, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160,  336, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160,  337,
+     -160, -160, -160, -160, -160
+    },
+
+    {
+       27, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161,  338, -161,
+     -161,  339,  340, -161, -161, -161, -161, -161, -161, -161,
+
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161,  338, -161, -161,  339,  340, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161
+    },
+
+    {
+       27, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162,  341, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162,  341, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+
+     -162, -162, -162, -162, -162
+    },
+
+    {
+       27, -163, -163, -163, -163, -163, -163, -163,  342, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163
+    },
+
+    {
+       27, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164,  343, -164,  344, -164,
+
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164,  343, -164,  344, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164
+    },
+
+    {
+       27, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165,  345, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+
+      345, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165
+    },
+
+    {
+       27, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166,  346, -166, -166, -166, -166, -166,
+     -166,  347,  348, -166, -166, -166, -166, -166,  349, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+      346, -166, -166, -166, -166, -166, -166,  347,  348, -166,
+     -166, -166, -166,  349, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166
+    },
+
+    {
+       27, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167,  350, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167,  350, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167
+    },
+
+    {
+       27, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168,  351, -168,
+     -168,  352, -168, -168, -168, -168, -168, -168, -168, -168,
+
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168,  351, -168, -168,  352, -168, -168, -168,
+     -168, -168, -168, -168, -168
+    },
+
+    {
+       27, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169,  353, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169,  353, -169,
+     -169, -169, -169, -169, -169
+
+    },
+
+    {
+       27, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170,  354, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+      354, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170
+    },
+
+    {
+       27, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171,  355, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+      355, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171
+    },
+
+    {
+       27, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172,  356, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172,  356, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+
+     -172, -172, -172, -172, -172
+    },
+
+    {
+       27, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173,  357, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173,  358, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173,  357, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173,  358,
+     -173, -173, -173, -173, -173
+    },
+
+    {
+       27, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174,  359, -174,
+
+     -174,  360,  361, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174,  359, -174, -174,  360,  361, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174
+    },
+
+    {
+       27, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175,  362, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175,  362, -175, -175, -175, -175, -175,
+
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175
+    },
+
+    {
+       27, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+      363,  178, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176
+    },
+
+    {
+       27, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+
+      364, -177, -177, -177,  364,  364,  364,  364,  364,  364,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+      364,  364,  364,  364,  364,  364, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177
+    },
+
+    {
+       27, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178
+    },
+
+    {
+       27, -179, -179, -179, -179, -179, -179, -179,  365, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179
+
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  368,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  368,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  369,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  369,  366,
+
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  370,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      370,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  371,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  371,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  372,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  372,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  373,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      373,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  374,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  374,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  375,  376,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  375,  376,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  377,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  377,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  378,  184,  184,
+      184,  184,  184,  184,  379,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  378,  184,  184,  184,  184,  184,  184,  379,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  380,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  380,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  381,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      381,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  382,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  382,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  383,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  383,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  384,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  384,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  385,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  385,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  386,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  386,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  387,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  387,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  388,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  388,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  389,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  389,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  390,  184,  184,  184,  391,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      390,  184,  184,  184,  391,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  392,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  392,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  393,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  393,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206
+    },
+
+    {
+       27, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207,  394, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207,  394, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207
+    },
+
+    {
+       27, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208,  395, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+
+     -208, -208, -208, -208,  395, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208
+    },
+
+    {
+       27, -209, -209, -209, -209, -209, -209, -209,  396, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209
+
+    },
+
+    {
+       27, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210,  397, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210,  397, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210
+    },
+
+    {
+       27, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211,  398, -211, -211, -211,
+
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211,  398, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211
+    },
+
+    {
+       27, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212,  399, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212,  399, -212, -212, -212,
+
+     -212, -212, -212, -212, -212
+    },
+
+    {
+       27, -213, -213, -213, -213, -213, -213, -213,  400, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213
+    },
+
+    {
+       27, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+
+     -214, -214, -214, -214, -214, -214, -214, -214,  401, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214,  401, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214
+    },
+
+    {
+       27, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215,  402, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+
+     -215,  402, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215
+    },
+
+    {
+       27, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216,  403, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216,  403, -216, -216, -216,
+     -216, -216, -216, -216, -216
+    },
+
+    {
+       27, -217, -217, -217, -217, -217, -217, -217,  404, -217,
+
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217
+    },
+
+    {
+       27, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218,  405, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218,  405, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218
+    },
+
+    {
+       27, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219,  406, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219,  406, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219
+
+    },
+
+    {
+       27, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220,  407,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220,  407, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220
+    },
+
+    {
+       27, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221,  408, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+      408, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221
+    },
+
+    {
+       27, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222,  409, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222,  409, -222,
+
+     -222, -222, -222, -222, -222
+    },
+
+    {
+       27, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223,  410, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223,  410, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223
+    },
+
+    {
+       27, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+
+     -224, -224, -224, -224, -224, -224, -224, -224, -224,  411,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224,  411, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224
+    },
+
+    {
+       27, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225,  412, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+
+     -225, -225, -225,  412, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225
+    },
+
+    {
+       27, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226,  413, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+      413, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226
+    },
+
+    {
+       27, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+
+     -227, -227, -227, -227, -227, -227, -227, -227,  414, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227,  414, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227
+    },
+
+    {
+       27, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228,  415, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+
+     -228, -228, -228, -228, -228, -228, -228, -228,  415, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228
+    },
+
+    {
+       27, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229,  416, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229,  416, -229, -229, -229,
+     -229, -229, -229, -229, -229
+
+    },
+
+    {
+       27, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230,  417,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230,  417, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230
+    },
+
+    {
+       27, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231,  418, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231,  418, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231
+    },
+
+    {
+       27, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232,  419, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232,  419, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+
+     -232, -232, -232, -232, -232
+    },
+
+    {
+       27, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233, -233,  420, -233, -233, -233,
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233,  420, -233, -233, -233
+    },
+
+    {
+       27, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234,  421, -234, -234, -234, -234, -234,
+
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+      421, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234
+    },
+
+    {
+       27, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235,  422, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+
+     -235, -235, -235, -235, -235, -235, -235, -235,  422, -235,
+     -235, -235, -235, -235, -235
+    },
+
+    {
+       27, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236,  423, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236,  423, -236, -236, -236,
+     -236, -236, -236, -236, -236
+    },
+
+    {
+       27, -237, -237, -237, -237, -237, -237, -237,  424, -237,
+
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237, -237
+    },
+
+    {
+       27, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+     -238, -238, -238, -238, -238, -238, -238, -238,  425, -238,
+     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+
+     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+     -238, -238, -238,  425, -238, -238, -238, -238, -238, -238,
+     -238, -238, -238, -238, -238
+    },
+
+    {
+       27, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239,  426, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+      426, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239
+
+    },
+
+    {
+       27, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240,  427, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240,  427, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240
+    },
+
+    {
+       27, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241, -241, -241, -241, -241, -241,  428,
+
+     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241,  428, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241, -241
+    },
+
+    {
+       27, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242,  429, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+      429, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+
+     -242, -242, -242, -242, -242
+    },
+
+    {
+       27, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243,  430, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243,  430, -243,
+     -243, -243, -243, -243, -243
+    },
+
+    {
+       27, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+
+     -244, -244, -244, -244, -244, -244,  431, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244,  431, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244
+    },
+
+    {
+       27, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245,  432,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+
+     -245, -245, -245, -245,  432, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245
+    },
+
+    {
+       27, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246,  433, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246,  433, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246
+    },
+
+    {
+       27, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+
+     -247, -247, -247, -247,  434, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+      434, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247
+    },
+
+    {
+       27, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248,  435, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+
+     -248, -248, -248, -248,  435, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248
+    },
+
+    {
+       27, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249,  436, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249,  436, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249
+
+    },
+
+    {
+       27, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250,  437, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250,  437, -250, -250, -250,
+     -250, -250, -250, -250, -250
+    },
+
+    {
+       27, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251,  438,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251,  438, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251
+    },
+
+    {
+       27, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252,  439, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252,  439, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+
+     -252, -252, -252, -252, -252
+    },
+
+    {
+       27, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253,  440, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253,  440, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253
+    },
+
+    {
+       27, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254,  441, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254, -254, -254, -254, -254, -254, -254, -254, -254, -254,
+     -254,  441, -254, -254, -254
+    },
+
+    {
+       27, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255,  442, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+      442, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+
+     -255, -255, -255, -255, -255, -255, -255, -255, -255, -255,
+     -255, -255, -255, -255, -255
+    },
+
+    {
+       27, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256,  443, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256,  443, -256,
+     -256, -256, -256, -256, -256
+    },
+
+    {
+       27, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+
+     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257,  444, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257, -257, -257, -257, -257,
+     -257, -257, -257, -257, -257, -257,  444, -257, -257, -257,
+     -257, -257, -257, -257, -257
+    },
+
+    {
+       27, -258, -258, -258, -258, -258, -258, -258,  445, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258, -258, -258, -258, -258, -258,
+     -258, -258, -258, -258, -258
+    },
+
+    {
+       27, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259,  446, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259,  446, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259
+
+    },
+
+    {
+       27, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260,  447, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+      447, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260
+    },
+
+    {
+       27, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261, -261,  448, -261,
+
+     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261,  448, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261
+    },
+
+    {
+       27, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262,  449,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262, -262, -262, -262, -262, -262, -262,
+     -262, -262, -262, -262,  449, -262, -262, -262, -262, -262,
+
+     -262, -262, -262, -262, -262
+    },
+
+    {
+       27, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263,  450, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+      450, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263
+    },
+
+    {
+       27, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264,  451, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264,  451, -264,
+     -264, -264, -264, -264, -264
+    },
+
+    {
+       27, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265,  452, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+
+     -265,  452, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265
+    },
+
+    {
+       27, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266,  453,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266,  453, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266
+    },
+
+    {
+       27, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267,  454, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267,  454, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267
+    },
+
+    {
+       27, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268,  455, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+
+      455, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268
+    },
+
+    {
+       27, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269,  456, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269,  456, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269
+
+    },
+
+    {
+       27, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270,  457, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270,  457, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270
+    },
+
+    {
+       27, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+
+     -271,  458, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271,  458, -271, -271, -271,
+     -271, -271, -271, -271, -271
+    },
+
+    {
+       27, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272,  459,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272,  459, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+
+     -272, -272, -272, -272, -272
+    },
+
+    {
+       27, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273,  460, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273,  460, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273
+    },
+
+    {
+       27, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274,  461, -274, -274, -274, -274,
+
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274,  461, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274
+    },
+
+    {
+       27, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275,  462, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275,  462, -275, -275, -275
+    },
+
+    {
+       27, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276,  463, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+      463, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276
+    },
+
+    {
+       27, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277,  464, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277,  464, -277,
+     -277, -277, -277, -277, -277
+    },
+
+    {
+       27, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278,  465, -278, -278, -278, -278, -278, -278, -278, -278,
+
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278,  465, -278, -278, -278,
+     -278, -278, -278, -278, -278
+    },
+
+    {
+       27, -279, -279, -279, -279, -279, -279, -279,  466, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279
+
+    },
+
+    {
+       27, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280,  467, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280,  467, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280
+    },
+
+    {
+       27, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281,  468, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+      468, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281
+    },
+
+    {
+       27, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282,  469, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282,  469, -282, -282, -282, -282, -282, -282,
+
+     -282, -282, -282, -282, -282
+    },
+
+    {
+       27, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283,  470,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283,  470, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283
+    },
+
+    {
+       27, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284,  471, -284, -284, -284, -284, -284,
+
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+      471, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284
+    },
+
+    {
+       27, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285,  472, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+
+     -285, -285, -285, -285, -285, -285, -285, -285,  472, -285,
+     -285, -285, -285, -285, -285
+    },
+
+    {
+       27, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286,  473, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286,  473, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286
+    },
+
+    {
+       27, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287,  474,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287,  474, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287
+    },
+
+    {
+       27, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288,  475, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288,  475, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288
+    },
+
+    {
+       27, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289,  476, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+      476, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289
+
+    },
+
+    {
+       27, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290,  477, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290,  477, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290
+    },
+
+    {
+       27, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291,  478, -291, -291, -291, -291, -291, -291, -291,
+
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291,  478, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291
+    },
+
+    {
+       27, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292,  479, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292,  479, -292, -292, -292,
+
+     -292, -292, -292, -292, -292
+    },
+
+    {
+       27, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293,  480,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293,  480, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293
+    },
+
+    {
+       27, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294,  481, -294, -294, -294,
+
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294,  481, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294
+    },
+
+    {
+       27, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295,  482, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295,  482, -295, -295, -295, -295, -295, -295, -295, -295,
+
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295
+    },
+
+    {
+       27, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296,  483, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296,  483, -296, -296, -296
+    },
+
+    {
+       27, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+
+     -297, -297, -297, -297,  484, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+      484, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297
+    },
+
+    {
+       27, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+     -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+     -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+     -298, -298, -298,  485, -298, -298, -298, -298, -298, -298,
+
+     -298, -298, -298, -298, -298, -298, -298, -298, -298, -298,
+     -298, -298, -298, -298, -298, -298, -298, -298,  485, -298,
+     -298, -298, -298, -298, -298
+    },
+
+    {
+       27, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299,  486, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299,  486, -299, -299, -299,
+     -299, -299, -299, -299, -299
+
+    },
+
+    {
+       27, -300, -300, -300, -300, -300, -300, -300,  487, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300
+    },
+
+    {
+       27, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301,  488, -301,
+
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301,  488, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301
+    },
+
+    {
+       27, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+      489, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302,  489, -302, -302, -302, -302,
+
+     -302, -302, -302, -302, -302
+    },
+
+    {
+       27, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303,  490, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303,  490, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303
+    },
+
+    {
+       27, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+
+     -304, -304, -304, -304, -304, -304, -304, -304, -304,  491,
+     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304,  491, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304
+    },
+
+    {
+       27, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305,  492, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+      492, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305
+    },
+
+    {
+       27, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306,  493, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306,  493, -306,
+     -306, -306, -306, -306, -306
+    },
+
+    {
+       27, -307, -307, -307, -307, -307, -307, -307, -307, -307,
+
+     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
+     -307, -307, -307, -307, -307, -307,  494, -307, -307, -307,
+     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
+     -307, -307, -307, -307, -307, -307, -307, -307, -307, -307,
+     -307,  494, -307, -307, -307, -307, -307, -307, -307, -307,
+     -307, -307, -307, -307, -307
+    },
+
+    {
+       27, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308,  495,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308,  495, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308
+    },
+
+    {
+       27, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309,  496, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309,  496, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309
+
+    },
+
+    {
+       27, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310,  497, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+      497, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310
+    },
+
+    {
+       27, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311,  498, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311,  498, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311, -311, -311, -311, -311, -311,
+     -311, -311, -311, -311, -311
+    },
+
+    {
+       27, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312,  499, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312,  499, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+
+     -312, -312, -312, -312, -312
+    },
+
+    {
+       27, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313,  500, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313,  500, -313, -313, -313,
+     -313, -313, -313, -313, -313
+    },
+
+    {
+       27, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314,  501,
+
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314,  501, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314
+    },
+
+    {
+       27, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315,  502, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315,  502, -315, -315, -315, -315, -315, -315, -315,
+
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315
+    },
+
+    {
+       27, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316,  503, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316,  503, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316
+    },
+
+    {
+       27, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317,  504, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317,  504, -317, -317, -317
+    },
+
+    {
+       27, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318,  505, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+
+      505, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318
+    },
+
+    {
+       27, -319, -319, -319, -319, -319, -319, -319, -319, -319,
+     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
+     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
+     -319, -319, -319,  506, -319, -319, -319, -319, -319, -319,
+     -319, -319, -319, -319, -319, -319, -319, -319, -319, -319,
+     -319, -319, -319, -319, -319, -319, -319, -319,  506, -319,
+     -319, -319, -319, -319, -319
+
+    },
+
+    {
+       27, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320,  507, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320, -320, -320, -320,  507, -320, -320, -320,
+     -320, -320, -320, -320, -320
+    },
+
+    {
+       27, -321, -321, -321, -321, -321, -321, -321,  508, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+     -321, -321, -321, -321, -321
+    },
+
+    {
+       27, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322,  509, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322,  509, -322, -322, -322, -322, -322, -322,
+
+     -322, -322, -322, -322, -322
+    },
+
+    {
+       27, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323,  510, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323,  510, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323
+    },
+
+    {
+       27, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+
+     -324, -324, -324, -324, -324, -324, -324, -324,  511, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324,  511, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324
+    },
+
+    {
+       27, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325,  512,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+
+     -325, -325, -325, -325,  512, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325
+    },
+
+    {
+       27, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326,  513, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+      513, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326
+    },
+
+    {
+       27, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+
+     -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327,  514, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327,  514, -327,
+     -327, -327, -327, -327, -327
+    },
+
+    {
+       27, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328,  515, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328,  515, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328
+    },
+
+    {
+       27, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329,  516,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329,  516, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329
+
+    },
+
+    {
+       27, -330, -330, -330, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330, -330, -330, -330, -330, -330,  517, -330,
+     -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330,  517, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330, -330, -330
+    },
+
+    {
+       27, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+     -331, -331, -331, -331,  518, -331, -331, -331, -331, -331,
+     -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+
+     -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+      518, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+     -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+     -331, -331, -331, -331, -331
+    },
+
+    {
+       27, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332,  519, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332,  519, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+
+     -332, -332, -332, -332, -332
+    },
+
+    {
+       27, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333,  520, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333, -333, -333, -333,  520, -333,
+     -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333
+    },
+
+    {
+       27, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334,  521, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334,  521, -334, -334, -334,
+     -334, -334, -334, -334, -334
+    },
+
+    {
+       27, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335, -335, -335, -335, -335, -335, -335,  522,
+     -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335, -335, -335,  522, -335, -335, -335, -335,
+
+     -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335, -335, -335
+    },
+
+    {
+       27, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336, -336,  523, -336, -336, -336,
+     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336,  523, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336
+    },
+
+    {
+       27, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+
+     -337, -337, -337, -337, -337,  524, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337,  524, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337
+    },
+
+    {
+       27, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338,  525, -338, -338, -338,
+
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338,  525, -338, -338, -338
+    },
+
+    {
+       27, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339,  526, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+      526, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339
+
+    },
+
+    {
+       27, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340,  527, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340,  527, -340,
+     -340, -340, -340, -340, -340
+    },
+
+    {
+       27, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+
+     -341,  528, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341,  528, -341, -341, -341,
+     -341, -341, -341, -341, -341
+    },
+
+    {
+       27, -342, -342, -342, -342, -342, -342, -342,  529, -342,
+     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
+     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
+     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
+     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
+     -342, -342, -342, -342, -342, -342, -342, -342, -342, -342,
+
+     -342, -342, -342, -342, -342
+    },
+
+    {
+       27, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343,  530, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343,  530, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343
+    },
+
+    {
+       27, -344, -344, -344, -344, -344, -344, -344, -344, -344,
+     -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
+
+     -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
+      531, -344, -344, -344, -344, -344, -344, -344, -344, -344,
+     -344, -344, -344, -344, -344, -344, -344, -344, -344, -344,
+     -344, -344, -344, -344, -344,  531, -344, -344, -344, -344,
+     -344, -344, -344, -344, -344
+    },
+
+    {
+       27, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345, -345, -345, -345, -345, -345,  532, -345,
+     -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+
+     -345, -345, -345,  532, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345, -345, -345
+    },
+
+    {
+       27, -346, -346, -346, -346, -346, -346, -346, -346, -346,
+     -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
+     -346, -346, -346, -346, -346, -346, -346, -346, -346,  533,
+     -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
+     -346, -346, -346, -346, -346, -346, -346, -346, -346, -346,
+     -346, -346, -346, -346,  533, -346, -346, -346, -346, -346,
+     -346, -346, -346, -346, -346
+    },
+
+    {
+       27, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+
+     -347, -347, -347, -347,  534, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+      534, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347
+    },
+
+    {
+       27, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348,  535, -348, -348, -348, -348, -348, -348,
+
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348,  535, -348,
+     -348, -348, -348, -348, -348
+    },
+
+    {
+       27, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349,  536, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349,  536, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349
+
+    },
+
+    {
+       27, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350,  537,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350,  537, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350
+    },
+
+    {
+       27, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351, -351, -351,  538, -351,
+
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351,  538, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351
+    },
+
+    {
+       27, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352,  539, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+      539, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+
+     -352, -352, -352, -352, -352
+    },
+
+    {
+       27, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353,  540, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353,  540, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353
+    },
+
+    {
+       27, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+
+     -354, -354,  541, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354,  541, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354
+    },
+
+    {
+       27, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355,  542, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+
+     -355, -355, -355, -355, -355, -355,  542, -355, -355, -355,
+     -355, -355, -355, -355, -355
+    },
+
+    {
+       27, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356,  543,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356,  543, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356
+    },
+
+    {
+       27, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+
+     -357, -357, -357, -357, -357, -357,  544, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357,  544, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357
+    },
+
+    {
+       27, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358,  545, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+
+     -358,  545, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358
+    },
+
+    {
+       27, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359,  546, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359,  546, -359, -359, -359
+
+    },
+
+    {
+       27, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360,  547, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+      547, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360
+    },
+
+    {
+       27, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+
+     -361, -361, -361,  548, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361,  548, -361,
+     -361, -361, -361, -361, -361
+    },
+
+    {
+       27, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362,  549, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362,  549, -362, -362, -362,
+
+     -362, -362, -362, -362, -362
+    },
+
+    {
+       27, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+      550,  178, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363
+    },
+
+    {
+       27, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+      551,  178, -364, -364,  551,  551,  551,  551,  551,  551,
+
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+      551,  551,  551,  551,  551,  551, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364
+    },
+
+    {
+       27, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  552,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  552,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  553,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  553,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  554,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  554,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  555,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  555,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  556,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  556,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  557,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  557,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  558,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  558,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  559,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  559,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  560,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  560,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  561,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  561,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  562,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      562,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  563,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      563,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  564,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  564,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  565,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  565,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  566,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  566,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  567,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  567,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  568,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  568,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  569,  570,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  571,  184,  184,  184,  184,  184,  184,
+      569,  570,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  571,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  572,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  573,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  574,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  574,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  575,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  575,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  576,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  576,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  577,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  577,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  578,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  578,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  579,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      579,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  580,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  580,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27, -394, -394, -394, -394, -394, -394, -394, -394, -394,
+     -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
+
+     -394, -394, -394, -394, -394, -394,  581, -394, -394, -394,
+     -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
+     -394, -394, -394, -394, -394, -394, -394, -394, -394, -394,
+     -394,  581, -394, -394, -394, -394, -394, -394, -394, -394,
+     -394, -394, -394, -394, -394
+    },
+
+    {
+       27, -395, -395, -395, -395, -395, -395, -395, -395, -395,
+     -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
+     -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
+     -395,  582, -395, -395, -395, -395, -395, -395, -395, -395,
+     -395, -395, -395, -395, -395, -395, -395, -395, -395, -395,
+
+     -395, -395, -395, -395, -395, -395,  582, -395, -395, -395,
+     -395, -395, -395, -395, -395
+    },
+
+    {
+       27, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396, -396, -396, -396, -396, -396,
+     -396, -396, -396, -396, -396
+    },
+
+    {
+       27, -397, -397, -397, -397, -397, -397, -397, -397, -397,
+
+     -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
+     -397, -397, -397, -397, -397, -397, -397,  583, -397, -397,
+     -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
+     -397, -397, -397, -397, -397, -397, -397, -397, -397, -397,
+     -397, -397,  583, -397, -397, -397, -397, -397, -397, -397,
+     -397, -397, -397, -397, -397
+    },
+
+    {
+       27, -398, -398, -398, -398, -398, -398, -398, -398, -398,
+     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
+     -398, -398, -398, -398, -398, -398,  584, -398, -398, -398,
+     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
+
+     -398, -398, -398, -398, -398, -398, -398, -398, -398, -398,
+     -398,  584, -398, -398, -398, -398, -398, -398, -398, -398,
+     -398, -398, -398, -398, -398
+    },
+
+    {
+       27, -399, -399, -399, -399, -399, -399, -399, -399, -399,
+     -399, -399, -399, -399, -399,  585, -399, -399, -399, -399,
+     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
+     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
+     -399,  585, -399, -399, -399, -399, -399, -399, -399, -399,
+     -399, -399, -399, -399, -399, -399, -399, -399, -399, -399,
+     -399, -399, -399, -399, -399
+
+    },
+
+    {
+       27, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+     -400, -400, -400, -400, -400
+    },
+
+    {
+       27, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401, -401, -401, -401, -401, -401,  586, -401, -401,
+
+     -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401, -401, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401,  586, -401, -401, -401, -401, -401, -401, -401,
+     -401, -401, -401, -401, -401
+    },
+
+    {
+       27, -402, -402, -402, -402, -402, -402, -402, -402, -402,
+     -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
+     -402, -402, -402, -402, -402, -402,  587, -402, -402, -402,
+     -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
+     -402, -402, -402, -402, -402, -402, -402, -402, -402, -402,
+     -402,  587, -402, -402, -402, -402, -402, -402, -402, -402,
+
+     -402, -402, -402, -402, -402
+    },
+
+    {
+       27, -403, -403, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403, -403, -403, -403,  588, -403, -403, -403, -403,
+     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
+     -403,  588, -403, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403, -403, -403, -403, -403, -403, -403, -403, -403,
+     -403, -403, -403, -403, -403
+    },
+
+    {
+       27, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404
+    },
+
+    {
+       27, -405, -405, -405, -405, -405, -405, -405, -405, -405,
+     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
+     -405, -405, -405, -405, -405, -405, -405,  589, -405, -405,
+     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
+     -405, -405, -405, -405, -405, -405, -405, -405, -405, -405,
+
+     -405, -405,  589, -405, -405, -405, -405, -405, -405, -405,
+     -405, -405, -405, -405, -405
+    },
+
+    {
+       27, -406, -406, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406, -406, -406, -406, -406,  590, -406, -406, -406,
+     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406,  590, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
+     -406, -406, -406, -406, -406
+    },
+
+    {
+       27, -407, -407, -407, -407, -407, -407, -407, -407, -407,
+
+     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
+     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
+     -407, -407, -407,  591, -407, -407, -407, -407, -407, -407,
+     -407, -407, -407, -407, -407, -407, -407, -407, -407, -407,
+     -407, -407, -407, -407, -407, -407, -407, -407,  591, -407,
+     -407, -407, -407, -407, -407
+    },
+
+    {
+       27, -408, -408, -408, -408, -408, -408, -408, -408, -408,
+     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
+     -408, -408, -408, -408, -408, -408, -408, -408, -408,  592,
+     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
+
+     -408, -408, -408, -408, -408, -408, -408, -408, -408, -408,
+     -408, -408, -408, -408,  592, -408, -408, -408, -408, -408,
+     -408, -408, -408, -408, -408
+    },
+
+    {
+       27, -409, -409, -409, -409, -409, -409, -409, -409, -409,
+     -409, -409, -409, -409, -409, -409, -409, -409,  593, -409,
+     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
+     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
+     -409, -409, -409, -409,  593, -409, -409, -409, -409, -409,
+     -409, -409, -409, -409, -409, -409, -409, -409, -409, -409,
+     -409, -409, -409, -409, -409
+
+    },
+
+    {
+       27, -410, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410, -410, -410, -410, -410,  594, -410, -410, -410,
+     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410,  594, -410, -410, -410, -410, -410, -410, -410, -410,
+     -410, -410, -410, -410, -410
+    },
+
+    {
+       27, -411, -411, -411, -411, -411, -411, -411, -411, -411,
+     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
+     -411,  595, -411, -411, -411, -411, -411, -411, -411, -411,
+
+     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
+     -411, -411, -411, -411, -411, -411, -411,  595, -411, -411,
+     -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
+     -411, -411, -411, -411, -411
+    },
+
+    {
+       27, -412, -412, -412, -412, -412, -412, -412, -412, -412,
+     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
+     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
+     -412, -412, -412,  596, -412, -412, -412, -412, -412, -412,
+     -412, -412, -412, -412, -412, -412, -412, -412, -412, -412,
+     -412, -412, -412, -412, -412, -412, -412, -412,  596, -412,
+
+     -412, -412, -412, -412, -412
+    },
+
+    {
+       27, -413, -413, -413, -413, -413, -413, -413, -413, -413,
+     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
+     -413, -413, -413, -413, -413, -413,  597, -413, -413, -413,
+     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
+     -413, -413, -413, -413, -413, -413, -413, -413, -413, -413,
+     -413,  597, -413, -413, -413, -413, -413, -413, -413, -413,
+     -413, -413, -413, -413, -413
+    },
+
+    {
+       27, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+
+     -414, -414, -414, -414, -414, -414,  598, -414, -414, -414,
+     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+     -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+     -414,  598, -414, -414, -414, -414, -414, -414, -414, -414,
+     -414, -414, -414, -414, -414
+    },
+
+    {
+       27, -415, -415, -415, -415, -415, -415, -415, -415, -415,
+     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
+     -415, -415, -415, -415, -415, -415, -415,  599, -415, -415,
+     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
+     -415, -415, -415, -415, -415, -415, -415, -415, -415, -415,
+
+     -415, -415,  599, -415, -415, -415, -415, -415, -415, -415,
+     -415, -415, -415, -415, -415
+    },
+
+    {
+       27, -416, -416, -416, -416, -416, -416, -416, -416, -416,
+     -416, -416, -416, -416,  600,  601, -416, -416, -416, -416,
+     -416, -416, -416, -416, -416, -416, -416, -416, -416, -416,
+     -416, -416, -416,  602, -416, -416, -416, -416, -416, -416,
+      600,  601, -416, -416, -416, -416, -416, -416, -416, -416,
+     -416, -416, -416, -416, -416, -416, -416, -416,  602, -416,
+     -416, -416, -416, -416, -416
+    },
+
+    {
+       27, -417, -417, -417, -417, -417, -417, -417, -417,  603,
+
+     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
+     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
+     -417, -417, -417, -417, -417, -417, -417, -417, -417,  604,
+     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
+     -417, -417, -417, -417, -417, -417, -417, -417, -417, -417,
+     -417, -417, -417, -417, -417
+    },
+
+    {
+       27, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+     -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+     -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+     -418, -418, -418,  605, -418, -418, -418, -418, -418, -418,
+
+     -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
+     -418, -418, -418, -418, -418, -418, -418, -418,  605, -418,
+     -418, -418, -418, -418, -418
+    },
+
+    {
+       27, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419,  606, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419,  606, -419, -419,
+     -419, -419, -419, -419, -419
+
+    },
+
+    {
+       27, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420,  607, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420, -420,  607, -420,
+     -420, -420, -420, -420, -420
+    },
+
+    {
+       27, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421, -421, -421,  608, -421, -421,
+
+     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421,  608, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421
+    },
+
+    {
+       27, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422,  609, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+      609, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+
+     -422, -422, -422, -422, -422
+    },
+
+    {
+       27, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423,  610, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423,  610, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423
+    },
+
+    {
+       27, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424
+    },
+
+    {
+       27, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425,  611, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+
+     -425, -425,  611, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425
+    },
+
+    {
+       27, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426,  612, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426,  612, -426, -426, -426,
+     -426, -426, -426, -426, -426
+    },
+
+    {
+       27, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+
+     -427, -427, -427, -427, -427, -427,  613, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427,  613, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427
+    },
+
+    {
+       27, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428,  614, -428, -428, -428, -428, -428, -428,
+
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428,  614, -428,
+     -428, -428, -428, -428, -428
+    },
+
+    {
+       27, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429,  615,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429,  615, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429
+
+    },
+
+    {
+       27, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430, -430, -430, -430,  616, -430,
+     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430,  616, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430
+    },
+
+    {
+       27, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431, -431,  617, -431, -431, -431,
+
+     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431,  617, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431
+    },
+
+    {
+       27, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432,  618, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432,  618, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+
+     -432, -432, -432, -432, -432
+    },
+
+    {
+       27, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433,  619, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433,  619, -433,
+     -433, -433, -433, -433, -433
+    },
+
+    {
+       27, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+
+     -434, -434, -434, -434, -434, -434,  620, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434,  620, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434
+    },
+
+    {
+       27, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435,  621, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+
+     -435,  621, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435
+    },
+
+    {
+       27, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436,  622, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436,  622, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436
+    },
+
+    {
+       27, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+
+     -437, -437, -437, -437,  623,  624, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437,  625, -437, -437, -437, -437, -437, -437,
+      623,  624, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437,  625, -437,
+     -437, -437, -437, -437, -437
+    },
+
+    {
+       27, -438, -438, -438, -438, -438, -438, -438, -438,  626,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438,  627,
+
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438
+    },
+
+    {
+       27, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439,  628, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439,  628, -439,
+     -439, -439, -439, -439, -439
+
+    },
+
+    {
+       27, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440,  629, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440,  629, -440, -440,
+     -440, -440, -440, -440, -440
+    },
+
+    {
+       27, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+
+     -441, -441, -441,  630, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441,  630, -441,
+     -441, -441, -441, -441, -441
+    },
+
+    {
+       27, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442,  631, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442,  631, -442, -442, -442, -442, -442, -442, -442,
+
+     -442, -442, -442, -442, -442
+    },
+
+    {
+       27, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443,  632, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+      632, -443, -443, -443, -443, -443, -443, -443, -443, -443,
+     -443, -443, -443, -443, -443
+    },
+
+    {
+       27, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444,  633, -444, -444, -444, -444,
+
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444,  633, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444, -444, -444, -444, -444, -444,
+     -444, -444, -444, -444, -444
+    },
+
+    {
+       27, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445
+    },
+
+    {
+       27, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446,  634, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446,  634, -446, -446, -446, -446, -446, -446, -446,
+     -446, -446, -446, -446, -446
+    },
+
+    {
+       27, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447,  635, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
+     -447, -447, -447, -447, -447, -447, -447, -447,  635, -447,
+     -447, -447, -447, -447, -447
+    },
+
+    {
+       27, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448,  636, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+
+     -448, -448,  636, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448, -448, -448, -448, -448, -448,
+     -448, -448, -448, -448, -448
+    },
+
+    {
+       27, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449,  637, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
+     -449, -449, -449, -449, -449, -449, -449, -449,  637, -449,
+     -449, -449, -449, -449, -449
+
+    },
+
+    {
+       27, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450,  638,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450,  638, -450, -450, -450, -450, -450,
+     -450, -450, -450, -450, -450
+    },
+
+    {
+       27, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451,  639, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451,  639, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451, -451, -451, -451, -451, -451,
+     -451, -451, -451, -451, -451
+    },
+
+    {
+       27, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452,  640, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452, -452, -452, -452, -452, -452, -452, -452, -452, -452,
+     -452,  640, -452, -452, -452, -452, -452, -452, -452, -452,
+
+     -452, -452, -452, -452, -452
+    },
+
+    {
+       27, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453,  641, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453,  641, -453, -453,
+     -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+     -453, -453, -453, -453, -453
+    },
+
+    {
+       27, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454,  642, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454, -454, -454,
+     -454, -454, -454, -454, -454, -454, -454, -454,  642, -454,
+     -454, -454, -454, -454, -454
+    },
+
+    {
+       27, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455,  643, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455, -455, -455, -455, -455, -455,
+
+     -455,  643, -455, -455, -455, -455, -455, -455, -455, -455,
+     -455, -455, -455, -455, -455
+    },
+
+    {
+       27, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456,  644, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456,  644, -456, -456, -456, -456, -456, -456, -456, -456,
+     -456, -456, -456, -456, -456
+    },
+
+    {
+       27, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457,  645, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457,  645, -457, -457, -457, -457, -457, -457, -457,
+     -457, -457, -457, -457, -457
+    },
+
+    {
+       27, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458,  646,  647, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458,  648, -458, -458, -458, -458, -458, -458,
+
+      646,  647, -458, -458, -458, -458, -458, -458, -458, -458,
+     -458, -458, -458, -458, -458, -458, -458, -458,  648, -458,
+     -458, -458, -458, -458, -458
+    },
+
+    {
+       27, -459, -459, -459, -459, -459, -459, -459, -459,  649,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459,  650,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459, -459, -459, -459, -459, -459,
+     -459, -459, -459, -459, -459
+
+    },
+
+    {
+       27, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460,  651, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460, -460, -460,
+     -460, -460, -460, -460, -460, -460, -460, -460,  651, -460,
+     -460, -460, -460, -460, -460
+    },
+
+    {
+       27, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+
+     -461, -461,  652, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461, -461, -461, -461,
+     -461, -461, -461, -461, -461, -461, -461,  652, -461, -461,
+     -461, -461, -461, -461, -461
+    },
+
+    {
+       27, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462,  653, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462, -462, -462,
+     -462, -462, -462, -462, -462, -462, -462, -462,  653, -462,
+
+     -462, -462, -462, -462, -462
+    },
+
+    {
+       27, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463,  654, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463,  654, -463, -463, -463, -463, -463, -463, -463,
+     -463, -463, -463, -463, -463
+    },
+
+    {
+       27, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+
+     -464, -464, -464, -464, -464,  655, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+      655, -464, -464, -464, -464, -464, -464, -464, -464, -464,
+     -464, -464, -464, -464, -464
+    },
+
+    {
+       27, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465,  656, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465,  656, -465, -465, -465, -465, -465, -465, -465, -465,
+
+     -465, -465, -465, -465, -465, -465, -465, -465, -465, -465,
+     -465, -465, -465, -465, -465
+    },
+
+    {
+       27, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466, -466, -466, -466, -466, -466,
+     -466, -466, -466, -466, -466
+    },
+
+    {
+       27, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467,  657, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467,  657, -467, -467, -467, -467, -467, -467, -467,
+     -467, -467, -467, -467, -467
+    },
+
+    {
+       27, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468,  658, -468, -468, -468, -468, -468, -468,
+
+     -468, -468, -468, -468, -468, -468, -468, -468, -468, -468,
+     -468, -468, -468, -468, -468, -468, -468, -468,  658, -468,
+     -468, -468, -468, -468, -468
+    },
+
+    {
+       27, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469,  659, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469,  659, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469, -469, -469, -469, -469, -469,
+     -469, -469, -469, -469, -469
+
+    },
+
+    {
+       27, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470,  660, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470, -470, -470,
+     -470, -470, -470, -470, -470, -470, -470, -470,  660, -470,
+     -470, -470, -470, -470, -470
+    },
+
+    {
+       27, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471,  661,
+
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471,  661, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471
+    },
+
+    {
+       27, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472,  662, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472,  662, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+
+     -472, -472, -472, -472, -472
+    },
+
+    {
+       27, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473,  663, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473,  663, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473
+    },
+
+    {
+       27, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+
+     -474,  664, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474,  664, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474
+    },
+
+    {
+       27, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475,  665, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+
+     -475, -475, -475, -475, -475, -475, -475, -475,  665, -475,
+     -475, -475, -475, -475, -475
+    },
+
+    {
+       27, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476,  666, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476,  666, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476
+    },
+
+    {
+       27, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477,  667, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477,  667, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477
+    },
+
+    {
+       27, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478,  668, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478,  668, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478
+    },
+
+    {
+       27, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479,  669,  670, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479,  671, -479, -479, -479, -479, -479, -479,
+      669,  670, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479,  671, -479,
+     -479, -479, -479, -479, -479
+
+    },
+
+    {
+       27, -480, -480, -480, -480, -480, -480, -480, -480,  672,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480,  673,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480
+    },
+
+    {
+       27, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+
+     -481, -481, -481,  674, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481,  674, -481,
+     -481, -481, -481, -481, -481
+    },
+
+    {
+       27, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482,  675, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482,  675, -482, -482,
+
+     -482, -482, -482, -482, -482
+    },
+
+    {
+       27, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483,  676, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483,  676, -483,
+     -483, -483, -483, -483, -483
+    },
+
+    {
+       27, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+
+     -484, -484, -484, -484, -484, -484, -484,  677, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484,  677, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484
+    },
+
+    {
+       27, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485,  678, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+
+      678, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485
+    },
+
+    {
+       27, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486,  679, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486,  679, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486
+    },
+
+    {
+       27, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487
+    },
+
+    {
+       27, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488,  680, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488,  680, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488
+    },
+
+    {
+       27, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489,  681, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489,  681,
+     -489, -489, -489, -489, -489
+
+    },
+
+    {
+       27, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490,  682, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490,  682, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490
+    },
+
+    {
+       27, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+
+     -491, -491, -491,  683, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491,  683, -491,
+     -491, -491, -491, -491, -491
+    },
+
+    {
+       27, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492,  684,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492,  684, -492, -492, -492, -492, -492,
+
+     -492, -492, -492, -492, -492
+    },
+
+    {
+       27, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493,  685, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493,  685, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493
+    },
+
+    {
+       27, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+
+     -494, -494, -494, -494, -494, -494,  686, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494,  686, -494, -494, -494, -494, -494, -494, -494, -494,
+     -494, -494, -494, -494, -494
+    },
+
+    {
+       27, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495,  687, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495,  687, -495, -495,
+
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495
+    },
+
+    {
+       27, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496,  688, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496,  688, -496,
+     -496, -496, -496, -496, -496
+    },
+
+    {
+       27, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497,  689, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497,  689, -497, -497, -497, -497, -497, -497, -497, -497,
+     -497, -497, -497, -497, -497
+    },
+
+    {
+       27, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498,  690, -498, -498, -498,
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+
+     -498, -498, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498,  690, -498, -498, -498, -498, -498, -498, -498, -498,
+     -498, -498, -498, -498, -498
+    },
+
+    {
+       27, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499,  691, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499,  691, -499, -499, -499, -499, -499, -499, -499,
+     -499, -499, -499, -499, -499
+
+    },
+
+    {
+       27, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500,  692,  693, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500,  694, -500, -500, -500, -500, -500, -500,
+      692,  693, -500, -500, -500, -500, -500, -500, -500, -500,
+     -500, -500, -500, -500, -500, -500, -500, -500,  694, -500,
+     -500, -500, -500, -500, -500
+    },
+
+    {
+       27, -501, -501, -501, -501, -501, -501, -501, -501,  695,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+
+     -501, -501, -501, -501, -501, -501, -501, -501, -501,  696,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501, -501, -501, -501, -501, -501,
+     -501, -501, -501, -501, -501
+    },
+
+    {
+       27, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502,  697, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502, -502, -502,
+     -502, -502, -502, -502, -502, -502, -502, -502,  697, -502,
+
+     -502, -502, -502, -502, -502
+    },
+
+    {
+       27, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503,  698, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+     -503, -503, -503, -503, -503, -503, -503,  698, -503, -503,
+     -503, -503, -503, -503, -503
+    },
+
+    {
+       27, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504,  699, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504, -504, -504,
+     -504, -504, -504, -504, -504, -504, -504, -504,  699, -504,
+     -504, -504, -504, -504, -504
+    },
+
+    {
+       27, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505,  700, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505, -505, -505, -505, -505, -505,
+
+     -505, -505,  700, -505, -505, -505, -505, -505, -505, -505,
+     -505, -505, -505, -505, -505
+    },
+
+    {
+       27, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506,  701, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+      701, -506, -506, -506, -506, -506, -506, -506, -506, -506,
+     -506, -506, -506, -506, -506
+    },
+
+    {
+       27, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+
+     -507, -507, -507, -507, -507,  702, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507,  702, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507, -507, -507, -507, -507, -507,
+     -507, -507, -507, -507, -507
+    },
+
+    {
+       27, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508
+    },
+
+    {
+       27, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509,  703, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509,  703, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509
+
+    },
+
+    {
+       27, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510,  704, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510,  704, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510, -510, -510, -510, -510, -510,
+     -510, -510, -510, -510, -510
+    },
+
+    {
+       27, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511,  705, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511,  705, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511
+    },
+
+    {
+       27, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512,  706, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512,  706, -512,
+
+     -512, -512, -512, -512, -512
+    },
+
+    {
+       27, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513,  707,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513,  707, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513
+    },
+
+    {
+       27, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514,  708, -514,
+
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514,  708, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514
+    },
+
+    {
+       27, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515,  709, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+
+     -515,  709, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515
+    },
+
+    {
+       27, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516,  710, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516,  710, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516
+    },
+
+    {
+       27, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517,  711, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517,  711, -517,
+     -517, -517, -517, -517, -517
+    },
+
+    {
+       27, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518,  712, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518,  712, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518
+    },
+
+    {
+       27, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519,  713, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519,  713, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519
+
+    },
+
+    {
+       27, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520,  714, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520,  714, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520
+    },
+
+    {
+       27, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521,  715,  716, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+
+     -521, -521, -521,  717, -521, -521, -521, -521, -521, -521,
+      715,  716, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521,  717, -521,
+     -521, -521, -521, -521, -521
+    },
+
+    {
+       27, -522, -522, -522, -522, -522, -522, -522, -522,  718,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522,  719,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+
+     -522, -522, -522, -522, -522
+    },
+
+    {
+       27, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523,  720, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523,  720, -523,
+     -523, -523, -523, -523, -523
+    },
+
+    {
+       27, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524,  721, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524,  721, -524, -524,
+     -524, -524, -524, -524, -524
+    },
+
+    {
+       27, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525,  722, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+
+     -525, -525, -525, -525, -525, -525, -525, -525,  722, -525,
+     -525, -525, -525, -525, -525
+    },
+
+    {
+       27, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526,  723, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526,  723, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526
+    },
+
+    {
+       27, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527,  724, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+      724, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527
+    },
+
+    {
+       27, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528,  725, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+
+     -528,  725, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528
+    },
+
+    {
+       27, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529
+
+    },
+
+    {
+       27, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530,  726, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530,  726, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530
+    },
+
+    {
+       27, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531,  727, -531, -531,
+
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531,  727, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531
+    },
+
+    {
+       27, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532,  728, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532,  728, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+
+     -532, -532, -532, -532, -532
+    },
+
+    {
+       27, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533,  729, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533, -533, -533,
+     -533, -533, -533, -533, -533, -533, -533, -533,  729, -533,
+     -533, -533, -533, -533, -533
+    },
+
+    {
+       27, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+
+     -534, -534, -534, -534, -534, -534, -534, -534, -534,  730,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534,  730, -534, -534, -534, -534, -534,
+     -534, -534, -534, -534, -534
+    },
+
+    {
+       27, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535,  731, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535,  731, -535, -535, -535, -535, -535,
+
+     -535, -535, -535, -535, -535, -535, -535, -535, -535, -535,
+     -535, -535, -535, -535, -535
+    },
+
+    {
+       27, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536,  732, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536,  732, -536, -536, -536, -536, -536, -536, -536, -536,
+     -536, -536, -536, -536, -536
+    },
+
+    {
+       27, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537,  733, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537,  733, -537, -537,
+     -537, -537, -537, -537, -537, -537, -537, -537, -537, -537,
+     -537, -537, -537, -537, -537
+    },
+
+    {
+       27, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538,  734, -538, -538, -538, -538, -538, -538,
+
+     -538, -538, -538, -538, -538, -538, -538, -538, -538, -538,
+     -538, -538, -538, -538, -538, -538, -538, -538,  734, -538,
+     -538, -538, -538, -538, -538
+    },
+
+    {
+       27, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539,  735, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539,  735, -539, -539, -539, -539, -539, -539, -539, -539,
+     -539, -539, -539, -539, -539
+
+    },
+
+    {
+       27, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540,  736, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540,  736, -540, -540, -540, -540, -540, -540, -540, -540,
+     -540, -540, -540, -540, -540
+    },
+
+    {
+       27, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541,  737, -541, -541,
+
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541,  737, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541
+    },
+
+    {
+       27, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542,  738,  739, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542,  740, -542, -542, -542, -542, -542, -542,
+      738,  739, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542,  740, -542,
+
+     -542, -542, -542, -542, -542
+    },
+
+    {
+       27, -543, -543, -543, -543, -543, -543, -543, -543,  741,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543,  742,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543
+    },
+
+    {
+       27, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544,  743, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544, -544, -544,
+     -544, -544, -544, -544, -544, -544, -544, -544,  743, -544,
+     -544, -544, -544, -544, -544
+    },
+
+    {
+       27, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545,  744, -545, -545, -545, -545, -545, -545, -545,
+     -545, -545, -545, -545, -545, -545, -545, -545, -545, -545,
+
+     -545, -545, -545, -545, -545, -545, -545,  744, -545, -545,
+     -545, -545, -545, -545, -545
+    },
+
+    {
+       27, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546,  745, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546,  745, -546,
+     -546, -546, -546, -546, -546
+    },
+
+    {
+       27, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547,  746, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547,  746, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547
+    },
+
+    {
+       27, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548,  747, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+      747, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548
+    },
+
+    {
+       27, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549,  748, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549,  748, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549
+
+    },
+
+    {
+       27, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+      749,  178, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550
+    },
+
+    {
+       27, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+      750,  178, -551, -551,  750,  750,  750,  750,  750,  750,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+      750,  750,  750,  750,  750,  750, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  751,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  751,  366,
+
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  752,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  752,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  753,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      753,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  754,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  754,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  755,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  755,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  756,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  756,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  757,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  758,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  759,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  759,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  760,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  760,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  761,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  762,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  763,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  763,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  764,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  764,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  765,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  765,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  766,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  766,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  767,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  768,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  769,
+      184,  184,  184,  184,  184,  184,  184,  184,  768,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  770,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  771,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  771,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      772,  184,  184,  184,  184,  184,  773,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  772,  184,  184,  184,
+      184,  773,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  774,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  774,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  775,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  776,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  777,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  778,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  778,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  779,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  779,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  780,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  781,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  780,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  781,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  782,  184,  184,  184,  184,
+      184,  184,  783,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  782,  184,  184,  184,  184,  184,  184,  783,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  784,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  784,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  785,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  785,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  786,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  786,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  787,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581,  788, -581, -581, -581,
+
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581,  788, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581
+    },
+
+    {
+       27, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582,  789, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582,  789, -582, -582, -582, -582, -582, -582, -582, -582,
+     -582, -582, -582, -582, -582, -582, -582, -582, -582, -582,
+
+     -582, -582, -582, -582, -582
+    },
+
+    {
+       27, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583,  790, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583, -583, -583,
+     -583, -583, -583, -583, -583, -583, -583, -583,  790, -583,
+     -583, -583, -583, -583, -583
+    },
+
+    {
+       27, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584,  791, -584,
+
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584,  791, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584
+    },
+
+    {
+       27, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585,  792, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585
+    },
+
+    {
+       27, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586,  793, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586,  793, -586,
+     -586, -586, -586, -586, -586
+    },
+
+    {
+       27, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+
+     -587, -587, -587, -587, -587, -587, -587, -587,  794, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587,  794, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587
+    },
+
+    {
+       27, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588,  795, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588
+    },
+
+    {
+       27, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589,  796, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589,  796, -589,
+     -589, -589, -589, -589, -589
+
+    },
+
+    {
+       27, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590,  797, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590,  797,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590
+    },
+
+    {
+       27, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591,  798, -591, -591, -591, -591, -591, -591, -591,
+
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591,  798, -591,
+     -591, -591, -591, -591, -591, -591, -591, -591, -591, -591,
+     -591, -591, -591, -591, -591
+    },
+
+    {
+       27, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592,  799, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592, -592, -592,
+     -592, -592, -592, -592, -592, -592, -592, -592,  799, -592,
+
+     -592, -592, -592, -592, -592
+    },
+
+    {
+       27, -593, -593, -593, -593, -593, -593, -593, -593,  800,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593,  801,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593
+    },
+
+    {
+       27, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594,  802, -594,
+
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594,  802, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594
+    },
+
+    {
+       27, -595, -595, -595, -595, -595, -595, -595, -595,  803,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595,  804,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595
+    },
+
+    {
+       27, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596,  805, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596,  805, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596
+    },
+
+    {
+       27, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+
+     -597, -597, -597, -597, -597, -597, -597, -597,  806, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597,  806, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597
+    },
+
+    {
+       27, -598, -598, -598, -598, -598, -598, -598, -598,  807,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598,  808,
+
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598
+    },
+
+    {
+       27, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599,  809, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599,  809, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599
+
+    },
+
+    {
+       27, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+      810, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600,  810, -600, -600, -600,
+     -600, -600, -600, -600, -600, -600, -600, -600, -600, -600,
+     -600, -600, -600, -600, -600
+    },
+
+    {
+       27, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601,  811, -601,
+
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601,  811, -601, -601, -601, -601, -601, -601,
+     -601, -601, -601, -601, -601
+    },
+
+    {
+       27, -602, -602, -602, -602, -602, -602, -602, -602,  812,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602,  813,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+
+     -602, -602, -602, -602, -602
+    },
+
+    {
+       27, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603,  814, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603
+    },
+
+    {
+       27, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604,  815, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604,  815, -604, -604,
+     -604, -604, -604, -604, -604
+    },
+
+    {
+       27, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605,  816, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605,  816, -605,
+
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605
+    },
+
+    {
+       27, -606, -606, -606, -606, -606, -606, -606, -606, -606,
+     -606, -606, -606, -606, -606, -606, -606, -606,  817, -606,
+     -606, -606, -606, -606, -606, -606, -606, -606, -606, -606,
+     -606, -606, -606, -606,  818, -606, -606, -606, -606, -606,
+     -606, -606, -606, -606,  817, -606, -606, -606, -606, -606,
+     -606, -606, -606, -606, -606, -606, -606, -606, -606,  818,
+     -606, -606, -606, -606, -606
+    },
+
+    {
+       27, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+
+     -607, -607, -607, -607, -607,  819, -607, -607, -607, -607,
+     -607, -607,  820, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607,  819, -607, -607, -607, -607, -607, -607,  820, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607
+    },
+
+    {
+       27, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608,  821, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+
+     -608, -608, -608, -608, -608, -608, -608, -608, -608,  821,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608
+    },
+
+    {
+       27, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609,  822, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609,  822, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609
+
+    },
+
+    {
+       27, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610,  823, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610
+    },
+
+    {
+       27, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+
+     -611, -611, -611,  824, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+     -611, -611, -611, -611, -611, -611, -611, -611,  824, -611,
+     -611, -611, -611, -611, -611
+    },
+
+    {
+       27, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612,  825, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+      825, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+
+     -612, -612, -612, -612, -612
+    },
+
+    {
+       27, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613,  826, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613,  826,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613
+    },
+
+    {
+       27, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+
+     -614, -614,  827, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614,  827, -614,
+     -614, -614, -614, -614, -614, -614, -614, -614, -614, -614,
+     -614, -614, -614, -614, -614
+    },
+
+    {
+       27, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615,  828, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+
+     -615, -615, -615, -615, -615, -615, -615, -615,  828, -615,
+     -615, -615, -615, -615, -615
+    },
+
+    {
+       27, -616, -616, -616, -616, -616, -616, -616, -616,  829,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616,  830,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616, -616, -616, -616, -616, -616,
+     -616, -616, -616, -616, -616
+    },
+
+    {
+       27, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+
+     -617, -617, -617, -617, -617, -617, -617, -617,  831, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617,  831, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617
+    },
+
+    {
+       27, -618, -618, -618, -618, -618, -618, -618, -618,  832,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618,  833,
+
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618, -618, -618, -618, -618, -618,
+     -618, -618, -618, -618, -618
+    },
+
+    {
+       27, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619,  834, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619,  834, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619
+
+    },
+
+    {
+       27, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620,  835, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620,  835, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620, -620, -620, -620, -620, -620,
+     -620, -620, -620, -620, -620
+    },
+
+    {
+       27, -621, -621, -621, -621, -621, -621, -621, -621,  836,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+
+     -621, -621, -621, -621, -621, -621, -621, -621, -621,  837,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621
+    },
+
+    {
+       27, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622,  838, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622,  838, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+
+     -622, -622, -622, -622, -622
+    },
+
+    {
+       27, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+      839, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623,  839, -623, -623, -623,
+     -623, -623, -623, -623, -623, -623, -623, -623, -623, -623,
+     -623, -623, -623, -623, -623
+    },
+
+    {
+       27, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+
+     -624, -624, -624, -624, -624, -624, -624, -624,  840, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624,  840, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624
+    },
+
+    {
+       27, -625, -625, -625, -625, -625, -625, -625, -625,  841,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625,  842,
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+
+     -625, -625, -625, -625, -625, -625, -625, -625, -625, -625,
+     -625, -625, -625, -625, -625
+    },
+
+    {
+       27, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626,  843, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626, -626, -626, -626, -626, -626,
+     -626, -626, -626, -626, -626
+    },
+
+    {
+       27, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627,  844, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627, -627, -627, -627,
+     -627, -627, -627, -627, -627, -627, -627,  844, -627, -627,
+     -627, -627, -627, -627, -627
+    },
+
+    {
+       27, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628,  845, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+
+     -628, -628, -628, -628, -628, -628, -628, -628,  845, -628,
+     -628, -628, -628, -628, -628, -628, -628, -628, -628, -628,
+     -628, -628, -628, -628, -628
+    },
+
+    {
+       27, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629,  846, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629,  847, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629,  846, -629, -629, -629, -629, -629,
+     -629, -629, -629, -629, -629, -629, -629, -629, -629,  847,
+     -629, -629, -629, -629, -629
+
+    },
+
+    {
+       27, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630,  848, -630, -630, -630, -630,
+     -630, -630,  849, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630,  848, -630, -630, -630, -630, -630, -630,  849, -630,
+     -630, -630, -630, -630, -630, -630, -630, -630, -630, -630,
+     -630, -630, -630, -630, -630
+    },
+
+    {
+       27, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631,  850, -631, -631, -631, -631, -631,
+
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631,  850,
+     -631, -631, -631, -631, -631, -631, -631, -631, -631, -631,
+     -631, -631, -631, -631, -631
+    },
+
+    {
+       27, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632,  851, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632,  851, -632, -632, -632, -632, -632,
+     -632, -632, -632, -632, -632, -632, -632, -632, -632, -632,
+
+     -632, -632, -632, -632, -632
+    },
+
+    {
+       27, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633,  852, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
+     -633, -633, -633, -633, -633
+    },
+
+    {
+       27, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634,  853, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634, -634, -634,
+     -634, -634, -634, -634, -634, -634, -634, -634,  853, -634,
+     -634, -634, -634, -634, -634
+    },
+
+    {
+       27, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635,  854, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635, -635, -635,  854, -635, -635,
+
+     -635, -635, -635, -635, -635, -635, -635, -635, -635, -635,
+     -635, -635, -635, -635, -635
+    },
+
+    {
+       27, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636,  855, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636,  855,
+     -636, -636, -636, -636, -636, -636, -636, -636, -636, -636,
+     -636, -636, -636, -636, -636
+    },
+
+    {
+       27, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637,  856, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637,  856, -637,
+     -637, -637, -637, -637, -637, -637, -637, -637, -637, -637,
+     -637, -637, -637, -637, -637
+    },
+
+    {
+       27, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638,  857, -638, -638, -638, -638, -638, -638,
+
+     -638, -638, -638, -638, -638, -638, -638, -638, -638, -638,
+     -638, -638, -638, -638, -638, -638, -638, -638,  857, -638,
+     -638, -638, -638, -638, -638
+    },
+
+    {
+       27, -639, -639, -639, -639, -639, -639, -639, -639,  858,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639,  859,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639, -639, -639, -639, -639, -639,
+     -639, -639, -639, -639, -639
+
+    },
+
+    {
+       27, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640,  860, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640,  860, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640, -640, -640, -640, -640, -640,
+     -640, -640, -640, -640, -640
+    },
+
+    {
+       27, -641, -641, -641, -641, -641, -641, -641, -641,  861,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+
+     -641, -641, -641, -641, -641, -641, -641, -641, -641,  862,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641
+    },
+
+    {
+       27, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642,  863, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642, -642, -642, -642, -642, -642, -642, -642, -642,
+     -642, -642,  863, -642, -642, -642, -642, -642, -642, -642,
+
+     -642, -642, -642, -642, -642
+    },
+
+    {
+       27, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643,  864, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643,  864, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643, -643, -643, -643, -643, -643,
+     -643, -643, -643, -643, -643
+    },
+
+    {
+       27, -644, -644, -644, -644, -644, -644, -644, -644,  865,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644,  866,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644, -644, -644, -644, -644, -644,
+     -644, -644, -644, -644, -644
+    },
+
+    {
+       27, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645,  867, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645,  867, -645, -645, -645, -645, -645,
+
+     -645, -645, -645, -645, -645, -645, -645, -645, -645, -645,
+     -645, -645, -645, -645, -645
+    },
+
+    {
+       27, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+      868, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646,  868, -646, -646, -646,
+     -646, -646, -646, -646, -646, -646, -646, -646, -646, -646,
+     -646, -646, -646, -646, -646
+    },
+
+    {
+       27, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647,  869, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647,  869, -647, -647, -647, -647, -647, -647,
+     -647, -647, -647, -647, -647
+    },
+
+    {
+       27, -648, -648, -648, -648, -648, -648, -648, -648,  870,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648,  871,
+
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648, -648, -648, -648, -648, -648,
+     -648, -648, -648, -648, -648
+    },
+
+    {
+       27, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649,  872, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649, -649, -649, -649, -649, -649,
+     -649, -649, -649, -649, -649
+
+    },
+
+    {
+       27, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650,  873, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650, -650, -650, -650,
+     -650, -650, -650, -650, -650, -650, -650,  873, -650, -650,
+     -650, -650, -650, -650, -650
+    },
+
+    {
+       27, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651,  874, -651, -651, -651, -651, -651, -651, -651,
+
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651,  874, -651,
+     -651, -651, -651, -651, -651, -651, -651, -651, -651, -651,
+     -651, -651, -651, -651, -651
+    },
+
+    {
+       27, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652,  875, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652,  876, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652,  875, -652, -652, -652, -652, -652,
+     -652, -652, -652, -652, -652, -652, -652, -652, -652,  876,
+
+     -652, -652, -652, -652, -652
+    },
+
+    {
+       27, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653,  877, -653, -653, -653, -653,
+     -653, -653,  878, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653,  877, -653, -653, -653, -653, -653, -653,  878, -653,
+     -653, -653, -653, -653, -653, -653, -653, -653, -653, -653,
+     -653, -653, -653, -653, -653
+    },
+
+    {
+       27, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+
+     -654, -654, -654, -654,  879, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654,  879,
+     -654, -654, -654, -654, -654, -654, -654, -654, -654, -654,
+     -654, -654, -654, -654, -654
+    },
+
+    {
+       27, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655,  880, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655,  880, -655, -655, -655, -655, -655,
+
+     -655, -655, -655, -655, -655, -655, -655, -655, -655, -655,
+     -655, -655, -655, -655, -655
+    },
+
+    {
+       27, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656,  881, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656, -656, -656, -656, -656, -656,
+     -656, -656, -656, -656, -656
+    },
+
+    {
+       27, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657,  882, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657, -657, -657,
+     -657, -657, -657, -657, -657, -657, -657, -657,  882, -657,
+     -657, -657, -657, -657, -657
+    },
+
+    {
+       27, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658,  883, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+
+     -658, -658, -658, -658, -658, -658, -658,  883, -658, -658,
+     -658, -658, -658, -658, -658, -658, -658, -658, -658, -658,
+     -658, -658, -658, -658, -658
+    },
+
+    {
+       27, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659,  884, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659,  884,
+     -659, -659, -659, -659, -659, -659, -659, -659, -659, -659,
+     -659, -659, -659, -659, -659
+
+    },
+
+    {
+       27, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660,  885, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660,  885, -660,
+     -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
+     -660, -660, -660, -660, -660
+    },
+
+    {
+       27, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+
+     -661, -661, -661,  886, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661, -661, -661,
+     -661, -661, -661, -661, -661, -661, -661, -661,  886, -661,
+     -661, -661, -661, -661, -661
+    },
+
+    {
+       27, -662, -662, -662, -662, -662, -662, -662, -662,  887,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662,  888,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+     -662, -662, -662, -662, -662, -662, -662, -662, -662, -662,
+
+     -662, -662, -662, -662, -662
+    },
+
+    {
+       27, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663,  889, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663,  889, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663, -663, -663, -663, -663, -663,
+     -663, -663, -663, -663, -663
+    },
+
+    {
+       27, -664, -664, -664, -664, -664, -664, -664, -664,  890,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664,  891,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664, -664, -664, -664, -664, -664,
+     -664, -664, -664, -664, -664
+    },
+
+    {
+       27, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665,  892, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665, -665, -665, -665, -665, -665,
+
+     -665, -665,  892, -665, -665, -665, -665, -665, -665, -665,
+     -665, -665, -665, -665, -665
+    },
+
+    {
+       27, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666,  893, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666,  893, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666, -666, -666, -666, -666, -666,
+     -666, -666, -666, -666, -666
+    },
+
+    {
+       27, -667, -667, -667, -667, -667, -667, -667, -667,  894,
+
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667,  895,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667, -667, -667, -667, -667, -667,
+     -667, -667, -667, -667, -667
+    },
+
+    {
+       27, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668,  896, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+
+     -668, -668, -668, -668,  896, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668, -668, -668, -668, -668, -668,
+     -668, -668, -668, -668, -668
+    },
+
+    {
+       27, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+      897, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669,  897, -669, -669, -669,
+     -669, -669, -669, -669, -669, -669, -669, -669, -669, -669,
+     -669, -669, -669, -669, -669
+
+    },
+
+    {
+       27, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670,  898, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670,  898, -670, -670, -670, -670, -670, -670,
+     -670, -670, -670, -670, -670
+    },
+
+    {
+       27, -671, -671, -671, -671, -671, -671, -671, -671,  899,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+
+     -671, -671, -671, -671, -671, -671, -671, -671, -671,  900,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671, -671, -671, -671, -671, -671,
+     -671, -671, -671, -671, -671
+    },
+
+    {
+       27, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672,  901, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+     -672, -672, -672, -672, -672, -672, -672, -672, -672, -672,
+
+     -672, -672, -672, -672, -672
+    },
+
+    {
+       27, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673,  902, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673, -673, -673, -673,
+     -673, -673, -673, -673, -673, -673, -673,  902, -673, -673,
+     -673, -673, -673, -673, -673
+    },
+
+    {
+       27, -674, -674, -674, -674, -674, -674, -674, -674, -674,
+     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
+
+     -674, -674,  903, -674, -674, -674, -674, -674, -674, -674,
+     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
+     -674, -674, -674, -674, -674, -674, -674, -674,  903, -674,
+     -674, -674, -674, -674, -674, -674, -674, -674, -674, -674,
+     -674, -674, -674, -674, -674
+    },
+
+    {
+       27, -675, -675, -675, -675, -675, -675, -675, -675, -675,
+     -675, -675, -675, -675, -675, -675, -675, -675,  904, -675,
+     -675, -675, -675, -675, -675, -675, -675, -675, -675, -675,
+     -675, -675, -675, -675,  905, -675, -675, -675, -675, -675,
+     -675, -675, -675, -675,  904, -675, -675, -675, -675, -675,
+
+     -675, -675, -675, -675, -675, -675, -675, -675, -675,  905,
+     -675, -675, -675, -675, -675
+    },
+
+    {
+       27, -676, -676, -676, -676, -676, -676, -676, -676, -676,
+     -676, -676, -676, -676, -676,  906, -676, -676, -676, -676,
+     -676, -676,  907, -676, -676, -676, -676, -676, -676, -676,
+     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
+     -676,  906, -676, -676, -676, -676, -676, -676,  907, -676,
+     -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
+     -676, -676, -676, -676, -676
+    },
+
+    {
+       27, -677, -677, -677, -677, -677, -677, -677, -677, -677,
+
+     -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
+     -677, -677, -677, -677,  908, -677, -677, -677, -677, -677,
+     -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
+     -677, -677, -677, -677, -677, -677, -677, -677, -677,  908,
+     -677, -677, -677, -677, -677, -677, -677, -677, -677, -677,
+     -677, -677, -677, -677, -677
+    },
+
+    {
+       27, -678, -678, -678, -678, -678, -678, -678, -678, -678,
+     -678, -678, -678, -678, -678, -678, -678, -678,  909, -678,
+     -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
+     -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
+
+     -678, -678, -678, -678,  909, -678, -678, -678, -678, -678,
+     -678, -678, -678, -678, -678, -678, -678, -678, -678, -678,
+     -678, -678, -678, -678, -678
+    },
+
+    {
+       27, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+     -679, -679, -679,  910, -679, -679, -679, -679, -679, -679,
+     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+     -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+     -679, -679, -679, -679, -679
+
+    },
+
+    {
+       27, -680, -680, -680, -680, -680, -680, -680, -680, -680,
+     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
+     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
+     -680, -680, -680,  911, -680, -680, -680, -680, -680, -680,
+     -680, -680, -680, -680, -680, -680, -680, -680, -680, -680,
+     -680, -680, -680, -680, -680, -680, -680, -680,  911, -680,
+     -680, -680, -680, -680, -680
+    },
+
+    {
+       27, -681, -681, -681, -681, -681, -681, -681, -681, -681,
+     -681, -681, -681, -681,  912, -681, -681, -681, -681, -681,
+     -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
+
+     -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
+      912, -681, -681, -681, -681, -681, -681, -681, -681, -681,
+     -681, -681, -681, -681, -681, -681, -681, -681, -681, -681,
+     -681, -681, -681, -681, -681
+    },
+
+    {
+       27, -682, -682, -682, -682, -682, -682, -682, -682, -682,
+     -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
+     -682, -682, -682, -682,  913, -682, -682, -682, -682, -682,
+     -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
+     -682, -682, -682, -682, -682, -682, -682, -682, -682,  913,
+     -682, -682, -682, -682, -682, -682, -682, -682, -682, -682,
+
+     -682, -682, -682, -682, -682
+    },
+
+    {
+       27, -683, -683, -683, -683, -683, -683, -683, -683, -683,
+     -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
+     -683, -683,  914, -683, -683, -683, -683, -683, -683, -683,
+     -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
+     -683, -683, -683, -683, -683, -683, -683, -683,  914, -683,
+     -683, -683, -683, -683, -683, -683, -683, -683, -683, -683,
+     -683, -683, -683, -683, -683
+    },
+
+    {
+       27, -684, -684, -684, -684, -684, -684, -684, -684, -684,
+     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
+
+     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
+     -684, -684, -684,  915, -684, -684, -684, -684, -684, -684,
+     -684, -684, -684, -684, -684, -684, -684, -684, -684, -684,
+     -684, -684, -684, -684, -684, -684, -684, -684,  915, -684,
+     -684, -684, -684, -684, -684
+    },
+
+    {
+       27, -685, -685, -685, -685, -685, -685, -685, -685,  916,
+     -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
+     -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
+     -685, -685, -685, -685, -685, -685, -685, -685, -685,  917,
+     -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
+
+     -685, -685, -685, -685, -685, -685, -685, -685, -685, -685,
+     -685, -685, -685, -685, -685
+    },
+
+    {
+       27, -686, -686, -686, -686, -686, -686, -686, -686, -686,
+     -686, -686, -686, -686, -686, -686, -686, -686,  918, -686,
+     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
+     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
+     -686, -686, -686, -686,  918, -686, -686, -686, -686, -686,
+     -686, -686, -686, -686, -686, -686, -686, -686, -686, -686,
+     -686, -686, -686, -686, -686
+    },
+
+    {
+       27, -687, -687, -687, -687, -687, -687, -687, -687,  919,
+
+     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
+     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
+     -687, -687, -687, -687, -687, -687, -687, -687, -687,  920,
+     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
+     -687, -687, -687, -687, -687, -687, -687, -687, -687, -687,
+     -687, -687, -687, -687, -687
+    },
+
+    {
+       27, -688, -688, -688, -688, -688, -688, -688, -688, -688,
+     -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
+     -688, -688, -688, -688, -688, -688, -688,  921, -688, -688,
+     -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
+
+     -688, -688, -688, -688, -688, -688, -688, -688, -688, -688,
+     -688, -688,  921, -688, -688, -688, -688, -688, -688, -688,
+     -688, -688, -688, -688, -688
+    },
+
+    {
+       27, -689, -689, -689, -689, -689, -689, -689, -689, -689,
+     -689, -689, -689, -689, -689, -689, -689, -689,  922, -689,
+     -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
+     -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
+     -689, -689, -689, -689,  922, -689, -689, -689, -689, -689,
+     -689, -689, -689, -689, -689, -689, -689, -689, -689, -689,
+     -689, -689, -689, -689, -689
+
+    },
+
+    {
+       27, -690, -690, -690, -690, -690, -690, -690, -690,  923,
+     -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
+     -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
+     -690, -690, -690, -690, -690, -690, -690, -690, -690,  924,
+     -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
+     -690, -690, -690, -690, -690, -690, -690, -690, -690, -690,
+     -690, -690, -690, -690, -690
+    },
+
+    {
+       27, -691, -691, -691, -691, -691, -691, -691, -691, -691,
+     -691, -691, -691, -691, -691, -691, -691, -691,  925, -691,
+     -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
+
+     -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
+     -691, -691, -691, -691,  925, -691, -691, -691, -691, -691,
+     -691, -691, -691, -691, -691, -691, -691, -691, -691, -691,
+     -691, -691, -691, -691, -691
+    },
+
+    {
+       27, -692, -692, -692, -692, -692, -692, -692, -692, -692,
+     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
+      926, -692, -692, -692, -692, -692, -692, -692, -692, -692,
+     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
+     -692, -692, -692, -692, -692, -692,  926, -692, -692, -692,
+     -692, -692, -692, -692, -692, -692, -692, -692, -692, -692,
+
+     -692, -692, -692, -692, -692
+    },
+
+    {
+       27, -693, -693, -693, -693, -693, -693, -693, -693, -693,
+     -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
+     -693, -693, -693, -693, -693, -693, -693, -693,  927, -693,
+     -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
+     -693, -693, -693, -693, -693, -693, -693, -693, -693, -693,
+     -693, -693, -693,  927, -693, -693, -693, -693, -693, -693,
+     -693, -693, -693, -693, -693
+    },
+
+    {
+       27, -694, -694, -694, -694, -694, -694, -694, -694,  928,
+     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
+
+     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
+     -694, -694, -694, -694, -694, -694, -694, -694, -694,  929,
+     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
+     -694, -694, -694, -694, -694, -694, -694, -694, -694, -694,
+     -694, -694, -694, -694, -694
+    },
+
+    {
+       27, -695, -695, -695, -695, -695, -695, -695, -695, -695,
+     -695, -695, -695,  930, -695, -695, -695, -695, -695, -695,
+     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
+     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
+     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
+
+     -695, -695, -695, -695, -695, -695, -695, -695, -695, -695,
+     -695, -695, -695, -695, -695
+    },
+
+    {
+       27, -696, -696, -696, -696, -696, -696, -696, -696, -696,
+     -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
+     -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
+     -696, -696,  931, -696, -696, -696, -696, -696, -696, -696,
+     -696, -696, -696, -696, -696, -696, -696, -696, -696, -696,
+     -696, -696, -696, -696, -696, -696, -696,  931, -696, -696,
+     -696, -696, -696, -696, -696
+    },
+
+    {
+       27, -697, -697, -697, -697, -697, -697, -697, -697, -697,
+
+     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
+     -697, -697,  932, -697, -697, -697, -697, -697, -697, -697,
+     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
+     -697, -697, -697, -697, -697, -697, -697, -697,  932, -697,
+     -697, -697, -697, -697, -697, -697, -697, -697, -697, -697,
+     -697, -697, -697, -697, -697
+    },
+
+    {
+       27, -698, -698, -698, -698, -698, -698, -698, -698, -698,
+     -698, -698, -698, -698, -698, -698, -698, -698,  933, -698,
+     -698, -698, -698, -698, -698, -698, -698, -698, -698, -698,
+     -698, -698, -698, -698,  934, -698, -698, -698, -698, -698,
+
+     -698, -698, -698, -698,  933, -698, -698, -698, -698, -698,
+     -698, -698, -698, -698, -698, -698, -698, -698, -698,  934,
+     -698, -698, -698, -698, -698
+    },
+
+    {
+       27, -699, -699, -699, -699, -699, -699, -699, -699, -699,
+     -699, -699, -699, -699, -699,  935, -699, -699, -699, -699,
+     -699, -699,  936, -699, -699, -699, -699, -699, -699, -699,
+     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
+     -699,  935, -699, -699, -699, -699, -699, -699,  936, -699,
+     -699, -699, -699, -699, -699, -699, -699, -699, -699, -699,
+     -699, -699, -699, -699, -699
+
+    },
+
+    {
+       27, -700, -700, -700, -700, -700, -700, -700, -700, -700,
+     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
+     -700, -700, -700, -700,  937, -700, -700, -700, -700, -700,
+     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
+     -700, -700, -700, -700, -700, -700, -700, -700, -700,  937,
+     -700, -700, -700, -700, -700, -700, -700, -700, -700, -700,
+     -700, -700, -700, -700, -700
+    },
+
+    {
+       27, -701, -701, -701, -701, -701, -701, -701, -701, -701,
+     -701, -701, -701, -701, -701, -701, -701, -701,  938, -701,
+     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
+
+     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
+     -701, -701, -701, -701,  938, -701, -701, -701, -701, -701,
+     -701, -701, -701, -701, -701, -701, -701, -701, -701, -701,
+     -701, -701, -701, -701, -701
+    },
+
+    {
+       27, -702, -702, -702, -702, -702, -702, -702, -702, -702,
+     -702, -702, -702,  939, -702, -702, -702, -702, -702, -702,
+     -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
+     -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
+     -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
+     -702, -702, -702, -702, -702, -702, -702, -702, -702, -702,
+
+     -702, -702, -702, -702, -702
+    },
+
+    {
+       27, -703, -703, -703, -703, -703, -703, -703, -703, -703,
+     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
+     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
+     -703, -703, -703,  940, -703, -703, -703, -703, -703, -703,
+     -703, -703, -703, -703, -703, -703, -703, -703, -703, -703,
+     -703, -703, -703, -703, -703, -703, -703, -703,  940, -703,
+     -703, -703, -703, -703, -703
+    },
+
+    {
+       27, -704, -704, -704, -704, -704, -704, -704, -704, -704,
+     -704, -704, -704, -704, -704,  941, -704, -704, -704, -704,
+
+     -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
+     -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
+     -704,  941, -704, -704, -704, -704, -704, -704, -704, -704,
+     -704, -704, -704, -704, -704, -704, -704, -704, -704, -704,
+     -704, -704, -704, -704, -704
+    },
+
+    {
+       27, -705, -705, -705, -705, -705, -705, -705, -705, -705,
+     -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
+     -705, -705, -705, -705,  942, -705, -705, -705, -705, -705,
+     -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
+     -705, -705, -705, -705, -705, -705, -705, -705, -705,  942,
+
+     -705, -705, -705, -705, -705, -705, -705, -705, -705, -705,
+     -705, -705, -705, -705, -705
+    },
+
+    {
+       27, -706, -706, -706, -706, -706, -706, -706, -706, -706,
+     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
+     -706, -706,  943, -706, -706, -706, -706, -706, -706, -706,
+     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
+     -706, -706, -706, -706, -706, -706, -706, -706,  943, -706,
+     -706, -706, -706, -706, -706, -706, -706, -706, -706, -706,
+     -706, -706, -706, -706, -706
+    },
+
+    {
+       27, -707, -707, -707, -707, -707, -707, -707, -707, -707,
+
+     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
+     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
+     -707, -707, -707,  944, -707, -707, -707, -707, -707, -707,
+     -707, -707, -707, -707, -707, -707, -707, -707, -707, -707,
+     -707, -707, -707, -707, -707, -707, -707, -707,  944, -707,
+     -707, -707, -707, -707, -707
+    },
+
+    {
+       27, -708, -708, -708, -708, -708, -708, -708, -708,  945,
+     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
+     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
+     -708, -708, -708, -708, -708, -708, -708, -708, -708,  946,
+
+     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
+     -708, -708, -708, -708, -708, -708, -708, -708, -708, -708,
+     -708, -708, -708, -708, -708
+    },
+
+    {
+       27, -709, -709, -709, -709, -709, -709, -709, -709, -709,
+     -709, -709, -709, -709, -709, -709, -709, -709,  947, -709,
+     -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
+     -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
+     -709, -709, -709, -709,  947, -709, -709, -709, -709, -709,
+     -709, -709, -709, -709, -709, -709, -709, -709, -709, -709,
+     -709, -709, -709, -709, -709
+
+    },
+
+    {
+       27, -710, -710, -710, -710, -710, -710, -710, -710,  948,
+     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
+     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
+     -710, -710, -710, -710, -710, -710, -710, -710, -710,  949,
+     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
+     -710, -710, -710, -710, -710, -710, -710, -710, -710, -710,
+     -710, -710, -710, -710, -710
+    },
+
+    {
+       27, -711, -711, -711, -711, -711, -711, -711, -711, -711,
+     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
+     -711, -711, -711, -711, -711, -711, -711,  950, -711, -711,
+
+     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
+     -711, -711, -711, -711, -711, -711, -711, -711, -711, -711,
+     -711, -711,  950, -711, -711, -711, -711, -711, -711, -711,
+     -711, -711, -711, -711, -711
+    },
+
+    {
+       27, -712, -712, -712, -712, -712, -712, -712, -712, -712,
+     -712, -712, -712, -712, -712, -712, -712, -712,  951, -712,
+     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
+     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
+     -712, -712, -712, -712,  951, -712, -712, -712, -712, -712,
+     -712, -712, -712, -712, -712, -712, -712, -712, -712, -712,
+
+     -712, -712, -712, -712, -712
+    },
+
+    {
+       27, -713, -713, -713, -713, -713, -713, -713, -713,  952,
+     -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
+     -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
+     -713, -713, -713, -713, -713, -713, -713, -713, -713,  953,
+     -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
+     -713, -713, -713, -713, -713, -713, -713, -713, -713, -713,
+     -713, -713, -713, -713, -713
+    },
+
+    {
+       27, -714, -714, -714, -714, -714, -714, -714, -714, -714,
+     -714, -714, -714, -714, -714, -714, -714, -714,  954, -714,
+
+     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
+     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
+     -714, -714, -714, -714,  954, -714, -714, -714, -714, -714,
+     -714, -714, -714, -714, -714, -714, -714, -714, -714, -714,
+     -714, -714, -714, -714, -714
+    },
+
+    {
+       27, -715, -715, -715, -715, -715, -715, -715, -715, -715,
+     -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
+      955, -715, -715, -715, -715, -715, -715, -715, -715, -715,
+     -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
+     -715, -715, -715, -715, -715, -715,  955, -715, -715, -715,
+
+     -715, -715, -715, -715, -715, -715, -715, -715, -715, -715,
+     -715, -715, -715, -715, -715
+    },
+
+    {
+       27, -716, -716, -716, -716, -716, -716, -716, -716, -716,
+     -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
+     -716, -716, -716, -716, -716, -716, -716, -716,  956, -716,
+     -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
+     -716, -716, -716, -716, -716, -716, -716, -716, -716, -716,
+     -716, -716, -716,  956, -716, -716, -716, -716, -716, -716,
+     -716, -716, -716, -716, -716
+    },
+
+    {
+       27, -717, -717, -717, -717, -717, -717, -717, -717,  957,
+
+     -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
+     -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
+     -717, -717, -717, -717, -717, -717, -717, -717, -717,  958,
+     -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
+     -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
+     -717, -717, -717, -717, -717
+    },
+
+    {
+       27, -718, -718, -718, -718, -718, -718, -718, -718, -718,
+     -718, -718, -718,  959, -718, -718, -718, -718, -718, -718,
+     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
+     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
+
+     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
+     -718, -718, -718, -718, -718, -718, -718, -718, -718, -718,
+     -718, -718, -718, -718, -718
+    },
+
+    {
+       27, -719, -719, -719, -719, -719, -719, -719, -719, -719,
+     -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
+     -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
+     -719, -719,  960, -719, -719, -719, -719, -719, -719, -719,
+     -719, -719, -719, -719, -719, -719, -719, -719, -719, -719,
+     -719, -719, -719, -719, -719, -719, -719,  960, -719, -719,
+     -719, -719, -719, -719, -719
+
+    },
+
+    {
+       27, -720, -720, -720, -720, -720, -720, -720, -720, -720,
+     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
+     -720, -720,  961, -720, -720, -720, -720, -720, -720, -720,
+     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
+     -720, -720, -720, -720, -720, -720, -720, -720,  961, -720,
+     -720, -720, -720, -720, -720, -720, -720, -720, -720, -720,
+     -720, -720, -720, -720, -720
+    },
+
+    {
+       27, -721, -721, -721, -721, -721, -721, -721, -721, -721,
+     -721, -721, -721, -721, -721, -721, -721, -721,  962, -721,
+     -721, -721, -721, -721, -721, -721, -721, -721, -721, -721,
+
+     -721, -721, -721, -721,  963, -721, -721, -721, -721, -721,
+     -721, -721, -721, -721,  962, -721, -721, -721, -721, -721,
+     -721, -721, -721, -721, -721, -721, -721, -721, -721,  963,
+     -721, -721, -721, -721, -721
+    },
+
+    {
+       27, -722, -722, -722, -722, -722, -722, -722, -722, -722,
+     -722, -722, -722, -722, -722,  964, -722, -722, -722, -722,
+     -722, -722,  965, -722, -722, -722, -722, -722, -722, -722,
+     -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
+     -722,  964, -722, -722, -722, -722, -722, -722,  965, -722,
+     -722, -722, -722, -722, -722, -722, -722, -722, -722, -722,
+
+     -722, -722, -722, -722, -722
+    },
+
+    {
+       27, -723, -723, -723, -723, -723, -723, -723, -723, -723,
+     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
+     -723, -723, -723, -723,  966, -723, -723, -723, -723, -723,
+     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
+     -723, -723, -723, -723, -723, -723, -723, -723, -723,  966,
+     -723, -723, -723, -723, -723, -723, -723, -723, -723, -723,
+     -723, -723, -723, -723, -723
+    },
+
+    {
+       27, -724, -724, -724, -724, -724, -724, -724, -724, -724,
+     -724, -724, -724, -724, -724, -724, -724, -724,  967, -724,
+
+     -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
+     -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
+     -724, -724, -724, -724,  967, -724, -724, -724, -724, -724,
+     -724, -724, -724, -724, -724, -724, -724, -724, -724, -724,
+     -724, -724, -724, -724, -724
+    },
+
+    {
+       27, -725, -725, -725, -725, -725, -725, -725, -725, -725,
+     -725, -725, -725,  968, -725, -725, -725, -725, -725, -725,
+     -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
+     -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
+     -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
+
+     -725, -725, -725, -725, -725, -725, -725, -725, -725, -725,
+     -725, -725, -725, -725, -725
+    },
+
+    {
+       27, -726, -726, -726, -726, -726, -726, -726, -726, -726,
+     -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
+     -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
+     -726, -726, -726,  969, -726, -726, -726, -726, -726, -726,
+     -726, -726, -726, -726, -726, -726, -726, -726, -726, -726,
+     -726, -726, -726, -726, -726, -726, -726, -726,  969, -726,
+     -726, -726, -726, -726, -726
+    },
+
+    {
+       27, -727, -727, -727, -727, -727, -727, -727, -727, -727,
+
+     -727, -727, -727, -727,  970, -727, -727, -727, -727, -727,
+     -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
+     -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
+      970, -727, -727, -727, -727, -727, -727, -727, -727, -727,
+     -727, -727, -727, -727, -727, -727, -727, -727, -727, -727,
+     -727, -727, -727, -727, -727
+    },
+
+    {
+       27, -728, -728, -728, -728, -728, -728, -728, -728, -728,
+     -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
+     -728, -728, -728, -728,  971, -728, -728, -728, -728, -728,
+     -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
+
+     -728, -728, -728, -728, -728, -728, -728, -728, -728,  971,
+     -728, -728, -728, -728, -728, -728, -728, -728, -728, -728,
+     -728, -728, -728, -728, -728
+    },
+
+    {
+       27, -729, -729, -729, -729, -729, -729, -729, -729, -729,
+     -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
+     -729, -729,  972, -729, -729, -729, -729, -729, -729, -729,
+     -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
+     -729, -729, -729, -729, -729, -729, -729, -729,  972, -729,
+     -729, -729, -729, -729, -729, -729, -729, -729, -729, -729,
+     -729, -729, -729, -729, -729
+
+    },
+
+    {
+       27, -730, -730, -730, -730, -730, -730, -730, -730, -730,
+     -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
+     -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
+     -730, -730, -730,  973, -730, -730, -730, -730, -730, -730,
+     -730, -730, -730, -730, -730, -730, -730, -730, -730, -730,
+     -730, -730, -730, -730, -730, -730, -730, -730,  973, -730,
+     -730, -730, -730, -730, -730
+    },
+
+    {
+       27, -731, -731, -731, -731, -731, -731, -731, -731,  974,
+     -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
+     -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
+
+     -731, -731, -731, -731, -731, -731, -731, -731, -731,  975,
+     -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
+     -731, -731, -731, -731, -731, -731, -731, -731, -731, -731,
+     -731, -731, -731, -731, -731
+    },
+
+    {
+       27, -732, -732, -732, -732, -732, -732, -732, -732, -732,
+     -732, -732, -732, -732, -732, -732, -732, -732,  976, -732,
+     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
+     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
+     -732, -732, -732, -732,  976, -732, -732, -732, -732, -732,
+     -732, -732, -732, -732, -732, -732, -732, -732, -732, -732,
+
+     -732, -732, -732, -732, -732
+    },
+
+    {
+       27, -733, -733, -733, -733, -733, -733, -733, -733,  977,
+     -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+     -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+     -733, -733, -733, -733, -733, -733, -733, -733, -733,  978,
+     -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+     -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
+     -733, -733, -733, -733, -733
+    },
+
+    {
+       27, -734, -734, -734, -734, -734, -734, -734, -734, -734,
+     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
+
+     -734, -734, -734, -734, -734, -734, -734,  979, -734, -734,
+     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
+     -734, -734, -734, -734, -734, -734, -734, -734, -734, -734,
+     -734, -734,  979, -734, -734, -734, -734, -734, -734, -734,
+     -734, -734, -734, -734, -734
+    },
+
+    {
+       27, -735, -735, -735, -735, -735, -735, -735, -735, -735,
+     -735, -735, -735, -735, -735, -735, -735, -735,  980, -735,
+     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
+     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
+     -735, -735, -735, -735,  980, -735, -735, -735, -735, -735,
+
+     -735, -735, -735, -735, -735, -735, -735, -735, -735, -735,
+     -735, -735, -735, -735, -735
+    },
+
+    {
+       27, -736, -736, -736, -736, -736, -736, -736, -736,  981,
+     -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
+     -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
+     -736, -736, -736, -736, -736, -736, -736, -736, -736,  982,
+     -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
+     -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
+     -736, -736, -736, -736, -736
+    },
+
+    {
+       27, -737, -737, -737, -737, -737, -737, -737, -737, -737,
+
+     -737, -737, -737, -737, -737, -737, -737, -737,  983, -737,
+     -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
+     -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
+     -737, -737, -737, -737,  983, -737, -737, -737, -737, -737,
+     -737, -737, -737, -737, -737, -737, -737, -737, -737, -737,
+     -737, -737, -737, -737, -737
+    },
+
+    {
+       27, -738, -738, -738, -738, -738, -738, -738, -738, -738,
+     -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
+      984, -738, -738, -738, -738, -738, -738, -738, -738, -738,
+     -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
+
+     -738, -738, -738, -738, -738, -738,  984, -738, -738, -738,
+     -738, -738, -738, -738, -738, -738, -738, -738, -738, -738,
+     -738, -738, -738, -738, -738
+    },
+
+    {
+       27, -739, -739, -739, -739, -739, -739, -739, -739, -739,
+     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
+     -739, -739, -739, -739, -739, -739, -739, -739,  985, -739,
+     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
+     -739, -739, -739, -739, -739, -739, -739, -739, -739, -739,
+     -739, -739, -739,  985, -739, -739, -739, -739, -739, -739,
+     -739, -739, -739, -739, -739
+
+    },
+
+    {
+       27, -740, -740, -740, -740, -740, -740, -740, -740,  986,
+     -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
+     -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
+     -740, -740, -740, -740, -740, -740, -740, -740, -740,  987,
+     -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
+     -740, -740, -740, -740, -740, -740, -740, -740, -740, -740,
+     -740, -740, -740, -740, -740
+    },
+
+    {
+       27, -741, -741, -741, -741, -741, -741, -741, -741, -741,
+     -741, -741, -741,  988, -741, -741, -741, -741, -741, -741,
+     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
+
+     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
+     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
+     -741, -741, -741, -741, -741, -741, -741, -741, -741, -741,
+     -741, -741, -741, -741, -741
+    },
+
+    {
+       27, -742, -742, -742, -742, -742, -742, -742, -742, -742,
+     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
+     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
+     -742, -742,  989, -742, -742, -742, -742, -742, -742, -742,
+     -742, -742, -742, -742, -742, -742, -742, -742, -742, -742,
+     -742, -742, -742, -742, -742, -742, -742,  989, -742, -742,
+
+     -742, -742, -742, -742, -742
+    },
+
+    {
+       27, -743, -743, -743, -743, -743, -743, -743, -743, -743,
+     -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
+     -743, -743,  990, -743, -743, -743, -743, -743, -743, -743,
+     -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
+     -743, -743, -743, -743, -743, -743, -743, -743,  990, -743,
+     -743, -743, -743, -743, -743, -743, -743, -743, -743, -743,
+     -743, -743, -743, -743, -743
+    },
+
+    {
+       27, -744, -744, -744, -744, -744, -744, -744, -744, -744,
+     -744, -744, -744, -744, -744, -744, -744, -744,  991, -744,
+
+     -744, -744, -744, -744, -744, -744, -744, -744, -744, -744,
+     -744, -744, -744, -744,  992, -744, -744, -744, -744, -744,
+     -744, -744, -744, -744,  991, -744, -744, -744, -744, -744,
+     -744, -744, -744, -744, -744, -744, -744, -744, -744,  992,
+     -744, -744, -744, -744, -744
+    },
+
+    {
+       27, -745, -745, -745, -745, -745, -745, -745, -745, -745,
+     -745, -745, -745, -745, -745,  993, -745, -745, -745, -745,
+     -745, -745,  994, -745, -745, -745, -745, -745, -745, -745,
+     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
+     -745,  993, -745, -745, -745, -745, -745, -745,  994, -745,
+
+     -745, -745, -745, -745, -745, -745, -745, -745, -745, -745,
+     -745, -745, -745, -745, -745
+    },
+
+    {
+       27, -746, -746, -746, -746, -746, -746, -746, -746, -746,
+     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
+     -746, -746, -746, -746,  995, -746, -746, -746, -746, -746,
+     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
+     -746, -746, -746, -746, -746, -746, -746, -746, -746,  995,
+     -746, -746, -746, -746, -746, -746, -746, -746, -746, -746,
+     -746, -746, -746, -746, -746
+    },
+
+    {
+       27, -747, -747, -747, -747, -747, -747, -747, -747, -747,
+
+     -747, -747, -747, -747, -747, -747, -747, -747,  996, -747,
+     -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
+     -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
+     -747, -747, -747, -747,  996, -747, -747, -747, -747, -747,
+     -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
+     -747, -747, -747, -747, -747
+    },
+
+    {
+       27, -748, -748, -748, -748, -748, -748, -748, -748, -748,
+     -748, -748, -748,  997, -748, -748, -748, -748, -748, -748,
+     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
+     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
+
+     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
+     -748, -748, -748, -748, -748, -748, -748, -748, -748, -748,
+     -748, -748, -748, -748, -748
+    },
+
+    {
+       27, -749, -749, -749, -749, -749, -749, -749, -749, -749,
+      998,  178, -749, -749, -749, -749, -749, -749, -749, -749,
+     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
+     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
+     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
+     -749, -749, -749, -749, -749, -749, -749, -749, -749, -749,
+     -749, -749, -749, -749, -749
+
+    },
+
+    {
+       27, -750, -750, -750, -750, -750, -750, -750, -750, -750,
+      999,  178, -750, -750,  999,  999,  999,  999,  999,  999,
+     -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
+     -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
+      999,  999,  999,  999,  999,  999, -750, -750, -750, -750,
+     -750, -750, -750, -750, -750, -750, -750, -750, -750, -750,
+     -750, -750, -750, -750, -750
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366, 1000,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366, 1000,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366, 1001,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, 1001,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366, 1002,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366, 1002,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1003,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1004,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1004,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184, 1005,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 1005,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1006,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1007,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1007,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1008,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1008,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1009,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1009,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1010,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1011,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1011,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1012,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1012,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184, 1013,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1013,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1014,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1014,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184, 1015,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1016,  184,  184,  184,  184,  184,  184,
+      184, 1015,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1016,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1017,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1018,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1018,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1019,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1019,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184, 1020,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1020,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1021,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1022,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1023,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1023,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1024,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1025,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1025,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1026,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1027,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1027,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27, -777, 1028, 1028, -777, -777, -777, -777, -777, -777,
+
+     -777, -777, 1029, -777, -777, -777, -777, -777, -777, -777,
+     -777, -777, -777, -777, -777, -777, -777, -777, -777, -777,
+     -777, -777, -777, -777, -777, -777, -777, -777, -777, -777,
+     -777, -777, -777, -777, -777, -777, -777, -777, -777, -777,
+     -777, -777, -777, -777, -777, -777, -777, -777, -777, -777,
+     -777, -777, -777, -777, -777
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1030,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1030,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1031,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1031,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184, 1032,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1032,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184, 1033,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1033,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184, 1034,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184, 1034,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1035,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1035,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1036,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1036,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184, 1037,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1037,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1038,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1039,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27, -787, -787, -787, -787, -787, -787, -787, -787, -787,
+
+     -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
+     -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
+     -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
+     -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
+     -787, -787, -787, -787, -787, -787, -787, -787, -787, -787,
+     -787, -787, -787, -787, -787
+    },
+
+    {
+       27, -788, -788, -788, -788, -788, -788, -788, -788, -788,
+     -788, -788, -788, -788, -788, -788, -788, -788, 1040, -788,
+     -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
+     -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
+
+     -788, -788, -788, -788, 1040, -788, -788, -788, -788, -788,
+     -788, -788, -788, -788, -788, -788, -788, -788, -788, -788,
+     -788, -788, -788, -788, -788
+    },
+
+    {
+       27, -789, -789, -789, -789, -789, -789, -789, -789, -789,
+     -789, -789, -789, 1041, -789, -789, -789, -789, -789, -789,
+     -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
+     -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
+     -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
+     -789, -789, -789, -789, -789, -789, -789, -789, -789, -789,
+     -789, -789, -789, -789, -789
+
+    },
+
+    {
+       27, -790, -790, -790, -790, -790, -790, -790, -790, -790,
+     -790, -790, -790, -790, -790, -790, -790, -790, 1042, -790,
+     -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
+     -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
+     -790, -790, -790, -790, 1042, -790, -790, -790, -790, -790,
+     -790, -790, -790, -790, -790, -790, -790, -790, -790, -790,
+     -790, -790, -790, -790, -790
+    },
+
+    {
+       27, -791, -791, -791, -791, -791, -791, -791, -791, -791,
+     -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
+     -791, -791, -791, -791, -791, -791, -791, 1043, -791, -791,
+
+     -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
+     -791, -791, -791, -791, -791, -791, -791, -791, -791, -791,
+     -791, -791, 1043, -791, -791, -791, -791, -791, -791, -791,
+     -791, -791, -791, -791, -791
+    },
+
+    {
+       27, -792, -792, -792, -792, -792, -792, -792, -792, -792,
+     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
+     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
+     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
+     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
+     -792, -792, -792, -792, -792, -792, -792, -792, -792, -792,
+
+     -792, -792, -792, -792, -792
+    },
+
+    {
+       27, -793, -793, -793, -793, -793, -793, -793, -793, -793,
+     -793, -793, -793, -793, -793, -793, -793, -793, 1044, -793,
+     -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
+     -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
+     -793, -793, -793, -793, 1044, -793, -793, -793, -793, -793,
+     -793, -793, -793, -793, -793, -793, -793, -793, -793, -793,
+     -793, -793, -793, -793, -793
+    },
+
+    {
+       27, -794, -794, -794, -794, -794, -794, -794, -794, -794,
+     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
+
+     -794, -794, -794, -794, -794, -794, -794, 1045, -794, -794,
+     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
+     -794, -794, -794, -794, -794, -794, -794, -794, -794, -794,
+     -794, -794, 1045, -794, -794, -794, -794, -794, -794, -794,
+     -794, -794, -794, -794, -794
+    },
+
+    {
+       27, -795, -795, -795, -795, -795, -795, -795, -795, -795,
+     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
+     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
+     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
+     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
+
+     -795, -795, -795, -795, -795, -795, -795, -795, -795, -795,
+     -795, -795, -795, -795, -795
+    },
+
+    {
+       27, -796, -796, -796, -796, -796, -796, -796, -796, -796,
+     -796, -796, -796, -796, -796, -796, -796, -796, 1046, -796,
+     -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
+     -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
+     -796, -796, -796, -796, 1046, -796, -796, -796, -796, -796,
+     -796, -796, -796, -796, -796, -796, -796, -796, -796, -796,
+     -796, -796, -796, -796, -796
+    },
+
+    {
+       27, -797, -797, -797, -797, -797, -797, -797, -797, -797,
+
+     -797, -797, -797, 1047, -797, -797, -797, -797, -797, -797,
+     -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
+     -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
+     -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
+     -797, -797, -797, -797, -797, -797, -797, -797, -797, -797,
+     -797, -797, -797, -797, -797
+    },
+
+    {
+       27, -798, -798, -798, -798, -798, -798, -798, -798, -798,
+     -798, -798, -798, -798, -798, -798, -798, -798, -798, -798,
+     -798, -798, -798, -798, -798, -798, -798, -798, 1048, -798,
+     -798, -798, -798, -798, -798, -798, -798, -798, -798, -798,
+
+     -798, -798, -798, -798, -798, -798, -798, -798, -798, -798,
+     -798, -798, -798, 1048, -798, -798, -798, -798, -798, -798,
+     -798, -798, -798, -798, -798
+    },
+
+    {
+       27, -799, -799, -799, -799, -799, -799, -799, -799, -799,
+     -799, -799, -799, -799, -799, -799, -799, -799, 1049, -799,
+     -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
+     -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
+     -799, -799, -799, -799, 1049, -799, -799, -799, -799, -799,
+     -799, -799, -799, -799, -799, -799, -799, -799, -799, -799,
+     -799, -799, -799, -799, -799
+
+    },
+
+    {
+       27, -800, -800, -800, -800, -800, -800, -800, -800, -800,
+     -800, -800, -800, 1050, -800, -800, -800, -800, -800, -800,
+     -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
+     -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
+     -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
+     -800, -800, -800, -800, -800, -800, -800, -800, -800, -800,
+     -800, -800, -800, -800, -800
+    },
+
+    {
+       27, -801, -801, -801, -801, -801, -801, -801, -801, -801,
+     -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
+     -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
+
+     -801, -801, 1051, -801, -801, -801, -801, -801, -801, -801,
+     -801, -801, -801, -801, -801, -801, -801, -801, -801, -801,
+     -801, -801, -801, -801, -801, -801, -801, 1051, -801, -801,
+     -801, -801, -801, -801, -801
+    },
+
+    {
+       27, -802, -802, -802, -802, -802, -802, -802, -802, -802,
+     -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
+     -802, -802, -802, -802, -802, -802, -802, 1052, -802, -802,
+     -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
+     -802, -802, -802, -802, -802, -802, -802, -802, -802, -802,
+     -802, -802, 1052, -802, -802, -802, -802, -802, -802, -802,
+
+     -802, -802, -802, -802, -802
+    },
+
+    {
+       27, -803, -803, -803, -803, -803, -803, -803, -803, -803,
+     -803, -803, -803, 1053, -803, -803, -803, -803, -803, -803,
+     -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
+     -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
+     -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
+     -803, -803, -803, -803, -803, -803, -803, -803, -803, -803,
+     -803, -803, -803, -803, -803
+    },
+
+    {
+       27, -804, -804, -804, -804, -804, -804, -804, -804, -804,
+     -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
+
+     -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
+     -804, -804, 1054, -804, -804, -804, -804, -804, -804, -804,
+     -804, -804, -804, -804, -804, -804, -804, -804, -804, -804,
+     -804, -804, -804, -804, -804, -804, -804, 1054, -804, -804,
+     -804, -804, -804, -804, -804
+    },
+
+    {
+       27, -805, -805, -805, -805, -805, -805, -805, -805, -805,
+     -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
+     -805, -805, -805, -805, -805, -805, -805, -805, 1055, -805,
+     -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
+     -805, -805, -805, -805, -805, -805, -805, -805, -805, -805,
+
+     -805, -805, -805, 1055, -805, -805, -805, -805, -805, -805,
+     -805, -805, -805, -805, -805
+    },
+
+    {
+       27, -806, -806, -806, -806, -806, -806, -806, -806, -806,
+     -806, -806, -806, -806, -806, 1056, -806, -806, -806, -806,
+     -806, -806, -806, -806, -806, -806, -806, -806, -806, -806,
+     -806, -806, -806, 1057, -806, -806, -806, -806, -806, -806,
+     -806, 1056, -806, -806, -806, -806, -806, -806, -806, -806,
+     -806, -806, -806, -806, -806, -806, -806, -806, 1057, -806,
+     -806, -806, -806, -806, -806
+    },
+
+    {
+       27, -807, -807, -807, -807, -807, -807, -807, -807, -807,
+
+     -807, -807, -807, 1058, -807, -807, -807, -807, -807, -807,
+     -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
+     -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
+     -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
+     -807, -807, -807, -807, -807, -807, -807, -807, -807, -807,
+     -807, -807, -807, -807, -807
+    },
+
+    {
+       27, -808, -808, -808, -808, -808, -808, -808, -808, -808,
+     -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
+     -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
+     -808, -808, 1059, -808, -808, -808, -808, -808, -808, -808,
+
+     -808, -808, -808, -808, -808, -808, -808, -808, -808, -808,
+     -808, -808, -808, -808, -808, -808, -808, 1059, -808, -808,
+     -808, -808, -808, -808, -808
+    },
+
+    {
+       27, -809, -809, -809, -809, -809, -809, -809, -809, 1060,
+     -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
+     -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
+     -809, -809, -809, -809, -809, -809, -809, -809, -809, 1061,
+     -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
+     -809, -809, -809, -809, -809, -809, -809, -809, -809, -809,
+     -809, -809, -809, -809, -809
+
+    },
+
+    {
+       27, -810, -810, -810, -810, -810, -810, -810, -810, -810,
+     -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
+     -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
+     -810, 1062, -810, -810, -810, -810, -810, -810, -810, -810,
+     -810, -810, -810, -810, -810, -810, -810, -810, -810, -810,
+     -810, -810, -810, -810, -810, -810, 1062, -810, -810, -810,
+     -810, -810, -810, -810, -810
+    },
+
+    {
+       27, -811, -811, -811, -811, -811, -811, -811, -811, -811,
+     -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
+     -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
+
+     -811, -811, -811, -811, -811, -811, 1063, -811, -811, -811,
+     -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
+     -811, -811, -811, -811, -811, -811, -811, -811, -811, -811,
+     -811, 1063, -811, -811, -811
+    },
+
+    {
+       27, -812, -812, -812, -812, -812, -812, -812, -812, -812,
+     -812, -812, -812, 1064, -812, -812, -812, -812, -812, -812,
+     -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
+     -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
+     -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
+     -812, -812, -812, -812, -812, -812, -812, -812, -812, -812,
+
+     -812, -812, -812, -812, -812
+    },
+
+    {
+       27, -813, -813, -813, -813, -813, -813, -813, -813, -813,
+     -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
+     -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
+     -813, -813, 1065, -813, -813, -813, -813, -813, -813, -813,
+     -813, -813, -813, -813, -813, -813, -813, -813, -813, -813,
+     -813, -813, -813, -813, -813, -813, -813, 1065, -813, -813,
+     -813, -813, -813, -813, -813
+    },
+
+    {
+       27, -814, 1066, 1066, -814, -814, -814, -814, -814, -814,
+     -814, -814, 1067, -814, -814, -814, -814, -814, -814, -814,
+
+     -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
+     -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
+     -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
+     -814, -814, -814, -814, -814, -814, -814, -814, -814, -814,
+     -814, -814, -814, -814, -814
+    },
+
+    {
+       27, -815, -815, -815, -815, -815, -815, -815, -815, -815,
+     -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
+     -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
+     -815, -815, -815, 1068, -815, -815, -815, -815, -815, -815,
+     -815, -815, -815, -815, -815, -815, -815, -815, -815, -815,
+
+     -815, -815, -815, -815, -815, -815, -815, -815, 1068, -815,
+     -815, -815, -815, -815, -815
+    },
+
+    {
+       27, -816, -816, -816, -816, -816, -816, -816, -816, -816,
+     -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
+     -816, -816, -816, -816, -816, -816, -816, -816, 1069, -816,
+     -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
+     -816, -816, -816, -816, -816, -816, -816, -816, -816, -816,
+     -816, -816, -816, 1069, -816, -816, -816, -816, -816, -816,
+     -816, -816, -816, -816, -816
+    },
+
+    {
+       27, -817, -817, -817, -817, -817, -817, -817, -817, -817,
+
+     -817, -817, -817, -817, -817, -817, 1070, -817, -817, -817,
+     -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
+     -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
+     -817, -817, 1070, -817, -817, -817, -817, -817, -817, -817,
+     -817, -817, -817, -817, -817, -817, -817, -817, -817, -817,
+     -817, -817, -817, -817, -817
+    },
+
+    {
+       27, -818, -818, -818, -818, -818, -818, -818, -818, -818,
+     -818, -818, -818, -818, -818, 1071, -818, -818, -818, -818,
+     -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
+     -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
+
+     -818, 1071, -818, -818, -818, -818, -818, -818, -818, -818,
+     -818, -818, -818, -818, -818, -818, -818, -818, -818, -818,
+     -818, -818, -818, -818, -818
+    },
+
+    {
+       27, -819, -819, -819, -819, -819, -819, -819, -819, -819,
+     -819, -819, -819, -819, -819, -819, -819, -819, -819, 1072,
+     -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
+     -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
+     -819, -819, -819, -819, -819, 1072, -819, -819, -819, -819,
+     -819, -819, -819, -819, -819, -819, -819, -819, -819, -819,
+     -819, -819, -819, -819, -819
+
+    },
+
+    {
+       27, -820, -820, -820, -820, -820, -820, -820, -820, -820,
+     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
+     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
+     -820, -820, -820, 1073, -820, -820, -820, -820, -820, -820,
+     -820, -820, -820, -820, -820, -820, -820, -820, -820, -820,
+     -820, -820, -820, -820, -820, -820, -820, -820, 1073, -820,
+     -820, -820, -820, -820, -820
+    },
+
+    {
+       27, -821, -821, -821, -821, -821, -821, -821, -821, -821,
+     -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
+     -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
+
+     -821, -821, 1074, -821, -821, -821, -821, -821, -821, -821,
+     -821, -821, -821, -821, -821, -821, -821, -821, -821, -821,
+     -821, -821, -821, -821, -821, -821, -821, 1074, -821, -821,
+     -821, -821, -821, -821, -821
+    },
+
+    {
+       27, -822, -822, -822, -822, -822, -822, -822, -822, 1075,
+     -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
+     -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
+     -822, -822, -822, -822, -822, -822, -822, -822, -822, 1076,
+     -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
+     -822, -822, -822, -822, -822, -822, -822, -822, -822, -822,
+
+     -822, -822, -822, -822, -822
+    },
+
+    {
+       27, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823, -823, -823, -823, -823, -823, -823, -823, -823,
+     -823, -823, -823, -823, -823
+    },
+
+    {
+       27, -824, -824, -824, -824, -824, -824, -824, -824, -824,
+     -824, -824, -824, -824, -824, -824, -824, -824, 1077, -824,
+
+     -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
+     -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
+     -824, -824, -824, -824, 1077, -824, -824, -824, -824, -824,
+     -824, -824, -824, -824, -824, -824, -824, -824, -824, -824,
+     -824, -824, -824, -824, -824
+    },
+
+    {
+       27, -825, -825, -825, -825, -825, -825, -825, -825, -825,
+     -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
+     -825, -825, -825, -825, -825, -825, 1078, -825, -825, -825,
+     -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
+     -825, -825, -825, -825, -825, -825, -825, -825, -825, -825,
+
+     -825, 1078, -825, -825, -825, -825, -825, -825, -825, -825,
+     -825, -825, -825, -825, -825
+    },
+
+    {
+       27, -826, -826, -826, -826, -826, -826, -826, -826, -826,
+     -826, -826, -826, 1079, -826, -826, -826, -826, -826, -826,
+     -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
+     -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
+     -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
+     -826, -826, -826, -826, -826, -826, -826, -826, -826, -826,
+     -826, -826, -826, -826, -826
+    },
+
+    {
+       27, -827, -827, -827, -827, -827, -827, -827, -827, -827,
+
+     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
+     -827, -827, -827, -827, -827, -827, -827, -827, 1080, -827,
+     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
+     -827, -827, -827, -827, -827, -827, -827, -827, -827, -827,
+     -827, -827, -827, 1080, -827, -827, -827, -827, -827, -827,
+     -827, -827, -827, -827, -827
+    },
+
+    {
+       27, -828, -828, -828, -828, -828, -828, -828, -828, -828,
+     -828, -828, -828, -828, -828, -828, -828, -828, 1081, -828,
+     -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
+     -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
+
+     -828, -828, -828, -828, 1081, -828, -828, -828, -828, -828,
+     -828, -828, -828, -828, -828, -828, -828, -828, -828, -828,
+     -828, -828, -828, -828, -828
+    },
+
+    {
+       27, -829, -829, -829, -829, -829, -829, -829, -829, -829,
+     -829, -829, -829, 1082, -829, -829, -829, -829, -829, -829,
+     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
+     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
+     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
+     -829, -829, -829, -829, -829, -829, -829, -829, -829, -829,
+     -829, -829, -829, -829, -829
+
+    },
+
+    {
+       27, -830, -830, -830, -830, -830, -830, -830, -830, -830,
+     -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
+     -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
+     -830, -830, 1083, -830, -830, -830, -830, -830, -830, -830,
+     -830, -830, -830, -830, -830, -830, -830, -830, -830, -830,
+     -830, -830, -830, -830, -830, -830, -830, 1083, -830, -830,
+     -830, -830, -830, -830, -830
+    },
+
+    {
+       27, -831, -831, -831, -831, -831, -831, -831, -831, -831,
+     -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
+     -831, -831, -831, -831, -831, -831, -831, 1084, -831, -831,
+
+     -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
+     -831, -831, -831, -831, -831, -831, -831, -831, -831, -831,
+     -831, -831, 1084, -831, -831, -831, -831, -831, -831, -831,
+     -831, -831, -831, -831, -831
+    },
+
+    {
+       27, -832, -832, -832, -832, -832, -832, -832, -832, -832,
+     -832, -832, -832, 1085, -832, -832, -832, -832, -832, -832,
+     -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
+     -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
+     -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
+     -832, -832, -832, -832, -832, -832, -832, -832, -832, -832,
+
+     -832, -832, -832, -832, -832
+    },
+
+    {
+       27, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+     -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+     -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+     -833, -833, 1086, -833, -833, -833, -833, -833, -833, -833,
+     -833, -833, -833, -833, -833, -833, -833, -833, -833, -833,
+     -833, -833, -833, -833, -833, -833, -833, 1086, -833, -833,
+     -833, -833, -833, -833, -833
+    },
+
+    {
+       27, -834, -834, -834, -834, -834, -834, -834, -834, -834,
+     -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
+
+     -834, -834, -834, -834, -834, -834, -834, -834, 1087, -834,
+     -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
+     -834, -834, -834, -834, -834, -834, -834, -834, -834, -834,
+     -834, -834, -834, 1087, -834, -834, -834, -834, -834, -834,
+     -834, -834, -834, -834, -834
+    },
+
+    {
+       27, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, 1088, -835, -835, -835, -835,
+     -835, -835, -835, -835, -835, -835, -835, -835, -835, -835,
+     -835, -835, -835, 1089, -835, -835, -835, -835, -835, -835,
+     -835, 1088, -835, -835, -835, -835, -835, -835, -835, -835,
+
+     -835, -835, -835, -835, -835, -835, -835, -835, 1089, -835,
+     -835, -835, -835, -835, -835
+    },
+
+    {
+       27, -836, -836, -836, -836, -836, -836, -836, -836, -836,
+     -836, -836, -836, 1090, -836, -836, -836, -836, -836, -836,
+     -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
+     -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
+     -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
+     -836, -836, -836, -836, -836, -836, -836, -836, -836, -836,
+     -836, -836, -836, -836, -836
+    },
+
+    {
+       27, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, 1091, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, -837, -837, -837,
+     -837, -837, -837, -837, -837, -837, -837, 1091, -837, -837,
+     -837, -837, -837, -837, -837
+    },
+
+    {
+       27, -838, -838, -838, -838, -838, -838, -838, -838, 1092,
+     -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
+     -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
+     -838, -838, -838, -838, -838, -838, -838, -838, -838, 1093,
+
+     -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
+     -838, -838, -838, -838, -838, -838, -838, -838, -838, -838,
+     -838, -838, -838, -838, -838
+    },
+
+    {
+       27, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, 1094, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, -839, -839, -839, -839,
+     -839, -839, -839, -839, -839, -839, 1094, -839, -839, -839,
+     -839, -839, -839, -839, -839
+
+    },
+
+    {
+       27, -840, -840, -840, -840, -840, -840, -840, -840, -840,
+     -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
+     -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
+     -840, -840, -840, -840, -840, -840, 1095, -840, -840, -840,
+     -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
+     -840, -840, -840, -840, -840, -840, -840, -840, -840, -840,
+     -840, 1095, -840, -840, -840
+    },
+
+    {
+       27, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, 1096, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841, -841, -841, -841, -841, -841,
+     -841, -841, -841, -841, -841
+    },
+
+    {
+       27, -842, -842, -842, -842, -842, -842, -842, -842, -842,
+     -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
+     -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
+     -842, -842, 1097, -842, -842, -842, -842, -842, -842, -842,
+     -842, -842, -842, -842, -842, -842, -842, -842, -842, -842,
+     -842, -842, -842, -842, -842, -842, -842, 1097, -842, -842,
+
+     -842, -842, -842, -842, -842
+    },
+
+    {
+       27, -843, 1098, 1098, -843, -843, -843, -843, -843, -843,
+     -843, -843, 1099, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843, -843, -843, -843, -843, -843,
+     -843, -843, -843, -843, -843
+    },
+
+    {
+       27, -844, -844, -844, -844, -844, -844, -844, -844, -844,
+     -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
+
+     -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
+     -844, -844, -844, 1100, -844, -844, -844, -844, -844, -844,
+     -844, -844, -844, -844, -844, -844, -844, -844, -844, -844,
+     -844, -844, -844, -844, -844, -844, -844, -844, 1100, -844,
+     -844, -844, -844, -844, -844
+    },
+
+    {
+       27, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, 1101, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845, -845, -845, -845, -845, -845,
+
+     -845, -845, -845, 1101, -845, -845, -845, -845, -845, -845,
+     -845, -845, -845, -845, -845
+    },
+
+    {
+       27, -846, -846, -846, -846, -846, -846, -846, -846, -846,
+     -846, -846, -846, -846, -846, -846, 1102, -846, -846, -846,
+     -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
+     -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
+     -846, -846, 1102, -846, -846, -846, -846, -846, -846, -846,
+     -846, -846, -846, -846, -846, -846, -846, -846, -846, -846,
+     -846, -846, -846, -846, -846
+    },
+
+    {
+       27, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+
+     -847, -847, -847, -847, -847, 1103, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, 1103, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847, -847, -847, -847, -847, -847,
+     -847, -847, -847, -847, -847
+    },
+
+    {
+       27, -848, -848, -848, -848, -848, -848, -848, -848, -848,
+     -848, -848, -848, -848, -848, -848, -848, -848, -848, 1104,
+     -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
+     -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
+
+     -848, -848, -848, -848, -848, 1104, -848, -848, -848, -848,
+     -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
+     -848, -848, -848, -848, -848
+    },
+
+    {
+       27, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, 1105, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, -849, -849,
+     -849, -849, -849, -849, -849, -849, -849, -849, 1105, -849,
+     -849, -849, -849, -849, -849
+
+    },
+
+    {
+       27, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+     -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+     -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+     -850, -850, 1106, -850, -850, -850, -850, -850, -850, -850,
+     -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+     -850, -850, -850, -850, -850, -850, -850, 1106, -850, -850,
+     -850, -850, -850, -850, -850
+    },
+
+    {
+       27, -851, -851, -851, -851, -851, -851, -851, -851, 1107,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, 1108,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851, -851, -851, -851, -851, -851,
+     -851, -851, -851, -851, -851
+    },
+
+    {
+       27, -852, -852, -852, -852, -852, -852, -852, -852, -852,
+     -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
+     -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
+     -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
+     -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
+     -852, -852, -852, -852, -852, -852, -852, -852, -852, -852,
+
+     -852, -852, -852, -852, -852
+    },
+
+    {
+       27, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, 1109, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, 1109, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853, -853, -853, -853, -853, -853,
+     -853, -853, -853, -853, -853
+    },
+
+    {
+       27, -854, -854, -854, -854, -854, -854, -854, -854, -854,
+     -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
+
+     -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
+     -854, -854, -854, -854, -854, -854, -854, -854, -854, 1110,
+     -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
+     -854, -854, -854, -854, -854, -854, -854, -854, -854, -854,
+     -854, -854, -854, -854, -854
+    },
+
+    {
+       27, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, 1111, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+
+     -855, -855, -855, -855, -855, -855, -855, -855, -855, -855,
+     -855, -855, -855, -855, -855
+    },
+
+    {
+       27, -856, -856, -856, -856, -856, -856, -856, -856, -856,
+     -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
+     -856, -856, -856, -856, -856, -856, -856, -856, 1112, -856,
+     -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
+     -856, -856, -856, -856, -856, -856, -856, -856, -856, -856,
+     -856, -856, -856, 1112, -856, -856, -856, -856, -856, -856,
+     -856, -856, -856, -856, -856
+    },
+
+    {
+       27, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+
+     -857, -857, -857, -857, -857, -857, -857, -857, 1113, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, 1113, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857, -857, -857, -857, -857, -857,
+     -857, -857, -857, -857, -857
+    },
+
+    {
+       27, -858, -858, -858, -858, -858, -858, -858, -858, -858,
+     -858, -858, -858, 1114, -858, -858, -858, -858, -858, -858,
+     -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
+     -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
+
+     -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
+     -858, -858, -858, -858, -858, -858, -858, -858, -858, -858,
+     -858, -858, -858, -858, -858
+    },
+
+    {
+       27, -859, -859, -859, -859, -859, -859, -859, -859, -859,
+     -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
+     -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
+     -859, -859, 1115, -859, -859, -859, -859, -859, -859, -859,
+     -859, -859, -859, -859, -859, -859, -859, -859, -859, -859,
+     -859, -859, -859, -859, -859, -859, -859, 1115, -859, -859,
+     -859, -859, -859, -859, -859
+
+    },
+
+    {
+       27, -860, -860, -860, -860, -860, -860, -860, -860, -860,
+     -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
+     -860, -860, -860, -860, -860, -860, -860, 1116, -860, -860,
+     -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
+     -860, -860, -860, -860, -860, -860, -860, -860, -860, -860,
+     -860, -860, 1116, -860, -860, -860, -860, -860, -860, -860,
+     -860, -860, -860, -860, -860
+    },
+
+    {
+       27, -861, -861, -861, -861, -861, -861, -861, -861, -861,
+     -861, -861, -861, 1117, -861, -861, -861, -861, -861, -861,
+     -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
+
+     -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
+     -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
+     -861, -861, -861, -861, -861, -861, -861, -861, -861, -861,
+     -861, -861, -861, -861, -861
+    },
+
+    {
+       27, -862, -862, -862, -862, -862, -862, -862, -862, -862,
+     -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
+     -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
+     -862, -862, 1118, -862, -862, -862, -862, -862, -862, -862,
+     -862, -862, -862, -862, -862, -862, -862, -862, -862, -862,
+     -862, -862, -862, -862, -862, -862, -862, 1118, -862, -862,
+
+     -862, -862, -862, -862, -862
+    },
+
+    {
+       27, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+     -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+     -863, -863, -863, -863, -863, -863, -863, -863, 1119, -863,
+     -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+     -863, -863, -863, -863, -863, -863, -863, -863, -863, -863,
+     -863, -863, -863, 1119, -863, -863, -863, -863, -863, -863,
+     -863, -863, -863, -863, -863
+    },
+
+    {
+       27, -864, -864, -864, -864, -864, -864, -864, -864, -864,
+     -864, -864, -864, -864, -864, 1120, -864, -864, -864, -864,
+
+     -864, -864, -864, -864, -864, -864, -864, -864, -864, -864,
+     -864, -864, -864, 1121, -864, -864, -864, -864, -864, -864,
+     -864, 1120, -864, -864, -864, -864, -864, -864, -864, -864,
+     -864, -864, -864, -864, -864, -864, -864, -864, 1121, -864,
+     -864, -864, -864, -864, -864
+    },
+
+    {
+       27, -865, -865, -865, -865, -865, -865, -865, -865, -865,
+     -865, -865, -865, 1122, -865, -865, -865, -865, -865, -865,
+     -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
+     -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
+     -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
+
+     -865, -865, -865, -865, -865, -865, -865, -865, -865, -865,
+     -865, -865, -865, -865, -865
+    },
+
+    {
+       27, -866, -866, -866, -866, -866, -866, -866, -866, -866,
+     -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
+     -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
+     -866, -866, 1123, -866, -866, -866, -866, -866, -866, -866,
+     -866, -866, -866, -866, -866, -866, -866, -866, -866, -866,
+     -866, -866, -866, -866, -866, -866, -866, 1123, -866, -866,
+     -866, -866, -866, -866, -866
+    },
+
+    {
+       27, -867, -867, -867, -867, -867, -867, -867, -867, 1124,
+
+     -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
+     -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
+     -867, -867, -867, -867, -867, -867, -867, -867, -867, 1125,
+     -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
+     -867, -867, -867, -867, -867, -867, -867, -867, -867, -867,
+     -867, -867, -867, -867, -867
+    },
+
+    {
+       27, -868, -868, -868, -868, -868, -868, -868, -868, -868,
+     -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
+     -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
+     -868, 1126, -868, -868, -868, -868, -868, -868, -868, -868,
+
+     -868, -868, -868, -868, -868, -868, -868, -868, -868, -868,
+     -868, -868, -868, -868, -868, -868, 1126, -868, -868, -868,
+     -868, -868, -868, -868, -868
+    },
+
+    {
+       27, -869, -869, -869, -869, -869, -869, -869, -869, -869,
+     -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
+     -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
+     -869, -869, -869, -869, -869, -869, 1127, -869, -869, -869,
+     -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
+     -869, -869, -869, -869, -869, -869, -869, -869, -869, -869,
+     -869, 1127, -869, -869, -869
+
+    },
+
+    {
+       27, -870, -870, -870, -870, -870, -870, -870, -870, -870,
+     -870, -870, -870, 1128, -870, -870, -870, -870, -870, -870,
+     -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
+     -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
+     -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
+     -870, -870, -870, -870, -870, -870, -870, -870, -870, -870,
+     -870, -870, -870, -870, -870
+    },
+
+    {
+       27, -871, -871, -871, -871, -871, -871, -871, -871, -871,
+     -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
+     -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
+
+     -871, -871, 1129, -871, -871, -871, -871, -871, -871, -871,
+     -871, -871, -871, -871, -871, -871, -871, -871, -871, -871,
+     -871, -871, -871, -871, -871, -871, -871, 1129, -871, -871,
+     -871, -871, -871, -871, -871
+    },
+
+    {
+       27, -872, 1130, 1130, -872, -872, -872, -872, -872, -872,
+     -872, -872, 1131, -872, -872, -872, -872, -872, -872, -872,
+     -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
+     -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
+     -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
+     -872, -872, -872, -872, -872, -872, -872, -872, -872, -872,
+
+     -872, -872, -872, -872, -872
+    },
+
+    {
+       27, -873, -873, -873, -873, -873, -873, -873, -873, -873,
+     -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
+     -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
+     -873, -873, -873, 1132, -873, -873, -873, -873, -873, -873,
+     -873, -873, -873, -873, -873, -873, -873, -873, -873, -873,
+     -873, -873, -873, -873, -873, -873, -873, -873, 1132, -873,
+     -873, -873, -873, -873, -873
+    },
+
+    {
+       27, -874, -874, -874, -874, -874, -874, -874, -874, -874,
+     -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
+
+     -874, -874, -874, -874, -874, -874, -874, -874, 1133, -874,
+     -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
+     -874, -874, -874, -874, -874, -874, -874, -874, -874, -874,
+     -874, -874, -874, 1133, -874, -874, -874, -874, -874, -874,
+     -874, -874, -874, -874, -874
+    },
+
+    {
+       27, -875, -875, -875, -875, -875, -875, -875, -875, -875,
+     -875, -875, -875, -875, -875, -875, 1134, -875, -875, -875,
+     -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
+     -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
+     -875, -875, 1134, -875, -875, -875, -875, -875, -875, -875,
+
+     -875, -875, -875, -875, -875, -875, -875, -875, -875, -875,
+     -875, -875, -875, -875, -875
+    },
+
+    {
+       27, -876, -876, -876, -876, -876, -876, -876, -876, -876,
+     -876, -876, -876, -876, -876, 1135, -876, -876, -876, -876,
+     -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
+     -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
+     -876, 1135, -876, -876, -876, -876, -876, -876, -876, -876,
+     -876, -876, -876, -876, -876, -876, -876, -876, -876, -876,
+     -876, -876, -876, -876, -876
+    },
+
+    {
+       27, -877, -877, -877, -877, -877, -877, -877, -877, -877,
+
+     -877, -877, -877, -877, -877, -877, -877, -877, -877, 1136,
+     -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
+     -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
+     -877, -877, -877, -877, -877, 1136, -877, -877, -877, -877,
+     -877, -877, -877, -877, -877, -877, -877, -877, -877, -877,
+     -877, -877, -877, -877, -877
+    },
+
+    {
+       27, -878, -878, -878, -878, -878, -878, -878, -878, -878,
+     -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
+     -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
+     -878, -878, -878, 1137, -878, -878, -878, -878, -878, -878,
+
+     -878, -878, -878, -878, -878, -878, -878, -878, -878, -878,
+     -878, -878, -878, -878, -878, -878, -878, -878, 1137, -878,
+     -878, -878, -878, -878, -878
+    },
+
+    {
+       27, -879, -879, -879, -879, -879, -879, -879, -879, -879,
+     -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
+     -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
+     -879, -879, 1138, -879, -879, -879, -879, -879, -879, -879,
+     -879, -879, -879, -879, -879, -879, -879, -879, -879, -879,
+     -879, -879, -879, -879, -879, -879, -879, 1138, -879, -879,
+     -879, -879, -879, -879, -879
+
+    },
+
+    {
+       27, -880, -880, -880, -880, -880, -880, -880, -880, 1139,
+     -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
+     -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
+     -880, -880, -880, -880, -880, -880, -880, -880, -880, 1140,
+     -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
+     -880, -880, -880, -880, -880, -880, -880, -880, -880, -880,
+     -880, -880, -880, -880, -880
+    },
+
+    {
+       27, -881, -881, -881, -881, -881, -881, -881, -881, -881,
+     -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
+     -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
+
+     -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
+     -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
+     -881, -881, -881, -881, -881, -881, -881, -881, -881, -881,
+     -881, -881, -881, -881, -881
+    },
+
+    {
+       27, -882, -882, -882, -882, -882, -882, -882, -882, -882,
+     -882, -882, -882, -882, -882, -882, -882, -882, 1141, -882,
+     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
+     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
+     -882, -882, -882, -882, 1141, -882, -882, -882, -882, -882,
+     -882, -882, -882, -882, -882, -882, -882, -882, -882, -882,
+
+     -882, -882, -882, -882, -882
+    },
+
+    {
+       27, -883, -883, -883, -883, -883, -883, -883, -883, -883,
+     -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
+     -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
+     -883, -883, -883, -883, -883, -883, -883, -883, -883, 1142,
+     -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
+     -883, -883, -883, -883, -883, -883, -883, -883, -883, -883,
+     -883, -883, -883, -883, -883
+    },
+
+    {
+       27, -884, -884, -884, -884, -884, -884, -884, -884, -884,
+     -884, -884, -884, 1143, -884, -884, -884, -884, -884, -884,
+
+     -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
+     -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
+     -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
+     -884, -884, -884, -884, -884, -884, -884, -884, -884, -884,
+     -884, -884, -884, -884, -884
+    },
+
+    {
+       27, -885, -885, -885, -885, -885, -885, -885, -885, -885,
+     -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
+     -885, -885, -885, -885, -885, -885, -885, -885, 1144, -885,
+     -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
+     -885, -885, -885, -885, -885, -885, -885, -885, -885, -885,
+
+     -885, -885, -885, 1144, -885, -885, -885, -885, -885, -885,
+     -885, -885, -885, -885, -885
+    },
+
+    {
+       27, -886, -886, -886, -886, -886, -886, -886, -886, -886,
+     -886, -886, -886, -886, -886, -886, -886, -886, 1145, -886,
+     -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
+     -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
+     -886, -886, -886, -886, 1145, -886, -886, -886, -886, -886,
+     -886, -886, -886, -886, -886, -886, -886, -886, -886, -886,
+     -886, -886, -886, -886, -886
+    },
+
+    {
+       27, -887, -887, -887, -887, -887, -887, -887, -887, -887,
+
+     -887, -887, -887, 1146, -887, -887, -887, -887, -887, -887,
+     -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
+     -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
+     -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
+     -887, -887, -887, -887, -887, -887, -887, -887, -887, -887,
+     -887, -887, -887, -887, -887
+    },
+
+    {
+       27, -888, -888, -888, -888, -888, -888, -888, -888, -888,
+     -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
+     -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
+     -888, -888, 1147, -888, -888, -888, -888, -888, -888, -888,
+
+     -888, -888, -888, -888, -888, -888, -888, -888, -888, -888,
+     -888, -888, -888, -888, -888, -888, -888, 1147, -888, -888,
+     -888, -888, -888, -888, -888
+    },
+
+    {
+       27, -889, -889, -889, -889, -889, -889, -889, -889, -889,
+     -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
+     -889, -889, -889, -889, -889, -889, -889, 1148, -889, -889,
+     -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
+     -889, -889, -889, -889, -889, -889, -889, -889, -889, -889,
+     -889, -889, 1148, -889, -889, -889, -889, -889, -889, -889,
+     -889, -889, -889, -889, -889
+
+    },
+
+    {
+       27, -890, -890, -890, -890, -890, -890, -890, -890, -890,
+     -890, -890, -890, 1149, -890, -890, -890, -890, -890, -890,
+     -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
+     -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
+     -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
+     -890, -890, -890, -890, -890, -890, -890, -890, -890, -890,
+     -890, -890, -890, -890, -890
+    },
+
+    {
+       27, -891, -891, -891, -891, -891, -891, -891, -891, -891,
+     -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
+     -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
+
+     -891, -891, 1150, -891, -891, -891, -891, -891, -891, -891,
+     -891, -891, -891, -891, -891, -891, -891, -891, -891, -891,
+     -891, -891, -891, -891, -891, -891, -891, 1150, -891, -891,
+     -891, -891, -891, -891, -891
+    },
+
+    {
+       27, -892, -892, -892, -892, -892, -892, -892, -892, -892,
+     -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
+     -892, -892, -892, -892, -892, -892, -892, -892, 1151, -892,
+     -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
+     -892, -892, -892, -892, -892, -892, -892, -892, -892, -892,
+     -892, -892, -892, 1151, -892, -892, -892, -892, -892, -892,
+
+     -892, -892, -892, -892, -892
+    },
+
+    {
+       27, -893, -893, -893, -893, -893, -893, -893, -893, -893,
+     -893, -893, -893, -893, -893, 1152, -893, -893, -893, -893,
+     -893, -893, -893, -893, -893, -893, -893, -893, -893, -893,
+     -893, -893, -893, 1153, -893, -893, -893, -893, -893, -893,
+     -893, 1152, -893, -893, -893, -893, -893, -893, -893, -893,
+     -893, -893, -893, -893, -893, -893, -893, -893, 1153, -893,
+     -893, -893, -893, -893, -893
+    },
+
+    {
+       27, -894, -894, -894, -894, -894, -894, -894, -894, -894,
+     -894, -894, -894, 1154, -894, -894, -894, -894, -894, -894,
+
+     -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
+     -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
+     -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
+     -894, -894, -894, -894, -894, -894, -894, -894, -894, -894,
+     -894, -894, -894, -894, -894
+    },
+
+    {
+       27, -895, -895, -895, -895, -895, -895, -895, -895, -895,
+     -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
+     -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
+     -895, -895, 1155, -895, -895, -895, -895, -895, -895, -895,
+     -895, -895, -895, -895, -895, -895, -895, -895, -895, -895,
+
+     -895, -895, -895, -895, -895, -895, -895, 1155, -895, -895,
+     -895, -895, -895, -895, -895
+    },
+
+    {
+       27, -896, -896, -896, -896, -896, -896, -896, -896, 1156,
+     -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+     -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+     -896, -896, -896, -896, -896, -896, -896, -896, -896, 1157,
+     -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+     -896, -896, -896, -896, -896, -896, -896, -896, -896, -896,
+     -896, -896, -896, -896, -896
+    },
+
+    {
+       27, -897, -897, -897, -897, -897, -897, -897, -897, -897,
+
+     -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
+     -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
+     -897, 1158, -897, -897, -897, -897, -897, -897, -897, -897,
+     -897, -897, -897, -897, -897, -897, -897, -897, -897, -897,
+     -897, -897, -897, -897, -897, -897, 1158, -897, -897, -897,
+     -897, -897, -897, -897, -897
+    },
+
+    {
+       27, -898, -898, -898, -898, -898, -898, -898, -898, -898,
+     -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
+     -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
+     -898, -898, -898, -898, -898, -898, 1159, -898, -898, -898,
+
+     -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
+     -898, -898, -898, -898, -898, -898, -898, -898, -898, -898,
+     -898, 1159, -898, -898, -898
+    },
+
+    {
+       27, -899, -899, -899, -899, -899, -899, -899, -899, -899,
+     -899, -899, -899, 1160, -899, -899, -899, -899, -899, -899,
+     -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
+     -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
+     -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
+     -899, -899, -899, -899, -899, -899, -899, -899, -899, -899,
+     -899, -899, -899, -899, -899
+
+    },
+
+    {
+       27, -900, -900, -900, -900, -900, -900, -900, -900, -900,
+     -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
+     -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
+     -900, -900, 1161, -900, -900, -900, -900, -900, -900, -900,
+     -900, -900, -900, -900, -900, -900, -900, -900, -900, -900,
+     -900, -900, -900, -900, -900, -900, -900, 1161, -900, -900,
+     -900, -900, -900, -900, -900
+    },
+
+    {
+       27, -901, 1162, 1162, -901, -901, -901, -901, -901, -901,
+     -901, -901, 1163, -901, -901, -901, -901, -901, -901, -901,
+     -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
+
+     -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
+     -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
+     -901, -901, -901, -901, -901, -901, -901, -901, -901, -901,
+     -901, -901, -901, -901, -901
+    },
+
+    {
+       27, -902, -902, -902, -902, -902, -902, -902, -902, -902,
+     -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
+     -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
+     -902, -902, -902, 1164, -902, -902, -902, -902, -902, -902,
+     -902, -902, -902, -902, -902, -902, -902, -902, -902, -902,
+     -902, -902, -902, -902, -902, -902, -902, -902, 1164, -902,
+
+     -902, -902, -902, -902, -902
+    },
+
+    {
+       27, -903, -903, -903, -903, -903, -903, -903, -903, -903,
+     -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
+     -903, -903, -903, -903, -903, -903, -903, -903, 1165, -903,
+     -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
+     -903, -903, -903, -903, -903, -903, -903, -903, -903, -903,
+     -903, -903, -903, 1165, -903, -903, -903, -903, -903, -903,
+     -903, -903, -903, -903, -903
+    },
+
+    {
+       27, -904, -904, -904, -904, -904, -904, -904, -904, -904,
+     -904, -904, -904, -904, -904, -904, 1166, -904, -904, -904,
+
+     -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
+     -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
+     -904, -904, 1166, -904, -904, -904, -904, -904, -904, -904,
+     -904, -904, -904, -904, -904, -904, -904, -904, -904, -904,
+     -904, -904, -904, -904, -904
+    },
+
+    {
+       27, -905, -905, -905, -905, -905, -905, -905, -905, -905,
+     -905, -905, -905, -905, -905, 1167, -905, -905, -905, -905,
+     -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
+     -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
+     -905, 1167, -905, -905, -905, -905, -905, -905, -905, -905,
+
+     -905, -905, -905, -905, -905, -905, -905, -905, -905, -905,
+     -905, -905, -905, -905, -905
+    },
+
+    {
+       27, -906, -906, -906, -906, -906, -906, -906, -906, -906,
+     -906, -906, -906, -906, -906, -906, -906, -906, -906, 1168,
+     -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
+     -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
+     -906, -906, -906, -906, -906, 1168, -906, -906, -906, -906,
+     -906, -906, -906, -906, -906, -906, -906, -906, -906, -906,
+     -906, -906, -906, -906, -906
+    },
+
+    {
+       27, -907, -907, -907, -907, -907, -907, -907, -907, -907,
+
+     -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
+     -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
+     -907, -907, -907, 1169, -907, -907, -907, -907, -907, -907,
+     -907, -907, -907, -907, -907, -907, -907, -907, -907, -907,
+     -907, -907, -907, -907, -907, -907, -907, -907, 1169, -907,
+     -907, -907, -907, -907, -907
+    },
+
+    {
+       27, -908, -908, -908, -908, -908, -908, -908, -908, -908,
+     -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
+     -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
+     -908, -908, 1170, -908, -908, -908, -908, -908, -908, -908,
+
+     -908, -908, -908, -908, -908, -908, -908, -908, -908, -908,
+     -908, -908, -908, -908, -908, -908, -908, 1170, -908, -908,
+     -908, -908, -908, -908, -908
+    },
+
+    {
+       27, -909, -909, -909, -909, -909, -909, -909, -909, 1171,
+     -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
+     -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
+     -909, -909, -909, -909, -909, -909, -909, -909, -909, 1172,
+     -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
+     -909, -909, -909, -909, -909, -909, -909, -909, -909, -909,
+     -909, -909, -909, -909, -909
+
+    },
+
+    {
+       27, -910, -910, -910, -910, -910, -910, -910, -910, -910,
+     -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
+     -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
+     -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
+     -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
+     -910, -910, -910, -910, -910, -910, -910, -910, -910, -910,
+     -910, -910, -910, -910, -910
+    },
+
+    {
+       27, -911, -911, -911, -911, -911, -911, -911, -911, -911,
+     -911, -911, -911, -911, -911, -911, -911, -911, 1173, -911,
+     -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
+
+     -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
+     -911, -911, -911, -911, 1173, -911, -911, -911, -911, -911,
+     -911, -911, -911, -911, -911, -911, -911, -911, -911, -911,
+     -911, -911, -911, -911, -911
+    },
+
+    {
+       27, -912, -912, -912, -912, -912, -912, -912, -912, -912,
+     -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
+     -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
+     -912, -912, -912, 1174, -912, -912, -912, -912, -912, -912,
+     -912, -912, -912, -912, -912, -912, -912, -912, -912, -912,
+     -912, -912, -912, -912, -912, -912, -912, -912, 1174, -912,
+
+     -912, -912, -912, -912, -912
+    },
+
+    {
+       27, -913, -913, -913, -913, -913, -913, -913, -913, -913,
+     -913, -913, -913, 1175, -913, -913, -913, -913, -913, -913,
+     -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
+     -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
+     -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
+     -913, -913, -913, -913, -913, -913, -913, -913, -913, -913,
+     -913, -913, -913, -913, -913
+    },
+
+    {
+       27, -914, -914, -914, -914, -914, -914, -914, -914, -914,
+     -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
+
+     -914, -914, -914, -914, -914, -914, -914, -914, 1176, -914,
+     -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
+     -914, -914, -914, -914, -914, -914, -914, -914, -914, -914,
+     -914, -914, -914, 1176, -914, -914, -914, -914, -914, -914,
+     -914, -914, -914, -914, -914
+    },
+
+    {
+       27, -915, -915, -915, -915, -915, -915, -915, -915, -915,
+     -915, -915, -915, -915, -915, -915, -915, -915, 1177, -915,
+     -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
+     -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
+     -915, -915, -915, -915, 1177, -915, -915, -915, -915, -915,
+
+     -915, -915, -915, -915, -915, -915, -915, -915, -915, -915,
+     -915, -915, -915, -915, -915
+    },
+
+    {
+       27, -916, -916, -916, -916, -916, -916, -916, -916, -916,
+     -916, -916, -916, 1178, -916, -916, -916, -916, -916, -916,
+     -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
+     -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
+     -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
+     -916, -916, -916, -916, -916, -916, -916, -916, -916, -916,
+     -916, -916, -916, -916, -916
+    },
+
+    {
+       27, -917, -917, -917, -917, -917, -917, -917, -917, -917,
+
+     -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
+     -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
+     -917, -917, 1179, -917, -917, -917, -917, -917, -917, -917,
+     -917, -917, -917, -917, -917, -917, -917, -917, -917, -917,
+     -917, -917, -917, -917, -917, -917, -917, 1179, -917, -917,
+     -917, -917, -917, -917, -917
+    },
+
+    {
+       27, -918, -918, -918, -918, -918, -918, -918, -918, -918,
+     -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
+     -918, -918, -918, -918, -918, -918, -918, 1180, -918, -918,
+     -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
+
+     -918, -918, -918, -918, -918, -918, -918, -918, -918, -918,
+     -918, -918, 1180, -918, -918, -918, -918, -918, -918, -918,
+     -918, -918, -918, -918, -918
+    },
+
+    {
+       27, -919, -919, -919, -919, -919, -919, -919, -919, -919,
+     -919, -919, -919, 1181, -919, -919, -919, -919, -919, -919,
+     -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
+     -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
+     -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
+     -919, -919, -919, -919, -919, -919, -919, -919, -919, -919,
+     -919, -919, -919, -919, -919
+
+    },
+
+    {
+       27, -920, -920, -920, -920, -920, -920, -920, -920, -920,
+     -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
+     -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
+     -920, -920, 1182, -920, -920, -920, -920, -920, -920, -920,
+     -920, -920, -920, -920, -920, -920, -920, -920, -920, -920,
+     -920, -920, -920, -920, -920, -920, -920, 1182, -920, -920,
+     -920, -920, -920, -920, -920
+    },
+
+    {
+       27, -921, -921, -921, -921, -921, -921, -921, -921, -921,
+     -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
+     -921, -921, -921, -921, -921, -921, -921, -921, 1183, -921,
+
+     -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
+     -921, -921, -921, -921, -921, -921, -921, -921, -921, -921,
+     -921, -921, -921, 1183, -921, -921, -921, -921, -921, -921,
+     -921, -921, -921, -921, -921
+    },
+
+    {
+       27, -922, -922, -922, -922, -922, -922, -922, -922, -922,
+     -922, -922, -922, -922, -922, 1184, -922, -922, -922, -922,
+     -922, -922, -922, -922, -922, -922, -922, -922, -922, -922,
+     -922, -922, -922, 1185, -922, -922, -922, -922, -922, -922,
+     -922, 1184, -922, -922, -922, -922, -922, -922, -922, -922,
+     -922, -922, -922, -922, -922, -922, -922, -922, 1185, -922,
+
+     -922, -922, -922, -922, -922
+    },
+
+    {
+       27, -923, -923, -923, -923, -923, -923, -923, -923, -923,
+     -923, -923, -923, 1186, -923, -923, -923, -923, -923, -923,
+     -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
+     -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
+     -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
+     -923, -923, -923, -923, -923, -923, -923, -923, -923, -923,
+     -923, -923, -923, -923, -923
+    },
+
+    {
+       27, -924, -924, -924, -924, -924, -924, -924, -924, -924,
+     -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
+
+     -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
+     -924, -924, 1187, -924, -924, -924, -924, -924, -924, -924,
+     -924, -924, -924, -924, -924, -924, -924, -924, -924, -924,
+     -924, -924, -924, -924, -924, -924, -924, 1187, -924, -924,
+     -924, -924, -924, -924, -924
+    },
+
+    {
+       27, -925, -925, -925, -925, -925, -925, -925, -925, 1188,
+     -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
+     -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
+     -925, -925, -925, -925, -925, -925, -925, -925, -925, 1189,
+     -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
+
+     -925, -925, -925, -925, -925, -925, -925, -925, -925, -925,
+     -925, -925, -925, -925, -925
+    },
+
+    {
+       27, -926, -926, -926, -926, -926, -926, -926, -926, -926,
+     -926, -926, -926, -926, -926, -926, -926, -926, -926, -926,
+     -926, -926, -926, -926, -926, -926, -926, -926, -926, -926,
+     -926, 1190, -926, -926, -926, -926, -926, -926, -926, -926,
+     -926, -926, -926, -926, -926, -926, -926, -926, -926, -926,
+     -926, -926, -926, -926, -926, -926, 1190, -926, -926, -926,
+     -926, -926, -926, -926, -926
+    },
+
+    {
+       27, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, 1191, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, -927, -927, -927, -927, -927, -927, -927, -927, -927,
+     -927, 1191, -927, -927, -927
+    },
+
+    {
+       27, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, 1192, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928, -928, -928, -928, -928, -928,
+     -928, -928, -928, -928, -928
+    },
+
+    {
+       27, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, 1193, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, -929, -929, -929,
+     -929, -929, -929, -929, -929, -929, -929, 1193, -929, -929,
+     -929, -929, -929, -929, -929
+
+    },
+
+    {
+       27, -930, 1194, 1194, -930, -930, -930, -930, -930, -930,
+     -930, -930, 1195, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930, -930, -930, -930, -930, -930,
+     -930, -930, -930, -930, -930
+    },
+
+    {
+       27, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+
+     -931, -931, -931, 1196, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, -931, -931,
+     -931, -931, -931, -931, -931, -931, -931, -931, 1196, -931,
+     -931, -931, -931, -931, -931
+    },
+
+    {
+       27, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, 1197, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, -932, -932, -932, -932, -932, -932, -932,
+     -932, -932, -932, 1197, -932, -932, -932, -932, -932, -932,
+
+     -932, -932, -932, -932, -932
+    },
+
+    {
+       27, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, 1198, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, 1198, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933, -933, -933, -933, -933, -933,
+     -933, -933, -933, -933, -933
+    },
+
+    {
+       27, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, 1199, -934, -934, -934, -934,
+
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, 1199, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934, -934, -934, -934, -934, -934,
+     -934, -934, -934, -934, -934
+    },
+
+    {
+       27, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, 1200,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935, 1200, -935, -935, -935, -935,
+
+     -935, -935, -935, -935, -935, -935, -935, -935, -935, -935,
+     -935, -935, -935, -935, -935
+    },
+
+    {
+       27, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, 1201, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, -936, -936,
+     -936, -936, -936, -936, -936, -936, -936, -936, 1201, -936,
+     -936, -936, -936, -936, -936
+    },
+
+    {
+       27, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, 1202, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, -937, -937, -937,
+     -937, -937, -937, -937, -937, -937, -937, 1202, -937, -937,
+     -937, -937, -937, -937, -937
+    },
+
+    {
+       27, -938, -938, -938, -938, -938, -938, -938, -938, 1203,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, 1204,
+
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938, -938, -938, -938, -938, -938,
+     -938, -938, -938, -938, -938
+    },
+
+    {
+       27, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939, -939, -939, -939, -939, -939,
+     -939, -939, -939, -939, -939
+
+    },
+
+    {
+       27, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, 1205, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, 1205, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940, -940, -940, -940, -940, -940,
+     -940, -940, -940, -940, -940
+    },
+
+    {
+       27, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, 1206, -941, -941, -941, -941, -941, -941, -941,
+
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, 1206, -941,
+     -941, -941, -941, -941, -941, -941, -941, -941, -941, -941,
+     -941, -941, -941, -941, -941
+    },
+
+    {
+       27, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, 1207, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+     -942, -942, -942, -942, -942, -942, -942, -942, -942, -942,
+
+     -942, -942, -942, -942, -942
+    },
+
+    {
+       27, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, 1208, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, 1208, -943, -943, -943, -943, -943, -943,
+     -943, -943, -943, -943, -943
+    },
+
+    {
+       27, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, 1209, -944,
+
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, 1209, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944, -944, -944, -944, -944, -944,
+     -944, -944, -944, -944, -944
+    },
+
+    {
+       27, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, 1210, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+
+     -945, -945, -945, -945, -945, -945, -945, -945, -945, -945,
+     -945, -945, -945, -945, -945
+    },
+
+    {
+       27, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, 1211, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, -946, -946, -946,
+     -946, -946, -946, -946, -946, -946, -946, 1211, -946, -946,
+     -946, -946, -946, -946, -946
+    },
+
+    {
+       27, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, 1212, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, 1212, -947, -947, -947, -947, -947, -947, -947,
+     -947, -947, -947, -947, -947
+    },
+
+    {
+       27, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, 1213, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948, -948, -948, -948, -948, -948,
+     -948, -948, -948, -948, -948
+    },
+
+    {
+       27, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, 1214, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, -949, -949, -949,
+     -949, -949, -949, -949, -949, -949, -949, 1214, -949, -949,
+     -949, -949, -949, -949, -949
+
+    },
+
+    {
+       27, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, 1215, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, 1215, -950, -950, -950, -950, -950, -950,
+     -950, -950, -950, -950, -950
+    },
+
+    {
+       27, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, 1216, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, -951, -951,
+
+     -951, -951, -951, 1217, -951, -951, -951, -951, -951, -951,
+     -951, 1216, -951, -951, -951, -951, -951, -951, -951, -951,
+     -951, -951, -951, -951, -951, -951, -951, -951, 1217, -951,
+     -951, -951, -951, -951, -951
+    },
+
+    {
+       27, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, 1218, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+     -952, -952, -952, -952, -952, -952, -952, -952, -952, -952,
+
+     -952, -952, -952, -952, -952
+    },
+
+    {
+       27, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, 1219, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, -953, -953, -953,
+     -953, -953, -953, -953, -953, -953, -953, 1219, -953, -953,
+     -953, -953, -953, -953, -953
+    },
+
+    {
+       27, -954, -954, -954, -954, -954, -954, -954, -954, 1220,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, 1221,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954, -954, -954, -954, -954, -954,
+     -954, -954, -954, -954, -954
+    },
+
+    {
+       27, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, 1222, -955, -955, -955, -955, -955, -955, -955, -955,
+     -955, -955, -955, -955, -955, -955, -955, -955, -955, -955,
+
+     -955, -955, -955, -955, -955, -955, 1222, -955, -955, -955,
+     -955, -955, -955, -955, -955
+    },
+
+    {
+       27, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, 1223, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, -956, -956, -956, -956, -956, -956, -956, -956, -956,
+     -956, 1223, -956, -956, -956
+    },
+
+    {
+       27, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+
+     -957, -957, -957, 1224, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957, -957, -957, -957, -957, -957,
+     -957, -957, -957, -957, -957
+    },
+
+    {
+       27, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, 1225, -958, -958, -958, -958, -958, -958, -958,
+
+     -958, -958, -958, -958, -958, -958, -958, -958, -958, -958,
+     -958, -958, -958, -958, -958, -958, -958, 1225, -958, -958,
+     -958, -958, -958, -958, -958
+    },
+
+    {
+       27, -959, 1226, 1226, -959, -959, -959, -959, -959, -959,
+     -959, -959, 1227, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959, -959, -959, -959, -959, -959,
+     -959, -959, -959, -959, -959
+
+    },
+
+    {
+       27, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, 1228, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, -960, -960,
+     -960, -960, -960, -960, -960, -960, -960, -960, 1228, -960,
+     -960, -960, -960, -960, -960
+    },
+
+    {
+       27, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, 1229, -961,
+
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, 1229, -961, -961, -961, -961, -961, -961,
+     -961, -961, -961, -961, -961
+    },
+
+    {
+       27, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, 1230, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, 1230, -962, -962, -962, -962, -962, -962, -962,
+     -962, -962, -962, -962, -962, -962, -962, -962, -962, -962,
+
+     -962, -962, -962, -962, -962
+    },
+
+    {
+       27, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, 1231, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, 1231, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963, -963, -963, -963, -963, -963,
+     -963, -963, -963, -963, -963
+    },
+
+    {
+       27, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, 1232,
+
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, 1232, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964, -964, -964, -964, -964, -964,
+     -964, -964, -964, -964, -964
+    },
+
+    {
+       27, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, 1233, -965, -965, -965, -965, -965, -965,
+     -965, -965, -965, -965, -965, -965, -965, -965, -965, -965,
+
+     -965, -965, -965, -965, -965, -965, -965, -965, 1233, -965,
+     -965, -965, -965, -965, -965
+    },
+
+    {
+       27, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, 1234, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, -966, -966, -966,
+     -966, -966, -966, -966, -966, -966, -966, 1234, -966, -966,
+     -966, -966, -966, -966, -966
+    },
+
+    {
+       27, -967, -967, -967, -967, -967, -967, -967, -967, 1235,
+
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, 1236,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967, -967, -967, -967, -967, -967,
+     -967, -967, -967, -967, -967
+    },
+
+    {
+       27, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968, -968, -968, -968, -968, -968,
+     -968, -968, -968, -968, -968
+    },
+
+    {
+       27, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, 1237, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, 1237, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969, -969, -969, -969, -969, -969,
+     -969, -969, -969, -969, -969
+
+    },
+
+    {
+       27, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, 1238, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, -970, -970, -970, -970,
+     -970, -970, -970, -970, -970, -970, 1238, -970, -970, -970,
+     -970, -970, -970, -970, -970
+    },
+
+    {
+       27, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, 1239, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971, -971, -971, -971, -971, -971,
+     -971, -971, -971, -971, -971
+    },
+
+    {
+       27, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, 1240, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, -972, -972, -972, -972, -972, -972, -972,
+     -972, -972, -972, 1240, -972, -972, -972, -972, -972, -972,
+
+     -972, -972, -972, -972, -972
+    },
+
+    {
+       27, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, 1241, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, 1241, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973, -973, -973, -973, -973, -973,
+     -973, -973, -973, -973, -973
+    },
+
+    {
+       27, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, 1242, -974, -974, -974, -974, -974, -974,
+
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974, -974, -974, -974, -974, -974,
+     -974, -974, -974, -974, -974
+    },
+
+    {
+       27, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, 1243, -975, -975, -975, -975, -975, -975, -975,
+     -975, -975, -975, -975, -975, -975, -975, -975, -975, -975,
+
+     -975, -975, -975, -975, -975, -975, -975, 1243, -975, -975,
+     -975, -975, -975, -975, -975
+    },
+
+    {
+       27, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, 1244, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, 1244, -976, -976, -976, -976, -976, -976, -976,
+     -976, -976, -976, -976, -976
+    },
+
+    {
+       27, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+
+     -977, -977, -977, 1245, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977, -977, -977, -977, -977, -977,
+     -977, -977, -977, -977, -977
+    },
+
+    {
+       27, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, 1246, -978, -978, -978, -978, -978, -978, -978,
+
+     -978, -978, -978, -978, -978, -978, -978, -978, -978, -978,
+     -978, -978, -978, -978, -978, -978, -978, 1246, -978, -978,
+     -978, -978, -978, -978, -978
+    },
+
+    {
+       27, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, 1247, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, 1247, -979, -979, -979, -979, -979, -979,
+     -979, -979, -979, -979, -979
+
+    },
+
+    {
+       27, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, 1248, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, 1249, -980, -980, -980, -980, -980, -980,
+     -980, 1248, -980, -980, -980, -980, -980, -980, -980, -980,
+     -980, -980, -980, -980, -980, -980, -980, -980, 1249, -980,
+     -980, -980, -980, -980, -980
+    },
+
+    {
+       27, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, 1250, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981, -981, -981, -981, -981, -981,
+     -981, -981, -981, -981, -981
+    },
+
+    {
+       27, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, 1251, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, -982, -982, -982,
+     -982, -982, -982, -982, -982, -982, -982, 1251, -982, -982,
+
+     -982, -982, -982, -982, -982
+    },
+
+    {
+       27, -983, -983, -983, -983, -983, -983, -983, -983, 1252,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, 1253,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983, -983, -983, -983, -983, -983,
+     -983, -983, -983, -983, -983
+    },
+
+    {
+       27, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, 1254, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, -984, -984, -984, -984,
+     -984, -984, -984, -984, -984, -984, 1254, -984, -984, -984,
+     -984, -984, -984, -984, -984
+    },
+
+    {
+       27, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, 1255, -985, -985, -985,
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+
+     -985, -985, -985, -985, -985, -985, -985, -985, -985, -985,
+     -985, 1255, -985, -985, -985
+    },
+
+    {
+       27, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, 1256, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986, -986, -986, -986, -986, -986,
+     -986, -986, -986, -986, -986
+    },
+
+    {
+       27, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, 1257, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, -987, -987, -987,
+     -987, -987, -987, -987, -987, -987, -987, 1257, -987, -987,
+     -987, -987, -987, -987, -987
+    },
+
+    {
+       27, -988, 1258, 1258, -988, -988, -988, -988, -988, -988,
+     -988, -988, 1259, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988, -988, -988, -988, -988, -988,
+     -988, -988, -988, -988, -988
+    },
+
+    {
+       27, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, 1260, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, -989, -989,
+     -989, -989, -989, -989, -989, -989, -989, -989, 1260, -989,
+     -989, -989, -989, -989, -989
+
+    },
+
+    {
+       27, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, 1261, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, 1261, -990, -990, -990, -990, -990, -990,
+     -990, -990, -990, -990, -990
+    },
+
+    {
+       27, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, 1262, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, 1262, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991, -991, -991, -991, -991, -991,
+     -991, -991, -991, -991, -991
+    },
+
+    {
+       27, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, 1263, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, 1263, -992, -992, -992, -992, -992, -992, -992, -992,
+     -992, -992, -992, -992, -992, -992, -992, -992, -992, -992,
+
+     -992, -992, -992, -992, -992
+    },
+
+    {
+       27, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, 1264,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, 1264, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993, -993, -993, -993, -993, -993,
+     -993, -993, -993, -993, -993
+    },
+
+    {
+       27, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, 1265, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, -994, -994,
+     -994, -994, -994, -994, -994, -994, -994, -994, 1265, -994,
+     -994, -994, -994, -994, -994
+    },
+
+    {
+       27, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, 1266, -995, -995, -995, -995, -995, -995, -995,
+     -995, -995, -995, -995, -995, -995, -995, -995, -995, -995,
+
+     -995, -995, -995, -995, -995, -995, -995, 1266, -995, -995,
+     -995, -995, -995, -995, -995
+    },
+
+    {
+       27, -996, -996, -996, -996, -996, -996, -996, -996, 1267,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, 1268,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996, -996, -996, -996, -996, -996,
+     -996, -996, -996, -996, -996
+    },
+
+    {
+       27, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997, -997, -997, -997, -997, -997,
+     -997, -997, -997, -997, -997
+    },
+
+    {
+       27, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     1269,  178, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998, -998, -998, -998, -998, -998,
+     -998, -998, -998, -998, -998
+    },
+
+    {
+       27, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999,  178, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999, -999, -999, -999, -999, -999,
+     -999, -999, -999, -999, -999
+
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366, 1270,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366, 1270,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366, 1271,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 1271,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 1272,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-1003, 1273, 1273,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003, 1274,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,-1003,
+    -1003,-1003,-1003,-1003,-1003
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184, 1275,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1275,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1276,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184, 1276,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1006, 1277, 1277,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006, 1278,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,-1006,
+    -1006,-1006,-1006,-1006,-1006
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1279,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1279,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1280,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1280,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1281,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1281,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-1010, 1282, 1282,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010, 1283,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,-1010,
+    -1010,-1010,-1010,-1010,-1010
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1284,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1284,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1285,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1285,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1286,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1286,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1287,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1287,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1288,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1288,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184, 1289,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1289,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+
+    -1017,-1017, 1290,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,-1017,
+    -1017,-1017,-1017,-1017,-1017
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184, 1291,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184, 1291,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1292,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1292,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1293,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1293,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1294,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1295,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1295,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1296,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1296,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,-1024,
+    -1024,-1024,-1024,-1024,-1024
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1297,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1298,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1026, 1299, 1299,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026, 1300,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,-1026,
+    -1026,-1026,-1026,-1026,-1026
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1301,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1301,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1028, 1028, 1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028, 1029,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,-1028,
+    -1028,-1028,-1028,-1028,-1028
+    },
+
+    {
+       27,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029, 1302,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029, 1302,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,-1029,
+    -1029,-1029,-1029,-1029,-1029
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1303,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1303,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1304,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1304,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1305,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1305,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1306,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1306,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1307,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1308,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1309,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1310,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1311,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1312,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184, 1313,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1313,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1314,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1315,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1315,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040, 1316,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040, 1316,-1040,-1040,-1040,-1040,-1040,-1040,-1040,
+    -1040,-1040,-1040,-1040,-1040
+    },
+
+    {
+       27,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,-1041,
+    -1041,-1041,-1041,-1041,-1041
+    },
+
+    {
+       27,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042, 1317,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+    -1042,-1042, 1317,-1042,-1042,-1042,-1042,-1042,-1042,-1042,
+
+    -1042,-1042,-1042,-1042,-1042
+    },
+
+    {
+       27,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043, 1318,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043,
+    -1043,-1043,-1043,-1043,-1043,-1043,-1043,-1043, 1318,-1043,
+    -1043,-1043,-1043,-1043,-1043
+    },
+
+    {
+       27,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044, 1319,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044, 1319,-1044,-1044,-1044,-1044,-1044,-1044,-1044,
+    -1044,-1044,-1044,-1044,-1044
+    },
+
+    {
+       27,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045, 1320,-1045,-1045,-1045,-1045,-1045,-1045,
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045,
+
+    -1045,-1045,-1045,-1045,-1045,-1045,-1045,-1045, 1320,-1045,
+    -1045,-1045,-1045,-1045,-1045
+    },
+
+    {
+       27,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046, 1321,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046, 1321,-1046,-1046,-1046,-1046,-1046,-1046,-1046,
+    -1046,-1046,-1046,-1046,-1046
+    },
+
+    {
+       27,-1047, 1322, 1322,-1047,-1047,-1047,-1047,-1047,-1047,
+
+    -1047,-1047, 1323,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,-1047,
+    -1047,-1047,-1047,-1047,-1047
+    },
+
+    {
+       27,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048, 1324,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+
+    -1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048, 1324,-1048,-1048,-1048,-1048,-1048,-1048,-1048,
+    -1048,-1048,-1048,-1048,-1048
+    },
+
+    {
+       27,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049, 1325,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049,-1049, 1325,-1049,-1049,-1049,
+    -1049,-1049,-1049,-1049,-1049
+
+    },
+
+    {
+       27,-1050, 1326, 1326,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050, 1327,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,-1050,
+    -1050,-1050,-1050,-1050,-1050
+    },
+
+    {
+       27,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+
+    -1051,-1051,-1051, 1328,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051,
+    -1051,-1051,-1051,-1051,-1051,-1051,-1051,-1051, 1328,-1051,
+    -1051,-1051,-1051,-1051,-1051
+    },
+
+    {
+       27,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052, 1329,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052,
+    -1052,-1052,-1052,-1052,-1052,-1052,-1052,-1052, 1329,-1052,
+
+    -1052,-1052,-1052,-1052,-1052
+    },
+
+    {
+       27,-1053, 1330, 1330,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053, 1331,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,-1053,
+    -1053,-1053,-1053,-1053,-1053
+    },
+
+    {
+       27,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054, 1332,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054,
+    -1054,-1054,-1054,-1054,-1054,-1054,-1054,-1054, 1332,-1054,
+    -1054,-1054,-1054,-1054,-1054
+    },
+
+    {
+       27,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055, 1333,-1055,-1055,-1055,-1055,-1055,-1055,
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055,
+
+    -1055,-1055,-1055,-1055,-1055,-1055,-1055,-1055, 1333,-1055,
+    -1055,-1055,-1055,-1055,-1055
+    },
+
+    {
+       27,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056, 1334,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056, 1334,-1056,-1056,-1056,-1056,-1056,-1056,
+    -1056,-1056,-1056,-1056,-1056
+    },
+
+    {
+       27,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057, 1335,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057, 1335,-1057,
+    -1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,-1057,
+    -1057,-1057,-1057,-1057,-1057
+    },
+
+    {
+       27,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058, 1336,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,-1058,
+    -1058,-1058,-1058,-1058,-1058
+    },
+
+    {
+       27,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059, 1337,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059,
+    -1059,-1059,-1059,-1059,-1059,-1059,-1059,-1059, 1337,-1059,
+    -1059,-1059,-1059,-1059,-1059
+
+    },
+
+    {
+       27,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060, 1338,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,-1060,
+    -1060,-1060,-1060,-1060,-1060
+    },
+
+    {
+       27,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+
+    -1061,-1061, 1339,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061,-1061,-1061, 1339,-1061,-1061,
+    -1061,-1061,-1061,-1061,-1061
+    },
+
+    {
+       27,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062, 1340,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+     1340,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+    -1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,-1062,
+
+    -1062,-1062,-1062,-1062,-1062
+    },
+
+    {
+       27,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063, 1341,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063, 1342,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,-1063,
+    -1063,-1063,-1063,-1063,-1063
+    },
+
+    {
+       27,-1064, 1343, 1343,-1064,-1064,-1064,-1064,-1064,-1064,
+    -1064,-1064, 1344,-1064,-1064,-1064,-1064,-1064,-1064,-1064,
+
+    -1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,
+    -1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,
+    -1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,
+    -1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,-1064,
+    -1064,-1064,-1064,-1064,-1064
+    },
+
+    {
+       27,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065, 1345,-1065,-1065,-1065,-1065,-1065,-1065,
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065,
+
+    -1065,-1065,-1065,-1065,-1065,-1065,-1065,-1065, 1345,-1065,
+    -1065,-1065,-1065,-1065,-1065
+    },
+
+    {
+       27,-1066, 1066, 1066,-1066,-1066,-1066,-1066,-1066,-1066,
+    -1066,-1066, 1067,-1066,-1066,-1066,-1066,-1066,-1066,-1066,
+    -1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,
+    -1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,
+    -1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,
+    -1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,-1066,
+    -1066,-1066,-1066,-1066,-1066
+    },
+
+    {
+       27,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+
+    -1067,-1067,-1067,-1067,-1067,-1067, 1346,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067, 1346,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,-1067,
+    -1067,-1067,-1067,-1067,-1067
+    },
+
+    {
+       27,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,
+    -1068,-1068,-1068,-1068, 1347,-1068,-1068,-1068,-1068,-1068,
+    -1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,
+    -1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,
+
+     1347,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,
+    -1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,-1068,
+    -1068,-1068,-1068,-1068,-1068
+    },
+
+    {
+       27,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069, 1348,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069, 1348,-1069,-1069,-1069,-1069,-1069,-1069,-1069,
+    -1069,-1069,-1069,-1069,-1069
+
+    },
+
+    {
+       27,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,
+    -1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,
+    -1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,
+    -1070,-1070,-1070, 1349,-1070,-1070,-1070,-1070,-1070,-1070,
+    -1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070,
+    -1070,-1070,-1070,-1070,-1070,-1070,-1070,-1070, 1349,-1070,
+    -1070,-1070,-1070,-1070,-1070
+    },
+
+    {
+       27,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+
+    -1071,-1071, 1350,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071,-1071,-1071, 1350,-1071,-1071,
+    -1071,-1071,-1071,-1071,-1071
+    },
+
+    {
+       27,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072, 1351,
+    -1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,
+    -1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,
+    -1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072, 1352,
+    -1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,
+    -1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,-1072,
+
+    -1072,-1072,-1072,-1072,-1072
+    },
+
+    {
+       27,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073, 1353,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073, 1354,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,-1073,
+    -1073,-1073,-1073,-1073,-1073
+    },
+
+    {
+       27,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074, 1355,
+    -1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,
+
+    -1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,
+    -1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074, 1356,
+    -1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,
+    -1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,-1074,
+    -1074,-1074,-1074,-1074,-1074
+    },
+
+    {
+       27,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075, 1357,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+
+    -1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,-1075,
+    -1075,-1075,-1075,-1075,-1075
+    },
+
+    {
+       27,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,
+    -1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,
+    -1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,
+    -1076,-1076, 1358,-1076,-1076,-1076,-1076,-1076,-1076,-1076,
+    -1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,-1076,
+    -1076,-1076,-1076,-1076,-1076,-1076,-1076, 1358,-1076,-1076,
+    -1076,-1076,-1076,-1076,-1076
+    },
+
+    {
+       27,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077, 1359,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077, 1359,-1077,-1077,-1077,-1077,-1077,-1077,-1077,
+    -1077,-1077,-1077,-1077,-1077
+    },
+
+    {
+       27,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,
+    -1078,-1078,-1078, 1360,-1078,-1078,-1078,-1078,-1078,-1078,
+    -1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,
+    -1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,
+
+    -1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,
+    -1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,-1078,
+    -1078,-1078,-1078,-1078,-1078
+    },
+
+    {
+       27,-1079, 1361, 1361,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079, 1362,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,-1079,
+    -1079,-1079,-1079,-1079,-1079
+
+    },
+
+    {
+       27,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,
+    -1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,
+    -1080,-1080,-1080,-1080,-1080,-1080,-1080, 1363,-1080,-1080,
+    -1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,
+    -1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,-1080,
+    -1080,-1080, 1363,-1080,-1080,-1080,-1080,-1080,-1080,-1080,
+    -1080,-1080,-1080,-1080,-1080
+    },
+
+    {
+       27,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+
+    -1081, 1364,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081,-1081, 1364,-1081,-1081,-1081,
+    -1081,-1081,-1081,-1081,-1081
+    },
+
+    {
+       27,-1082, 1365, 1365,-1082,-1082,-1082,-1082,-1082,-1082,
+    -1082,-1082, 1366,-1082,-1082,-1082,-1082,-1082,-1082,-1082,
+    -1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,
+    -1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,
+    -1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,
+    -1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,-1082,
+
+    -1082,-1082,-1082,-1082,-1082
+    },
+
+    {
+       27,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083, 1367,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083,
+    -1083,-1083,-1083,-1083,-1083,-1083,-1083,-1083, 1367,-1083,
+    -1083,-1083,-1083,-1083,-1083
+    },
+
+    {
+       27,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,
+    -1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,
+
+    -1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,
+    -1084,-1084,-1084, 1368,-1084,-1084,-1084,-1084,-1084,-1084,
+    -1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084,
+    -1084,-1084,-1084,-1084,-1084,-1084,-1084,-1084, 1368,-1084,
+    -1084,-1084,-1084,-1084,-1084
+    },
+
+    {
+       27,-1085, 1369, 1369,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085, 1370,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+
+    -1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,-1085,
+    -1085,-1085,-1085,-1085,-1085
+    },
+
+    {
+       27,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,
+    -1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,
+    -1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,
+    -1086,-1086,-1086, 1371,-1086,-1086,-1086,-1086,-1086,-1086,
+    -1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086,
+    -1086,-1086,-1086,-1086,-1086,-1086,-1086,-1086, 1371,-1086,
+    -1086,-1086,-1086,-1086,-1086
+    },
+
+    {
+       27,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087, 1372,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087,
+    -1087,-1087,-1087,-1087,-1087,-1087,-1087,-1087, 1372,-1087,
+    -1087,-1087,-1087,-1087,-1087
+    },
+
+    {
+       27,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088, 1373,-1088,
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+
+    -1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088, 1373,-1088,-1088,-1088,-1088,-1088,-1088,
+    -1088,-1088,-1088,-1088,-1088
+    },
+
+    {
+       27,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089, 1374,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089, 1374,-1089,
+    -1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,-1089,
+    -1089,-1089,-1089,-1089,-1089
+
+    },
+
+    {
+       27,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090, 1375,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,-1090,
+    -1090,-1090,-1090,-1090,-1090
+    },
+
+    {
+       27,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+
+    -1091,-1091,-1091, 1376,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091,
+    -1091,-1091,-1091,-1091,-1091,-1091,-1091,-1091, 1376,-1091,
+    -1091,-1091,-1091,-1091,-1091
+    },
+
+    {
+       27,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092, 1377,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+    -1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,-1092,
+
+    -1092,-1092,-1092,-1092,-1092
+    },
+
+    {
+       27,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093, 1378,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093,-1093,-1093, 1378,-1093,-1093,
+    -1093,-1093,-1093,-1093,-1093
+    },
+
+    {
+       27,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094, 1379,-1094,-1094,-1094,-1094,-1094,
+
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+     1379,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,-1094,
+    -1094,-1094,-1094,-1094,-1094
+    },
+
+    {
+       27,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095, 1380,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095, 1381,
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+
+    -1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,-1095,
+    -1095,-1095,-1095,-1095,-1095
+    },
+
+    {
+       27,-1096, 1382, 1382,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096, 1383,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,-1096,
+    -1096,-1096,-1096,-1096,-1096
+    },
+
+    {
+       27,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097, 1384,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097,
+    -1097,-1097,-1097,-1097,-1097,-1097,-1097,-1097, 1384,-1097,
+    -1097,-1097,-1097,-1097,-1097
+    },
+
+    {
+       27,-1098, 1098, 1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098, 1099,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,-1098,
+    -1098,-1098,-1098,-1098,-1098
+    },
+
+    {
+       27,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099, 1385,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099, 1385,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,-1099,
+    -1099,-1099,-1099,-1099,-1099
+
+    },
+
+    {
+       27,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100, 1386,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+     1386,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,-1100,
+    -1100,-1100,-1100,-1100,-1100
+    },
+
+    {
+       27,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101, 1387,-1101,-1101,
+
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101, 1387,-1101,-1101,-1101,-1101,-1101,-1101,-1101,
+    -1101,-1101,-1101,-1101,-1101
+    },
+
+    {
+       27,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102, 1388,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102,
+    -1102,-1102,-1102,-1102,-1102,-1102,-1102,-1102, 1388,-1102,
+
+    -1102,-1102,-1102,-1102,-1102
+    },
+
+    {
+       27,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103, 1389,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103,-1103,-1103, 1389,-1103,-1103,
+    -1103,-1103,-1103,-1103,-1103
+    },
+
+    {
+       27,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104, 1390,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104, 1391,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,-1104,
+    -1104,-1104,-1104,-1104,-1104
+    },
+
+    {
+       27,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105, 1392,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105, 1393,
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+
+    -1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,-1105,
+    -1105,-1105,-1105,-1105,-1105
+    },
+
+    {
+       27,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106, 1394,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106, 1395,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,-1106,
+    -1106,-1106,-1106,-1106,-1106
+    },
+
+    {
+       27,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+
+    -1107,-1107,-1107, 1396,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,-1107,
+    -1107,-1107,-1107,-1107,-1107
+    },
+
+    {
+       27,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108, 1397,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108,-1108,-1108, 1397,-1108,-1108,
+    -1108,-1108,-1108,-1108,-1108
+    },
+
+    {
+       27,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109, 1398,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109, 1398,-1109,-1109,-1109,-1109,-1109,-1109,-1109,
+    -1109,-1109,-1109,-1109,-1109
+
+    },
+
+    {
+       27,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110, 1399,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110, 1399,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,-1110,
+    -1110,-1110,-1110,-1110,-1110
+    },
+
+    {
+       27,-1111, 1400, 1400,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111, 1401,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,-1111,
+    -1111,-1111,-1111,-1111,-1111
+    },
+
+    {
+       27,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112, 1402,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+    -1112,-1112, 1402,-1112,-1112,-1112,-1112,-1112,-1112,-1112,
+
+    -1112,-1112,-1112,-1112,-1112
+    },
+
+    {
+       27,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113, 1403,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113,-1113, 1403,-1113,-1113,-1113,
+    -1113,-1113,-1113,-1113,-1113
+    },
+
+    {
+       27,-1114, 1404, 1404,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114, 1405,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,-1114,
+    -1114,-1114,-1114,-1114,-1114
+    },
+
+    {
+       27,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115, 1406,-1115,-1115,-1115,-1115,-1115,-1115,
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115,
+
+    -1115,-1115,-1115,-1115,-1115,-1115,-1115,-1115, 1406,-1115,
+    -1115,-1115,-1115,-1115,-1115
+    },
+
+    {
+       27,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116, 1407,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116,
+    -1116,-1116,-1116,-1116,-1116,-1116,-1116,-1116, 1407,-1116,
+    -1116,-1116,-1116,-1116,-1116
+    },
+
+    {
+       27,-1117, 1408, 1408,-1117,-1117,-1117,-1117,-1117,-1117,
+
+    -1117,-1117, 1409,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,-1117,
+    -1117,-1117,-1117,-1117,-1117
+    },
+
+    {
+       27,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118, 1410,-1118,-1118,-1118,-1118,-1118,-1118,
+
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118,
+    -1118,-1118,-1118,-1118,-1118,-1118,-1118,-1118, 1410,-1118,
+    -1118,-1118,-1118,-1118,-1118
+    },
+
+    {
+       27,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119, 1411,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119,
+    -1119,-1119,-1119,-1119,-1119,-1119,-1119,-1119, 1411,-1119,
+    -1119,-1119,-1119,-1119,-1119
+
+    },
+
+    {
+       27,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120, 1412,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120, 1412,-1120,-1120,-1120,-1120,-1120,-1120,
+    -1120,-1120,-1120,-1120,-1120
+    },
+
+    {
+       27,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121, 1413,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121, 1413,-1121,
+    -1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,-1121,
+    -1121,-1121,-1121,-1121,-1121
+    },
+
+    {
+       27,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122, 1414,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+    -1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,-1122,
+
+    -1122,-1122,-1122,-1122,-1122
+    },
+
+    {
+       27,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123, 1415,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123,
+    -1123,-1123,-1123,-1123,-1123,-1123,-1123,-1123, 1415,-1123,
+    -1123,-1123,-1123,-1123,-1123
+    },
+
+    {
+       27,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124, 1416,-1124,-1124,-1124,-1124,-1124,-1124,
+
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,-1124,
+    -1124,-1124,-1124,-1124,-1124
+    },
+
+    {
+       27,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125, 1417,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,-1125,
+
+    -1125,-1125,-1125,-1125,-1125,-1125,-1125, 1417,-1125,-1125,
+    -1125,-1125,-1125,-1125,-1125
+    },
+
+    {
+       27,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126, 1418,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+     1418,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,-1126,
+    -1126,-1126,-1126,-1126,-1126
+    },
+
+    {
+       27,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127, 1419,
+
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127, 1420,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,-1127,
+    -1127,-1127,-1127,-1127,-1127
+    },
+
+    {
+       27,-1128, 1421, 1421,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128, 1422,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,-1128,
+    -1128,-1128,-1128,-1128,-1128
+    },
+
+    {
+       27,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129, 1423,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129,
+    -1129,-1129,-1129,-1129,-1129,-1129,-1129,-1129, 1423,-1129,
+    -1129,-1129,-1129,-1129,-1129
+
+    },
+
+    {
+       27,-1130, 1130, 1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130, 1131,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,-1130,
+    -1130,-1130,-1130,-1130,-1130
+    },
+
+    {
+       27,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131, 1424,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131, 1424,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,-1131,
+    -1131,-1131,-1131,-1131,-1131
+    },
+
+    {
+       27,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132, 1425,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+     1425,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+    -1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,-1132,
+
+    -1132,-1132,-1132,-1132,-1132
+    },
+
+    {
+       27,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133, 1426,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133, 1426,-1133,-1133,-1133,-1133,-1133,-1133,-1133,
+    -1133,-1133,-1133,-1133,-1133
+    },
+
+    {
+       27,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134, 1427,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134,
+    -1134,-1134,-1134,-1134,-1134,-1134,-1134,-1134, 1427,-1134,
+    -1134,-1134,-1134,-1134,-1134
+    },
+
+    {
+       27,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135, 1428,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,-1135,
+
+    -1135,-1135,-1135,-1135,-1135,-1135,-1135, 1428,-1135,-1135,
+    -1135,-1135,-1135,-1135,-1135
+    },
+
+    {
+       27,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136, 1429,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136, 1430,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,-1136,
+    -1136,-1136,-1136,-1136,-1136
+    },
+
+    {
+       27,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137, 1431,
+
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137, 1432,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,-1137,
+    -1137,-1137,-1137,-1137,-1137
+    },
+
+    {
+       27,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138, 1433,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138, 1434,
+
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,-1138,
+    -1138,-1138,-1138,-1138,-1138
+    },
+
+    {
+       27,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139, 1435,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,-1139,
+    -1139,-1139,-1139,-1139,-1139
+
+    },
+
+    {
+       27,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140, 1436,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140,-1140,-1140, 1436,-1140,-1140,
+    -1140,-1140,-1140,-1140,-1140
+    },
+
+    {
+       27,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141, 1437,-1141,-1141,
+
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141, 1437,-1141,-1141,-1141,-1141,-1141,-1141,-1141,
+    -1141,-1141,-1141,-1141,-1141
+    },
+
+    {
+       27,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142, 1438,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142, 1438,-1142,-1142,-1142,-1142,-1142,-1142,
+    -1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,-1142,
+
+    -1142,-1142,-1142,-1142,-1142
+    },
+
+    {
+       27,-1143, 1439, 1439,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143, 1440,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,-1143,
+    -1143,-1143,-1143,-1143,-1143
+    },
+
+    {
+       27,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144, 1441,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144, 1441,-1144,-1144,-1144,-1144,-1144,-1144,-1144,
+    -1144,-1144,-1144,-1144,-1144
+    },
+
+    {
+       27,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145, 1442,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,-1145,
+
+    -1145,-1145,-1145,-1145,-1145,-1145, 1442,-1145,-1145,-1145,
+    -1145,-1145,-1145,-1145,-1145
+    },
+
+    {
+       27,-1146, 1443, 1443,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146, 1444,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,-1146,
+    -1146,-1146,-1146,-1146,-1146
+    },
+
+    {
+       27,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147, 1445,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147,
+    -1147,-1147,-1147,-1147,-1147,-1147,-1147,-1147, 1445,-1147,
+    -1147,-1147,-1147,-1147,-1147
+    },
+
+    {
+       27,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148, 1446,-1148,-1148,-1148,-1148,-1148,-1148,
+
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148,
+    -1148,-1148,-1148,-1148,-1148,-1148,-1148,-1148, 1446,-1148,
+    -1148,-1148,-1148,-1148,-1148
+    },
+
+    {
+       27,-1149, 1447, 1447,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149, 1448,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,-1149,
+    -1149,-1149,-1149,-1149,-1149
+
+    },
+
+    {
+       27,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150, 1449,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150,
+    -1150,-1150,-1150,-1150,-1150,-1150,-1150,-1150, 1449,-1150,
+    -1150,-1150,-1150,-1150,-1150
+    },
+
+    {
+       27,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+
+    -1151,-1151,-1151, 1450,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151,
+    -1151,-1151,-1151,-1151,-1151,-1151,-1151,-1151, 1450,-1151,
+    -1151,-1151,-1151,-1151,-1151
+    },
+
+    {
+       27,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152, 1451,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,-1152,
+    -1152,-1152,-1152, 1451,-1152,-1152,-1152,-1152,-1152,-1152,
+
+    -1152,-1152,-1152,-1152,-1152
+    },
+
+    {
+       27,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153, 1452,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153, 1452,-1153,
+    -1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,-1153,
+    -1153,-1153,-1153,-1153,-1153
+    },
+
+    {
+       27,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154, 1453,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,-1154,
+    -1154,-1154,-1154,-1154,-1154
+    },
+
+    {
+       27,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155, 1454,-1155,-1155,-1155,-1155,-1155,-1155,
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155,
+
+    -1155,-1155,-1155,-1155,-1155,-1155,-1155,-1155, 1454,-1155,
+    -1155,-1155,-1155,-1155,-1155
+    },
+
+    {
+       27,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,
+    -1156,-1156,-1156, 1455,-1156,-1156,-1156,-1156,-1156,-1156,
+    -1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,
+    -1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,
+    -1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,
+    -1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,-1156,
+    -1156,-1156,-1156,-1156,-1156
+    },
+
+    {
+       27,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,
+
+    -1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,
+    -1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,
+    -1157,-1157, 1456,-1157,-1157,-1157,-1157,-1157,-1157,-1157,
+    -1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,-1157,
+    -1157,-1157,-1157,-1157,-1157,-1157,-1157, 1456,-1157,-1157,
+    -1157,-1157,-1157,-1157,-1157
+    },
+
+    {
+       27,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,
+    -1158,-1158,-1158,-1158, 1457,-1158,-1158,-1158,-1158,-1158,
+    -1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,
+    -1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,
+
+     1457,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,
+    -1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,-1158,
+    -1158,-1158,-1158,-1158,-1158
+    },
+
+    {
+       27,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159, 1458,
+    -1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,
+    -1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,
+    -1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159, 1459,
+    -1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,
+    -1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,-1159,
+    -1159,-1159,-1159,-1159,-1159
+
+    },
+
+    {
+       27,-1160, 1460, 1460,-1160,-1160,-1160,-1160,-1160,-1160,
+    -1160,-1160, 1461,-1160,-1160,-1160,-1160,-1160,-1160,-1160,
+    -1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,
+    -1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,
+    -1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,
+    -1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,-1160,
+    -1160,-1160,-1160,-1160,-1160
+    },
+
+    {
+       27,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,
+    -1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,
+    -1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,
+
+    -1161,-1161,-1161, 1462,-1161,-1161,-1161,-1161,-1161,-1161,
+    -1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161,
+    -1161,-1161,-1161,-1161,-1161,-1161,-1161,-1161, 1462,-1161,
+    -1161,-1161,-1161,-1161,-1161
+    },
+
+    {
+       27,-1162, 1162, 1162,-1162,-1162,-1162,-1162,-1162,-1162,
+    -1162,-1162, 1163,-1162,-1162,-1162,-1162,-1162,-1162,-1162,
+    -1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,
+    -1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,
+    -1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,
+    -1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,-1162,
+
+    -1162,-1162,-1162,-1162,-1162
+    },
+
+    {
+       27,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,
+    -1163,-1163,-1163,-1163,-1163,-1163, 1463,-1163,-1163,-1163,
+    -1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,
+    -1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,
+    -1163,-1163, 1463,-1163,-1163,-1163,-1163,-1163,-1163,-1163,
+    -1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,-1163,
+    -1163,-1163,-1163,-1163,-1163
+    },
+
+    {
+       27,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,
+    -1164,-1164,-1164,-1164, 1464,-1164,-1164,-1164,-1164,-1164,
+
+    -1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,
+    -1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,
+     1464,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,
+    -1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,-1164,
+    -1164,-1164,-1164,-1164,-1164
+    },
+
+    {
+       27,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,
+    -1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,
+    -1165,-1165,-1165,-1165,-1165,-1165,-1165, 1465,-1165,-1165,
+    -1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,
+    -1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,-1165,
+
+    -1165,-1165, 1465,-1165,-1165,-1165,-1165,-1165,-1165,-1165,
+    -1165,-1165,-1165,-1165,-1165
+    },
+
+    {
+       27,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,
+    -1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,
+    -1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,
+    -1166,-1166,-1166, 1466,-1166,-1166,-1166,-1166,-1166,-1166,
+    -1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166,
+    -1166,-1166,-1166,-1166,-1166,-1166,-1166,-1166, 1466,-1166,
+    -1166,-1166,-1166,-1166,-1166
+    },
+
+    {
+       27,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,
+
+    -1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,
+    -1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,
+    -1167,-1167, 1467,-1167,-1167,-1167,-1167,-1167,-1167,-1167,
+    -1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,-1167,
+    -1167,-1167,-1167,-1167,-1167,-1167,-1167, 1467,-1167,-1167,
+    -1167,-1167,-1167,-1167,-1167
+    },
+
+    {
+       27,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168, 1468,
+    -1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,
+    -1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,
+    -1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168, 1469,
+
+    -1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,
+    -1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,-1168,
+    -1168,-1168,-1168,-1168,-1168
+    },
+
+    {
+       27,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169, 1470,
+    -1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,
+    -1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,
+    -1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169, 1471,
+    -1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,
+    -1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,-1169,
+    -1169,-1169,-1169,-1169,-1169
+
+    },
+
+    {
+       27,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170, 1472,
+    -1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,
+    -1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,
+    -1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170, 1473,
+    -1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,
+    -1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,-1170,
+    -1170,-1170,-1170,-1170,-1170
+    },
+
+    {
+       27,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,
+    -1171,-1171,-1171, 1474,-1171,-1171,-1171,-1171,-1171,-1171,
+    -1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,
+
+    -1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,
+    -1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,
+    -1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,-1171,
+    -1171,-1171,-1171,-1171,-1171
+    },
+
+    {
+       27,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,
+    -1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,
+    -1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,
+    -1172,-1172, 1475,-1172,-1172,-1172,-1172,-1172,-1172,-1172,
+    -1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,-1172,
+    -1172,-1172,-1172,-1172,-1172,-1172,-1172, 1475,-1172,-1172,
+
+    -1172,-1172,-1172,-1172,-1172
+    },
+
+    {
+       27,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,
+    -1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,
+    -1173,-1173,-1173,-1173,-1173,-1173,-1173, 1476,-1173,-1173,
+    -1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,
+    -1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,-1173,
+    -1173,-1173, 1476,-1173,-1173,-1173,-1173,-1173,-1173,-1173,
+    -1173,-1173,-1173,-1173,-1173
+    },
+
+    {
+       27,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,
+    -1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,
+
+    -1174,-1174, 1477,-1174,-1174,-1174,-1174,-1174,-1174,-1174,
+    -1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,
+    -1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174, 1477,-1174,
+    -1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,-1174,
+    -1174,-1174,-1174,-1174,-1174
+    },
+
+    {
+       27,-1175, 1478, 1478,-1175,-1175,-1175,-1175,-1175,-1175,
+    -1175,-1175, 1479,-1175,-1175,-1175,-1175,-1175,-1175,-1175,
+    -1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,
+    -1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,
+    -1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,
+
+    -1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,-1175,
+    -1175,-1175,-1175,-1175,-1175
+    },
+
+    {
+       27,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,
+    -1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,
+    -1176,-1176,-1176,-1176,-1176,-1176,-1176, 1480,-1176,-1176,
+    -1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,
+    -1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,-1176,
+    -1176,-1176, 1480,-1176,-1176,-1176,-1176,-1176,-1176,-1176,
+    -1176,-1176,-1176,-1176,-1176
+    },
+
+    {
+       27,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,
+
+    -1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,
+    -1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,
+    -1177, 1481,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,
+    -1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,-1177,
+    -1177,-1177,-1177,-1177,-1177,-1177, 1481,-1177,-1177,-1177,
+    -1177,-1177,-1177,-1177,-1177
+    },
+
+    {
+       27,-1178, 1482, 1482,-1178,-1178,-1178,-1178,-1178,-1178,
+    -1178,-1178, 1483,-1178,-1178,-1178,-1178,-1178,-1178,-1178,
+    -1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,
+    -1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,
+
+    -1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,
+    -1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,-1178,
+    -1178,-1178,-1178,-1178,-1178
+    },
+
+    {
+       27,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,
+    -1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,
+    -1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,
+    -1179,-1179,-1179, 1484,-1179,-1179,-1179,-1179,-1179,-1179,
+    -1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179,
+    -1179,-1179,-1179,-1179,-1179,-1179,-1179,-1179, 1484,-1179,
+    -1179,-1179,-1179,-1179,-1179
+
+    },
+
+    {
+       27,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,
+    -1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,
+    -1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,
+    -1180,-1180,-1180, 1485,-1180,-1180,-1180,-1180,-1180,-1180,
+    -1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180,
+    -1180,-1180,-1180,-1180,-1180,-1180,-1180,-1180, 1485,-1180,
+    -1180,-1180,-1180,-1180,-1180
+    },
+
+    {
+       27,-1181, 1486, 1486,-1181,-1181,-1181,-1181,-1181,-1181,
+    -1181,-1181, 1487,-1181,-1181,-1181,-1181,-1181,-1181,-1181,
+    -1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,
+
+    -1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,
+    -1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,
+    -1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,-1181,
+    -1181,-1181,-1181,-1181,-1181
+    },
+
+    {
+       27,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,
+    -1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,
+    -1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,
+    -1182,-1182,-1182, 1488,-1182,-1182,-1182,-1182,-1182,-1182,
+    -1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182,
+    -1182,-1182,-1182,-1182,-1182,-1182,-1182,-1182, 1488,-1182,
+
+    -1182,-1182,-1182,-1182,-1182
+    },
+
+    {
+       27,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,
+    -1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,
+    -1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,
+    -1183,-1183,-1183, 1489,-1183,-1183,-1183,-1183,-1183,-1183,
+    -1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183,
+    -1183,-1183,-1183,-1183,-1183,-1183,-1183,-1183, 1489,-1183,
+    -1183,-1183,-1183,-1183,-1183
+    },
+
+    {
+       27,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,
+    -1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,
+
+    -1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184, 1490,-1184,
+    -1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,
+    -1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,-1184,
+    -1184,-1184,-1184, 1490,-1184,-1184,-1184,-1184,-1184,-1184,
+    -1184,-1184,-1184,-1184,-1184
+    },
+
+    {
+       27,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,
+    -1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,
+    -1185,-1185, 1491,-1185,-1185,-1185,-1185,-1185,-1185,-1185,
+    -1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,
+    -1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185, 1491,-1185,
+
+    -1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,-1185,
+    -1185,-1185,-1185,-1185,-1185
+    },
+
+    {
+       27,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,
+    -1186,-1186, 1492,-1186,-1186,-1186,-1186,-1186,-1186,-1186,
+    -1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,
+    -1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,
+    -1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,
+    -1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,-1186,
+    -1186,-1186,-1186,-1186,-1186
+    },
+
+    {
+       27,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,
+
+    -1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,
+    -1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,
+    -1187,-1187,-1187, 1493,-1187,-1187,-1187,-1187,-1187,-1187,
+    -1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187,
+    -1187,-1187,-1187,-1187,-1187,-1187,-1187,-1187, 1493,-1187,
+    -1187,-1187,-1187,-1187,-1187
+    },
+
+    {
+       27,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,
+    -1188,-1188,-1188, 1494,-1188,-1188,-1188,-1188,-1188,-1188,
+    -1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,
+    -1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,
+
+    -1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,
+    -1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,-1188,
+    -1188,-1188,-1188,-1188,-1188
+    },
+
+    {
+       27,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,
+    -1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,
+    -1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,
+    -1189,-1189, 1495,-1189,-1189,-1189,-1189,-1189,-1189,-1189,
+    -1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,-1189,
+    -1189,-1189,-1189,-1189,-1189,-1189,-1189, 1495,-1189,-1189,
+    -1189,-1189,-1189,-1189,-1189
+
+    },
+
+    {
+       27,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,
+    -1190,-1190,-1190,-1190, 1496,-1190,-1190,-1190,-1190,-1190,
+    -1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,
+    -1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,
+     1496,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,
+    -1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,-1190,
+    -1190,-1190,-1190,-1190,-1190
+    },
+
+    {
+       27,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191, 1497,
+    -1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,
+    -1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,
+
+    -1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191, 1498,
+    -1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,
+    -1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,-1191,
+    -1191,-1191,-1191,-1191,-1191
+    },
+
+    {
+       27,-1192, 1499, 1499,-1192,-1192,-1192,-1192,-1192,-1192,
+    -1192,-1192, 1500,-1192,-1192,-1192,-1192,-1192,-1192,-1192,
+    -1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,
+    -1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,
+    -1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,
+    -1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,-1192,
+
+    -1192,-1192,-1192,-1192,-1192
+    },
+
+    {
+       27,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,
+    -1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,
+    -1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,
+    -1193,-1193,-1193, 1501,-1193,-1193,-1193,-1193,-1193,-1193,
+    -1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193,
+    -1193,-1193,-1193,-1193,-1193,-1193,-1193,-1193, 1501,-1193,
+    -1193,-1193,-1193,-1193,-1193
+    },
+
+    {
+       27,-1194, 1194, 1194,-1194,-1194,-1194,-1194,-1194,-1194,
+    -1194,-1194, 1195,-1194,-1194,-1194,-1194,-1194,-1194,-1194,
+
+    -1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,
+    -1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,
+    -1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,
+    -1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,-1194,
+    -1194,-1194,-1194,-1194,-1194
+    },
+
+    {
+       27,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,
+    -1195,-1195,-1195,-1195,-1195,-1195, 1502,-1195,-1195,-1195,
+    -1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,
+    -1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,
+    -1195,-1195, 1502,-1195,-1195,-1195,-1195,-1195,-1195,-1195,
+
+    -1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,-1195,
+    -1195,-1195,-1195,-1195,-1195
+    },
+
+    {
+       27,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,
+    -1196,-1196,-1196,-1196, 1503,-1196,-1196,-1196,-1196,-1196,
+    -1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,
+    -1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,
+     1503,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,
+    -1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,-1196,
+    -1196,-1196,-1196,-1196,-1196
+    },
+
+    {
+       27,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,
+
+    -1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,
+    -1197,-1197,-1197,-1197,-1197,-1197,-1197, 1504,-1197,-1197,
+    -1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,
+    -1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,-1197,
+    -1197,-1197, 1504,-1197,-1197,-1197,-1197,-1197,-1197,-1197,
+    -1197,-1197,-1197,-1197,-1197
+    },
+
+    {
+       27,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,
+    -1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,
+    -1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,
+    -1198,-1198,-1198, 1505,-1198,-1198,-1198,-1198,-1198,-1198,
+
+    -1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198,
+    -1198,-1198,-1198,-1198,-1198,-1198,-1198,-1198, 1505,-1198,
+    -1198,-1198,-1198,-1198,-1198
+    },
+
+    {
+       27,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,
+    -1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,
+    -1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,
+    -1199,-1199, 1506,-1199,-1199,-1199,-1199,-1199,-1199,-1199,
+    -1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,-1199,
+    -1199,-1199,-1199,-1199,-1199,-1199,-1199, 1506,-1199,-1199,
+    -1199,-1199,-1199,-1199,-1199
+
+    },
+
+    {
+       27,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200, 1507,
+    -1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,
+    -1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,
+    -1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200, 1508,
+    -1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,
+    -1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,-1200,
+    -1200,-1200,-1200,-1200,-1200
+    },
+
+    {
+       27,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201, 1509,
+    -1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,
+    -1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,
+
+    -1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201, 1510,
+    -1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,
+    -1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,-1201,
+    -1201,-1201,-1201,-1201,-1201
+    },
+
+    {
+       27,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202, 1511,
+    -1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,
+    -1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,
+    -1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202, 1512,
+    -1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,
+    -1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,-1202,
+
+    -1202,-1202,-1202,-1202,-1202
+    },
+
+    {
+       27,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,
+    -1203,-1203,-1203, 1513,-1203,-1203,-1203,-1203,-1203,-1203,
+    -1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,
+    -1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,
+    -1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,
+    -1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,-1203,
+    -1203,-1203,-1203,-1203,-1203
+    },
+
+    {
+       27,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,
+    -1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,
+
+    -1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,
+    -1204,-1204, 1514,-1204,-1204,-1204,-1204,-1204,-1204,-1204,
+    -1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,-1204,
+    -1204,-1204,-1204,-1204,-1204,-1204,-1204, 1514,-1204,-1204,
+    -1204,-1204,-1204,-1204,-1204
+    },
+
+    {
+       27,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,
+    -1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,
+    -1205,-1205,-1205,-1205,-1205,-1205,-1205, 1515,-1205,-1205,
+    -1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,
+    -1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,-1205,
+
+    -1205,-1205, 1515,-1205,-1205,-1205,-1205,-1205,-1205,-1205,
+    -1205,-1205,-1205,-1205,-1205
+    },
+
+    {
+       27,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,
+    -1206,-1206,-1206,-1206,-1206, 1516,-1206,-1206,-1206,-1206,
+    -1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,
+    -1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,
+    -1206, 1516,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,
+    -1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,-1206,
+    -1206,-1206,-1206,-1206,-1206
+    },
+
+    {
+       27,-1207, 1517, 1517,-1207,-1207,-1207,-1207,-1207,-1207,
+
+    -1207,-1207, 1518,-1207,-1207,-1207,-1207,-1207,-1207,-1207,
+    -1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,
+    -1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,
+    -1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,
+    -1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,-1207,
+    -1207,-1207,-1207,-1207,-1207
+    },
+
+    {
+       27,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,
+    -1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,
+    -1208,-1208,-1208,-1208,-1208,-1208,-1208, 1519,-1208,-1208,
+    -1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,
+
+    -1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,-1208,
+    -1208,-1208, 1519,-1208,-1208,-1208,-1208,-1208,-1208,-1208,
+    -1208,-1208,-1208,-1208,-1208
+    },
+
+    {
+       27,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,
+    -1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,
+    -1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,
+    -1209, 1520,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,
+    -1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,-1209,
+    -1209,-1209,-1209,-1209,-1209,-1209, 1520,-1209,-1209,-1209,
+    -1209,-1209,-1209,-1209,-1209
+
+    },
+
+    {
+       27,-1210, 1521, 1521,-1210,-1210,-1210,-1210,-1210,-1210,
+    -1210,-1210, 1522,-1210,-1210,-1210,-1210,-1210,-1210,-1210,
+    -1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,
+    -1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,
+    -1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,
+    -1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,-1210,
+    -1210,-1210,-1210,-1210,-1210
+    },
+
+    {
+       27,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,
+    -1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,
+    -1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,
+
+    -1211,-1211,-1211, 1523,-1211,-1211,-1211,-1211,-1211,-1211,
+    -1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211,
+    -1211,-1211,-1211,-1211,-1211,-1211,-1211,-1211, 1523,-1211,
+    -1211,-1211,-1211,-1211,-1211
+    },
+
+    {
+       27,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,
+    -1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,
+    -1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,
+    -1212,-1212,-1212, 1524,-1212,-1212,-1212,-1212,-1212,-1212,
+    -1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212,
+    -1212,-1212,-1212,-1212,-1212,-1212,-1212,-1212, 1524,-1212,
+
+    -1212,-1212,-1212,-1212,-1212
+    },
+
+    {
+       27,-1213, 1525, 1525,-1213,-1213,-1213,-1213,-1213,-1213,
+    -1213,-1213, 1526,-1213,-1213,-1213,-1213,-1213,-1213,-1213,
+    -1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,
+    -1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,
+    -1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,
+    -1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,-1213,
+    -1213,-1213,-1213,-1213,-1213
+    },
+
+    {
+       27,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,
+    -1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,
+
+    -1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,
+    -1214,-1214,-1214, 1527,-1214,-1214,-1214,-1214,-1214,-1214,
+    -1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214,
+    -1214,-1214,-1214,-1214,-1214,-1214,-1214,-1214, 1527,-1214,
+    -1214,-1214,-1214,-1214,-1214
+    },
+
+    {
+       27,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,
+    -1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,
+    -1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,
+    -1215,-1215,-1215, 1528,-1215,-1215,-1215,-1215,-1215,-1215,
+    -1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215,
+
+    -1215,-1215,-1215,-1215,-1215,-1215,-1215,-1215, 1528,-1215,
+    -1215,-1215,-1215,-1215,-1215
+    },
+
+    {
+       27,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,
+    -1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,
+    -1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216, 1529,-1216,
+    -1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,
+    -1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,-1216,
+    -1216,-1216,-1216, 1529,-1216,-1216,-1216,-1216,-1216,-1216,
+    -1216,-1216,-1216,-1216,-1216
+    },
+
+    {
+       27,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,
+
+    -1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,
+    -1217,-1217, 1530,-1217,-1217,-1217,-1217,-1217,-1217,-1217,
+    -1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,
+    -1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217, 1530,-1217,
+    -1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,-1217,
+    -1217,-1217,-1217,-1217,-1217
+    },
+
+    {
+       27,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,
+    -1218,-1218, 1531,-1218,-1218,-1218,-1218,-1218,-1218,-1218,
+    -1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,
+    -1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,
+
+    -1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,
+    -1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,-1218,
+    -1218,-1218,-1218,-1218,-1218
+    },
+
+    {
+       27,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,
+    -1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,
+    -1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,
+    -1219,-1219,-1219, 1532,-1219,-1219,-1219,-1219,-1219,-1219,
+    -1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219,
+    -1219,-1219,-1219,-1219,-1219,-1219,-1219,-1219, 1532,-1219,
+    -1219,-1219,-1219,-1219,-1219
+
+    },
+
+    {
+       27,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,
+    -1220,-1220,-1220, 1533,-1220,-1220,-1220,-1220,-1220,-1220,
+    -1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,
+    -1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,
+    -1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,
+    -1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,-1220,
+    -1220,-1220,-1220,-1220,-1220
+    },
+
+    {
+       27,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,
+    -1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,
+    -1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,
+
+    -1221,-1221, 1534,-1221,-1221,-1221,-1221,-1221,-1221,-1221,
+    -1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,-1221,
+    -1221,-1221,-1221,-1221,-1221,-1221,-1221, 1534,-1221,-1221,
+    -1221,-1221,-1221,-1221,-1221
+    },
+
+    {
+       27,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,
+    -1222,-1222,-1222,-1222, 1535,-1222,-1222,-1222,-1222,-1222,
+    -1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,
+    -1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,
+     1535,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,
+    -1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,-1222,
+
+    -1222,-1222,-1222,-1222,-1222
+    },
+
+    {
+       27,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223, 1536,
+    -1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,
+    -1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,
+    -1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223, 1537,
+    -1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,
+    -1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,-1223,
+    -1223,-1223,-1223,-1223,-1223
+    },
+
+    {
+       27,-1224, 1538, 1538,-1224,-1224,-1224,-1224,-1224,-1224,
+    -1224,-1224, 1539,-1224,-1224,-1224,-1224,-1224,-1224,-1224,
+
+    -1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,
+    -1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,
+    -1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,
+    -1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,-1224,
+    -1224,-1224,-1224,-1224,-1224
+    },
+
+    {
+       27,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,
+    -1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,
+    -1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,
+    -1225,-1225,-1225, 1540,-1225,-1225,-1225,-1225,-1225,-1225,
+    -1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225,
+
+    -1225,-1225,-1225,-1225,-1225,-1225,-1225,-1225, 1540,-1225,
+    -1225,-1225,-1225,-1225,-1225
+    },
+
+    {
+       27,-1226, 1226, 1226,-1226,-1226,-1226,-1226,-1226,-1226,
+    -1226,-1226, 1227,-1226,-1226,-1226,-1226,-1226,-1226,-1226,
+    -1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,
+    -1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,
+    -1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,
+    -1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,-1226,
+    -1226,-1226,-1226,-1226,-1226
+    },
+
+    {
+       27,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,
+
+    -1227,-1227,-1227,-1227,-1227,-1227, 1541,-1227,-1227,-1227,
+    -1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,
+    -1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,
+    -1227,-1227, 1541,-1227,-1227,-1227,-1227,-1227,-1227,-1227,
+    -1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,-1227,
+    -1227,-1227,-1227,-1227,-1227
+    },
+
+    {
+       27,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,
+    -1228,-1228,-1228,-1228, 1542,-1228,-1228,-1228,-1228,-1228,
+    -1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,
+    -1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,
+
+     1542,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,
+    -1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,-1228,
+    -1228,-1228,-1228,-1228,-1228
+    },
+
+    {
+       27,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,
+    -1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,
+    -1229,-1229,-1229,-1229,-1229,-1229,-1229, 1543,-1229,-1229,
+    -1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,
+    -1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,-1229,
+    -1229,-1229, 1543,-1229,-1229,-1229,-1229,-1229,-1229,-1229,
+    -1229,-1229,-1229,-1229,-1229
+
+    },
+
+    {
+       27,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,
+    -1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,
+    -1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,
+    -1230,-1230,-1230, 1544,-1230,-1230,-1230,-1230,-1230,-1230,
+    -1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230,
+    -1230,-1230,-1230,-1230,-1230,-1230,-1230,-1230, 1544,-1230,
+    -1230,-1230,-1230,-1230,-1230
+    },
+
+    {
+       27,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,
+    -1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,
+    -1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,
+
+    -1231,-1231, 1545,-1231,-1231,-1231,-1231,-1231,-1231,-1231,
+    -1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,-1231,
+    -1231,-1231,-1231,-1231,-1231,-1231,-1231, 1545,-1231,-1231,
+    -1231,-1231,-1231,-1231,-1231
+    },
+
+    {
+       27,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232, 1546,
+    -1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,
+    -1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,
+    -1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232, 1547,
+    -1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,
+    -1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,-1232,
+
+    -1232,-1232,-1232,-1232,-1232
+    },
+
+    {
+       27,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233, 1548,
+    -1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,
+    -1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,
+    -1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233, 1549,
+    -1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,
+    -1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,-1233,
+    -1233,-1233,-1233,-1233,-1233
+    },
+
+    {
+       27,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234, 1550,
+    -1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,
+
+    -1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,
+    -1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234, 1551,
+    -1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,
+    -1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,-1234,
+    -1234,-1234,-1234,-1234,-1234
+    },
+
+    {
+       27,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,
+    -1235,-1235,-1235, 1552,-1235,-1235,-1235,-1235,-1235,-1235,
+    -1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,
+    -1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,
+    -1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,
+
+    -1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,-1235,
+    -1235,-1235,-1235,-1235,-1235
+    },
+
+    {
+       27,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,
+    -1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,
+    -1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,
+    -1236,-1236, 1553,-1236,-1236,-1236,-1236,-1236,-1236,-1236,
+    -1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,-1236,
+    -1236,-1236,-1236,-1236,-1236,-1236,-1236, 1553,-1236,-1236,
+    -1236,-1236,-1236,-1236,-1236
+    },
+
+    {
+       27,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,
+
+    -1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,
+    -1237,-1237,-1237,-1237,-1237,-1237,-1237, 1554,-1237,-1237,
+    -1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,
+    -1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,-1237,
+    -1237,-1237, 1554,-1237,-1237,-1237,-1237,-1237,-1237,-1237,
+    -1237,-1237,-1237,-1237,-1237
+    },
+
+    {
+       27,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,
+    -1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,
+    -1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,
+    -1238, 1555,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,
+
+    -1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,-1238,
+    -1238,-1238,-1238,-1238,-1238,-1238, 1555,-1238,-1238,-1238,
+    -1238,-1238,-1238,-1238,-1238
+    },
+
+    {
+       27,-1239, 1556, 1556,-1239,-1239,-1239,-1239,-1239,-1239,
+    -1239,-1239, 1557,-1239,-1239,-1239,-1239,-1239,-1239,-1239,
+    -1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,
+    -1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,
+    -1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,
+    -1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,-1239,
+    -1239,-1239,-1239,-1239,-1239
+
+    },
+
+    {
+       27,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,
+    -1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,
+    -1240,-1240,-1240,-1240,-1240,-1240,-1240, 1558,-1240,-1240,
+    -1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,
+    -1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,-1240,
+    -1240,-1240, 1558,-1240,-1240,-1240,-1240,-1240,-1240,-1240,
+    -1240,-1240,-1240,-1240,-1240
+    },
+
+    {
+       27,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,
+    -1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,
+    -1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,
+
+    -1241, 1559,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,
+    -1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,-1241,
+    -1241,-1241,-1241,-1241,-1241,-1241, 1559,-1241,-1241,-1241,
+    -1241,-1241,-1241,-1241,-1241
+    },
+
+    {
+       27,-1242, 1560, 1560,-1242,-1242,-1242,-1242,-1242,-1242,
+    -1242,-1242, 1561,-1242,-1242,-1242,-1242,-1242,-1242,-1242,
+    -1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,
+    -1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,
+    -1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,
+    -1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,-1242,
+
+    -1242,-1242,-1242,-1242,-1242
+    },
+
+    {
+       27,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,
+    -1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,
+    -1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,
+    -1243,-1243,-1243, 1562,-1243,-1243,-1243,-1243,-1243,-1243,
+    -1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243,
+    -1243,-1243,-1243,-1243,-1243,-1243,-1243,-1243, 1562,-1243,
+    -1243,-1243,-1243,-1243,-1243
+    },
+
+    {
+       27,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,
+    -1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,
+
+    -1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,
+    -1244,-1244,-1244, 1563,-1244,-1244,-1244,-1244,-1244,-1244,
+    -1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244,
+    -1244,-1244,-1244,-1244,-1244,-1244,-1244,-1244, 1563,-1244,
+    -1244,-1244,-1244,-1244,-1244
+    },
+
+    {
+       27,-1245, 1564, 1564,-1245,-1245,-1245,-1245,-1245,-1245,
+    -1245,-1245, 1565,-1245,-1245,-1245,-1245,-1245,-1245,-1245,
+    -1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,
+    -1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,
+    -1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,
+
+    -1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,-1245,
+    -1245,-1245,-1245,-1245,-1245
+    },
+
+    {
+       27,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,
+    -1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,
+    -1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,
+    -1246,-1246,-1246, 1566,-1246,-1246,-1246,-1246,-1246,-1246,
+    -1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246,
+    -1246,-1246,-1246,-1246,-1246,-1246,-1246,-1246, 1566,-1246,
+    -1246,-1246,-1246,-1246,-1246
+    },
+
+    {
+       27,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,
+
+    -1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,
+    -1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,
+    -1247,-1247,-1247, 1567,-1247,-1247,-1247,-1247,-1247,-1247,
+    -1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247,
+    -1247,-1247,-1247,-1247,-1247,-1247,-1247,-1247, 1567,-1247,
+    -1247,-1247,-1247,-1247,-1247
+    },
+
+    {
+       27,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,
+    -1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,
+    -1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248, 1568,-1248,
+    -1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,
+
+    -1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,-1248,
+    -1248,-1248,-1248, 1568,-1248,-1248,-1248,-1248,-1248,-1248,
+    -1248,-1248,-1248,-1248,-1248
+    },
+
+    {
+       27,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,
+    -1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,
+    -1249,-1249, 1569,-1249,-1249,-1249,-1249,-1249,-1249,-1249,
+    -1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,
+    -1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249, 1569,-1249,
+    -1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,-1249,
+    -1249,-1249,-1249,-1249,-1249
+
+    },
+
+    {
+       27,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,
+    -1250,-1250, 1570,-1250,-1250,-1250,-1250,-1250,-1250,-1250,
+    -1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,
+    -1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,
+    -1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,
+    -1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,-1250,
+    -1250,-1250,-1250,-1250,-1250
+    },
+
+    {
+       27,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,
+    -1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,
+    -1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,
+
+    -1251,-1251,-1251, 1571,-1251,-1251,-1251,-1251,-1251,-1251,
+    -1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251,
+    -1251,-1251,-1251,-1251,-1251,-1251,-1251,-1251, 1571,-1251,
+    -1251,-1251,-1251,-1251,-1251
+    },
+
+    {
+       27,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,
+    -1252,-1252,-1252, 1572,-1252,-1252,-1252,-1252,-1252,-1252,
+    -1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,
+    -1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,
+    -1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,
+    -1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,-1252,
+
+    -1252,-1252,-1252,-1252,-1252
+    },
+
+    {
+       27,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,
+    -1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,
+    -1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,
+    -1253,-1253, 1573,-1253,-1253,-1253,-1253,-1253,-1253,-1253,
+    -1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,-1253,
+    -1253,-1253,-1253,-1253,-1253,-1253,-1253, 1573,-1253,-1253,
+    -1253,-1253,-1253,-1253,-1253
+    },
+
+    {
+       27,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,
+    -1254,-1254,-1254,-1254, 1574,-1254,-1254,-1254,-1254,-1254,
+
+    -1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,
+    -1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,
+     1574,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,
+    -1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,-1254,
+    -1254,-1254,-1254,-1254,-1254
+    },
+
+    {
+       27,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255, 1575,
+    -1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,
+    -1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,
+    -1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255, 1576,
+    -1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,
+
+    -1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,-1255,
+    -1255,-1255,-1255,-1255,-1255
+    },
+
+    {
+       27,-1256, 1577, 1577,-1256,-1256,-1256,-1256,-1256,-1256,
+    -1256,-1256, 1578,-1256,-1256,-1256,-1256,-1256,-1256,-1256,
+    -1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,
+    -1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,
+    -1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,
+    -1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,-1256,
+    -1256,-1256,-1256,-1256,-1256
+    },
+
+    {
+       27,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,
+
+    -1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,
+    -1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,
+    -1257,-1257,-1257, 1579,-1257,-1257,-1257,-1257,-1257,-1257,
+    -1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257,
+    -1257,-1257,-1257,-1257,-1257,-1257,-1257,-1257, 1579,-1257,
+    -1257,-1257,-1257,-1257,-1257
+    },
+
+    {
+       27,-1258, 1258, 1258,-1258,-1258,-1258,-1258,-1258,-1258,
+    -1258,-1258, 1259,-1258,-1258,-1258,-1258,-1258,-1258,-1258,
+    -1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,
+    -1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,
+
+    -1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,
+    -1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,-1258,
+    -1258,-1258,-1258,-1258,-1258
+    },
+
+    {
+       27,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,
+    -1259,-1259,-1259,-1259,-1259,-1259, 1580,-1259,-1259,-1259,
+    -1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,
+    -1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,
+    -1259,-1259, 1580,-1259,-1259,-1259,-1259,-1259,-1259,-1259,
+    -1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,-1259,
+    -1259,-1259,-1259,-1259,-1259
+
+    },
+
+    {
+       27,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,
+    -1260,-1260,-1260,-1260, 1581,-1260,-1260,-1260,-1260,-1260,
+    -1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,
+    -1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,
+     1581,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,
+    -1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,-1260,
+    -1260,-1260,-1260,-1260,-1260
+    },
+
+    {
+       27,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,
+    -1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,
+    -1261,-1261,-1261,-1261,-1261,-1261,-1261, 1582,-1261,-1261,
+
+    -1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,
+    -1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,-1261,
+    -1261,-1261, 1582,-1261,-1261,-1261,-1261,-1261,-1261,-1261,
+    -1261,-1261,-1261,-1261,-1261
+    },
+
+    {
+       27,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,
+    -1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,
+    -1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,
+    -1262,-1262,-1262, 1583,-1262,-1262,-1262,-1262,-1262,-1262,
+    -1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262,
+    -1262,-1262,-1262,-1262,-1262,-1262,-1262,-1262, 1583,-1262,
+
+    -1262,-1262,-1262,-1262,-1262
+    },
+
+    {
+       27,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,
+    -1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,
+    -1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,
+    -1263,-1263, 1584,-1263,-1263,-1263,-1263,-1263,-1263,-1263,
+    -1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,-1263,
+    -1263,-1263,-1263,-1263,-1263,-1263,-1263, 1584,-1263,-1263,
+    -1263,-1263,-1263,-1263,-1263
+    },
+
+    {
+       27,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264, 1585,
+    -1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,
+
+    -1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,
+    -1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264, 1586,
+    -1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,
+    -1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,-1264,
+    -1264,-1264,-1264,-1264,-1264
+    },
+
+    {
+       27,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265, 1587,
+    -1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,
+    -1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,
+    -1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265, 1588,
+    -1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,
+
+    -1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,-1265,
+    -1265,-1265,-1265,-1265,-1265
+    },
+
+    {
+       27,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266, 1589,
+    -1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,
+    -1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,
+    -1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266, 1590,
+    -1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,
+    -1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,-1266,
+    -1266,-1266,-1266,-1266,-1266
+    },
+
+    {
+       27,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,
+
+    -1267,-1267,-1267, 1591,-1267,-1267,-1267,-1267,-1267,-1267,
+    -1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,
+    -1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,
+    -1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,
+    -1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,-1267,
+    -1267,-1267,-1267,-1267,-1267
+    },
+
+    {
+       27,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,
+    -1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,
+    -1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,
+    -1268,-1268, 1592,-1268,-1268,-1268,-1268,-1268,-1268,-1268,
+
+    -1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,-1268,
+    -1268,-1268,-1268,-1268,-1268,-1268,-1268, 1592,-1268,-1268,
+    -1268,-1268,-1268,-1268,-1268
+    },
+
+    {
+       27,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,
+     1593,  178,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,
+    -1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,
+    -1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,
+    -1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,
+    -1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,-1269,
+    -1269,-1269,-1269,-1269,-1269
+
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 1594,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, 1594,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366, 1595,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366, 1595,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-1272, 1596, 1596,-1272,-1272,-1272,-1272,-1272,-1272,
+    -1272,-1272, 1597,-1272,-1272,-1272,-1272,-1272,-1272,-1272,
+    -1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,
+    -1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,
+    -1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,
+    -1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,-1272,
+
+    -1272,-1272,-1272,-1272,-1272
+    },
+
+    {
+       27,-1273, 1273, 1273,-1273,-1273,-1273,-1273,-1273,-1273,
+    -1273,-1273, 1274,-1273,-1273,-1273,-1273,-1273,-1273,-1273,
+    -1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,
+    -1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,
+    -1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,
+    -1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,-1273,
+    -1273,-1273,-1273,-1273,-1273
+    },
+
+    {
+       27,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,
+    -1274,-1274,-1274,-1274,-1274,-1274, 1598,-1274,-1274,-1274,
+
+    -1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,
+    -1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,
+    -1274,-1274, 1598,-1274,-1274,-1274,-1274,-1274,-1274,-1274,
+    -1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,-1274,
+    -1274,-1274,-1274,-1274,-1274
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1599,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1600,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1601,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1602,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1277, 1277, 1277,-1277,-1277,-1277,-1277,-1277,-1277,
+
+    -1277,-1277, 1278,-1277,-1277,-1277,-1277,-1277,-1277,-1277,
+    -1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,
+    -1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,
+    -1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,
+    -1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,-1277,
+    -1277,-1277,-1277,-1277,-1277
+    },
+
+    {
+       27,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,
+    -1278,-1278,-1278,-1278,-1278,-1278, 1603,-1278,-1278,-1278,
+    -1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,
+    -1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,
+
+    -1278,-1278, 1603,-1278,-1278,-1278,-1278,-1278,-1278,-1278,
+    -1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,-1278,
+    -1278,-1278,-1278,-1278,-1278
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1604,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1604,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1605,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184, 1606,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1606,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1282, 1282, 1282,-1282,-1282,-1282,-1282,-1282,-1282,
+    -1282,-1282, 1283,-1282,-1282,-1282,-1282,-1282,-1282,-1282,
+    -1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,
+    -1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,
+    -1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,
+    -1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,-1282,
+
+    -1282,-1282,-1282,-1282,-1282
+    },
+
+    {
+       27,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,
+    -1283,-1283,-1283,-1283,-1283,-1283, 1607,-1283,-1283,-1283,
+    -1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,
+    -1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,
+    -1283,-1283, 1607,-1283,-1283,-1283,-1283,-1283,-1283,-1283,
+    -1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,-1283,
+    -1283,-1283,-1283,-1283,-1283
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1608,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1608,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1609,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1609,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1610,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1610,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184, 1611,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 1611,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1612,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1612,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1613,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1613,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,
+    -1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,
+    -1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290, 1614,
+    -1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,
+    -1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,-1290,
+    -1290,-1290,-1290,-1290, 1614,-1290,-1290,-1290,-1290,-1290,
+    -1290,-1290,-1290,-1290,-1290
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1615,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1616,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1617,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1617,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184, 1618,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1618,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1294, 1619, 1619,-1294,-1294,-1294,-1294,-1294,-1294,
+    -1294,-1294, 1620,-1294,-1294,-1294,-1294,-1294,-1294,-1294,
+
+    -1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,
+    -1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,
+    -1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,
+    -1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,-1294,
+    -1294,-1294,-1294,-1294,-1294
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1621,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184, 1621,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1622,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 1622,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1623,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1624,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1624,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1299, 1299, 1299,-1299,-1299,-1299,-1299,-1299,-1299,
+    -1299,-1299, 1300,-1299,-1299,-1299,-1299,-1299,-1299,-1299,
+    -1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,
+    -1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,
+    -1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,
+    -1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,-1299,
+    -1299,-1299,-1299,-1299,-1299
+
+    },
+
+    {
+       27,-1300,-1300,-1300,-1300,-1300,-1300,-1300,-1300,-1300,
+    -1300,-1300,-1300,-1300,-1300,-1300, 1625,-1300,-1300,-1300,
+    -1300,-1300,-1300,-1300,-1300,-1300,-1300,-1300,-1300, 1626,
+    -1300,-1300,-1300,-1300,-1300,-1300,-1300,-1300,-1300,-1300,
+    -1300,-1300, 1625,-1300,-1300,-1300,-1300,-1300,-1300,-1300,
+    -1300,-1300,-1300,-1300, 1626,-1300,-1300,-1300,-1300,-1300,
+    -1300,-1300,-1300,-1300,-1300
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1627,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1627,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,
+    -1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,
+    -1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302, 1628,-1302,
+    -1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,
+    -1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,-1302,
+    -1302,-1302,-1302, 1628,-1302,-1302,-1302,-1302,-1302,-1302,
+
+    -1302,-1302,-1302,-1302,-1302
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1629,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1629,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1630,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1631,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184, 1632,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1632,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184, 1633,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 1634,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 1633,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1634,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 1635,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1636,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1636,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1637,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1638,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1638,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1639,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1640,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1640,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184, 1641,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1641,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1314, 1642, 1642,-1314,-1314,-1314,-1314,-1314,-1314,
+    -1314,-1314, 1643,-1314,-1314,-1314,-1314,-1314,-1314,-1314,
+
+    -1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,
+    -1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,
+    -1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,
+    -1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,-1314,
+    -1314,-1314,-1314,-1314,-1314
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1644,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184, 1644,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,
+    -1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,
+    -1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,
+    -1316,-1316,-1316, 1645,-1316,-1316,-1316,-1316,-1316,-1316,
+    -1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316,
+    -1316,-1316,-1316,-1316,-1316,-1316,-1316,-1316, 1645,-1316,
+    -1316,-1316,-1316,-1316,-1316
+    },
+
+    {
+       27,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,
+
+    -1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,
+    -1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,
+    -1317,-1317,-1317, 1646,-1317,-1317,-1317,-1317,-1317,-1317,
+    -1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317,
+    -1317,-1317,-1317,-1317,-1317,-1317,-1317,-1317, 1646,-1317,
+    -1317,-1317,-1317,-1317,-1317
+    },
+
+    {
+       27,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,
+    -1318,-1318,-1318, 1647,-1318,-1318,-1318,-1318,-1318,-1318,
+    -1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,
+    -1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,
+
+    -1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,
+    -1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,-1318,
+    -1318,-1318,-1318,-1318,-1318
+    },
+
+    {
+       27,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,
+    -1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,
+    -1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,
+    -1319,-1319,-1319, 1648,-1319,-1319,-1319,-1319,-1319,-1319,
+    -1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319,
+    -1319,-1319,-1319,-1319,-1319,-1319,-1319,-1319, 1648,-1319,
+    -1319,-1319,-1319,-1319,-1319
+
+    },
+
+    {
+       27,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,
+    -1320,-1320,-1320, 1649,-1320,-1320,-1320,-1320,-1320,-1320,
+    -1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,
+    -1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,
+    -1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,
+    -1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,-1320,
+    -1320,-1320,-1320,-1320,-1320
+    },
+
+    {
+       27,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,
+    -1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,
+    -1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,
+
+    -1321,-1321,-1321, 1650,-1321,-1321,-1321,-1321,-1321,-1321,
+    -1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321,
+    -1321,-1321,-1321,-1321,-1321,-1321,-1321,-1321, 1650,-1321,
+    -1321,-1321,-1321,-1321,-1321
+    },
+
+    {
+       27,-1322, 1322, 1322,-1322,-1322,-1322,-1322,-1322,-1322,
+    -1322,-1322, 1323,-1322,-1322,-1322,-1322,-1322,-1322,-1322,
+    -1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,
+    -1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,
+    -1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,
+    -1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,-1322,
+
+    -1322,-1322,-1322,-1322,-1322
+    },
+
+    {
+       27,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,
+    -1323,-1323,-1323,-1323,-1323,-1323, 1651,-1323,-1323,-1323,
+    -1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,
+    -1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,
+    -1323,-1323, 1651,-1323,-1323,-1323,-1323,-1323,-1323,-1323,
+    -1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,-1323,
+    -1323,-1323,-1323,-1323,-1323
+    },
+
+    {
+       27,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324, 1652,
+    -1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,
+
+    -1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,
+    -1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324, 1653,
+    -1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,
+    -1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,-1324,
+    -1324,-1324,-1324,-1324,-1324
+    },
+
+    {
+       27,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325, 1654,
+    -1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,
+    -1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,
+    -1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325, 1655,
+    -1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,
+
+    -1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,-1325,
+    -1325,-1325,-1325,-1325,-1325
+    },
+
+    {
+       27,-1326, 1326, 1326,-1326,-1326,-1326,-1326,-1326,-1326,
+    -1326,-1326, 1327,-1326,-1326,-1326,-1326,-1326,-1326,-1326,
+    -1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,
+    -1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,
+    -1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,
+    -1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,-1326,
+    -1326,-1326,-1326,-1326,-1326
+    },
+
+    {
+       27,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,
+
+    -1327,-1327,-1327,-1327,-1327,-1327, 1656,-1327,-1327,-1327,
+    -1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,
+    -1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,
+    -1327,-1327, 1656,-1327,-1327,-1327,-1327,-1327,-1327,-1327,
+    -1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,-1327,
+    -1327,-1327,-1327,-1327,-1327
+    },
+
+    {
+       27,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,
+    -1328,-1328,-1328,-1328, 1657,-1328,-1328,-1328,-1328,-1328,
+    -1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,
+    -1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,
+
+     1657,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,
+    -1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,-1328,
+    -1328,-1328,-1328,-1328,-1328
+    },
+
+    {
+       27,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,
+    -1329,-1329,-1329, 1658,-1329,-1329,-1329,-1329,-1329,-1329,
+    -1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,
+    -1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,
+    -1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,
+    -1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,-1329,
+    -1329,-1329,-1329,-1329,-1329
+
+    },
+
+    {
+       27,-1330, 1330, 1330,-1330,-1330,-1330,-1330,-1330,-1330,
+    -1330,-1330, 1331,-1330,-1330,-1330,-1330,-1330,-1330,-1330,
+    -1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,
+    -1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,
+    -1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,
+    -1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,-1330,
+    -1330,-1330,-1330,-1330,-1330
+    },
+
+    {
+       27,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,
+    -1331,-1331,-1331,-1331,-1331,-1331, 1659,-1331,-1331,-1331,
+    -1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,
+
+    -1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,
+    -1331,-1331, 1659,-1331,-1331,-1331,-1331,-1331,-1331,-1331,
+    -1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,-1331,
+    -1331,-1331,-1331,-1331,-1331
+    },
+
+    {
+       27,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,
+    -1332,-1332,-1332,-1332, 1660,-1332,-1332,-1332,-1332,-1332,
+    -1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,
+    -1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,
+     1660,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,
+    -1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,-1332,
+
+    -1332,-1332,-1332,-1332,-1332
+    },
+
+    {
+       27,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,
+    -1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333, 1661,-1333,
+    -1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,
+    -1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,
+    -1333,-1333,-1333,-1333, 1661,-1333,-1333,-1333,-1333,-1333,
+    -1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,-1333,
+    -1333,-1333,-1333,-1333,-1333
+    },
+
+    {
+       27,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,
+    -1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,
+
+    -1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,
+    -1334,-1334,-1334,-1334,-1334,-1334, 1662,-1334,-1334,-1334,
+    -1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,
+    -1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,-1334,
+    -1334, 1662,-1334,-1334,-1334
+    },
+
+    {
+       27,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,
+    -1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,
+    -1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,
+    -1335,-1335,-1335, 1663,-1335,-1335,-1335,-1335,-1335,-1335,
+    -1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335,
+
+    -1335,-1335,-1335,-1335,-1335,-1335,-1335,-1335, 1663,-1335,
+    -1335,-1335,-1335,-1335,-1335
+    },
+
+    {
+       27,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,
+    -1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,
+    -1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336, 1664,
+    -1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,
+    -1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,-1336,
+    -1336,-1336,-1336,-1336, 1664,-1336,-1336,-1336,-1336,-1336,
+    -1336,-1336,-1336,-1336,-1336
+    },
+
+    {
+       27,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,
+
+    -1337,-1337,-1337,-1337, 1665,-1337,-1337,-1337,-1337,-1337,
+    -1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,
+    -1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,
+     1665,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,
+    -1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,-1337,
+    -1337,-1337,-1337,-1337,-1337
+    },
+
+    {
+       27,-1338, 1666, 1666,-1338,-1338,-1338,-1338,-1338,-1338,
+    -1338,-1338, 1667,-1338,-1338,-1338,-1338,-1338,-1338,-1338,
+    -1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,
+    -1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,
+
+    -1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,
+    -1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,-1338,
+    -1338,-1338,-1338,-1338,-1338
+    },
+
+    {
+       27,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,
+    -1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,
+    -1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,
+    -1339,-1339,-1339, 1668,-1339,-1339,-1339,-1339,-1339,-1339,
+    -1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339,
+    -1339,-1339,-1339,-1339,-1339,-1339,-1339,-1339, 1668,-1339,
+    -1339,-1339,-1339,-1339,-1339
+
+    },
+
+    {
+       27,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,
+    -1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,
+    -1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340, 1669,
+    -1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,
+    -1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,-1340,
+    -1340,-1340,-1340,-1340, 1669,-1340,-1340,-1340,-1340,-1340,
+    -1340,-1340,-1340,-1340,-1340
+    },
+
+    {
+       27,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,
+    -1341,-1341,-1341, 1670,-1341,-1341,-1341,-1341,-1341,-1341,
+    -1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,
+
+    -1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,
+    -1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,
+    -1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,-1341,
+    -1341,-1341,-1341,-1341,-1341
+    },
+
+    {
+       27,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,
+    -1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,
+    -1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,
+    -1342,-1342, 1671,-1342,-1342,-1342,-1342,-1342,-1342,-1342,
+    -1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,-1342,
+    -1342,-1342,-1342,-1342,-1342,-1342,-1342, 1671,-1342,-1342,
+
+    -1342,-1342,-1342,-1342,-1342
+    },
+
+    {
+       27,-1343, 1343, 1343,-1343,-1343,-1343,-1343,-1343,-1343,
+    -1343,-1343, 1344,-1343,-1343,-1343,-1343,-1343,-1343,-1343,
+    -1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,
+    -1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,
+    -1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,
+    -1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,-1343,
+    -1343,-1343,-1343,-1343,-1343
+    },
+
+    {
+       27,-1344,-1344,-1344,-1344,-1344,-1344,-1344,-1344,-1344,
+    -1344,-1344,-1344,-1344,-1344,-1344, 1672,-1344,-1344,-1344,
+
+    -1344,-1344,-1344,-1344,-1344,-1344,-1344,-1344,-1344, 1673,
+    -1344,-1344,-1344,-1344,-1344,-1344,-1344,-1344,-1344,-1344,
+    -1344,-1344, 1672,-1344,-1344,-1344,-1344,-1344,-1344,-1344,
+    -1344,-1344,-1344,-1344, 1673,-1344,-1344,-1344,-1344,-1344,
+    -1344,-1344,-1344,-1344,-1344
+    },
+
+    {
+       27,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,
+    -1345,-1345,-1345,-1345, 1674,-1345,-1345,-1345,-1345,-1345,
+    -1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,
+    -1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,
+     1674,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,
+
+    -1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,-1345,
+    -1345,-1345,-1345,-1345,-1345
+    },
+
+    {
+       27,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,
+    -1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,
+    -1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346, 1675,-1346,
+    -1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,
+    -1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,-1346,
+    -1346,-1346,-1346, 1675,-1346,-1346,-1346,-1346,-1346,-1346,
+    -1346,-1346,-1346,-1346,-1346
+    },
+
+    {
+       27,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,
+
+    -1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,
+    -1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,
+    -1347, 1676,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,
+    -1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,-1347,
+    -1347,-1347,-1347,-1347,-1347,-1347, 1676,-1347,-1347,-1347,
+    -1347,-1347,-1347,-1347,-1347
+    },
+
+    {
+       27,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348, 1677,
+    -1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,
+    -1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,
+    -1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348, 1678,
+
+    -1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,
+    -1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,-1348,
+    -1348,-1348,-1348,-1348,-1348
+    },
+
+    {
+       27,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,
+    -1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,
+    -1349,-1349, 1679,-1349,-1349,-1349,-1349,-1349,-1349,-1349,
+    -1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,
+    -1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349, 1679,-1349,
+    -1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,-1349,
+    -1349,-1349,-1349,-1349,-1349
+
+    },
+
+    {
+       27,-1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350,
+    -1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350, 1680,-1350,
+    -1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350,
+    -1350,-1350,-1350,-1350, 1681,-1350,-1350,-1350,-1350,-1350,
+    -1350,-1350,-1350,-1350, 1680,-1350,-1350,-1350,-1350,-1350,
+    -1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350,-1350, 1681,
+    -1350,-1350,-1350,-1350,-1350
+    },
+
+    {
+       27,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,
+    -1351,-1351,-1351, 1682,-1351,-1351,-1351,-1351,-1351,-1351,
+    -1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,
+
+    -1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,
+    -1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,
+    -1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,-1351,
+    -1351,-1351,-1351,-1351,-1351
+    },
+
+    {
+       27,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,
+    -1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,
+    -1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,
+    -1352,-1352, 1683,-1352,-1352,-1352,-1352,-1352,-1352,-1352,
+    -1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,-1352,
+    -1352,-1352,-1352,-1352,-1352,-1352,-1352, 1683,-1352,-1352,
+
+    -1352,-1352,-1352,-1352,-1352
+    },
+
+    {
+       27,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,
+    -1353,-1353,-1353, 1684,-1353,-1353,-1353,-1353,-1353,-1353,
+    -1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,
+    -1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,
+    -1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,
+    -1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,-1353,
+    -1353,-1353,-1353,-1353,-1353
+    },
+
+    {
+       27,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,
+    -1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,
+
+    -1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,
+    -1354,-1354, 1685,-1354,-1354,-1354,-1354,-1354,-1354,-1354,
+    -1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,-1354,
+    -1354,-1354,-1354,-1354,-1354,-1354,-1354, 1685,-1354,-1354,
+    -1354,-1354,-1354,-1354,-1354
+    },
+
+    {
+       27,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,
+    -1355,-1355,-1355, 1686,-1355,-1355,-1355,-1355,-1355,-1355,
+    -1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,
+    -1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,
+    -1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,
+
+    -1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,-1355,
+    -1355,-1355,-1355,-1355,-1355
+    },
+
+    {
+       27,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,
+    -1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,
+    -1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,
+    -1356,-1356, 1687,-1356,-1356,-1356,-1356,-1356,-1356,-1356,
+    -1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,-1356,
+    -1356,-1356,-1356,-1356,-1356,-1356,-1356, 1687,-1356,-1356,
+    -1356,-1356,-1356,-1356,-1356
+    },
+
+    {
+       27,-1357, 1688, 1688,-1357,-1357,-1357,-1357,-1357,-1357,
+
+    -1357,-1357, 1689,-1357,-1357,-1357,-1357,-1357,-1357,-1357,
+    -1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,
+    -1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,
+    -1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,
+    -1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,-1357,
+    -1357,-1357,-1357,-1357,-1357
+    },
+
+    {
+       27,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,
+    -1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,
+    -1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,
+    -1358,-1358,-1358, 1690,-1358,-1358,-1358,-1358,-1358,-1358,
+
+    -1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358,
+    -1358,-1358,-1358,-1358,-1358,-1358,-1358,-1358, 1690,-1358,
+    -1358,-1358,-1358,-1358,-1358
+    },
+
+    {
+       27,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,
+    -1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,
+    -1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,
+    -1359,-1359,-1359, 1691,-1359,-1359,-1359,-1359,-1359,-1359,
+    -1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359,
+    -1359,-1359,-1359,-1359,-1359,-1359,-1359,-1359, 1691,-1359,
+    -1359,-1359,-1359,-1359,-1359
+
+    },
+
+    {
+       27,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,
+    -1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,
+    -1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,
+    -1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,
+    -1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,
+    -1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,-1360,
+    -1360,-1360,-1360,-1360,-1360
+    },
+
+    {
+       27,-1361, 1361, 1361,-1361,-1361,-1361,-1361,-1361,-1361,
+    -1361,-1361, 1362,-1361,-1361,-1361,-1361,-1361,-1361,-1361,
+    -1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,
+
+    -1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,
+    -1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,
+    -1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,-1361,
+    -1361,-1361,-1361,-1361,-1361
+    },
+
+    {
+       27,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,
+    -1362,-1362,-1362,-1362,-1362,-1362, 1692,-1362,-1362,-1362,
+    -1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,
+    -1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,
+    -1362,-1362, 1692,-1362,-1362,-1362,-1362,-1362,-1362,-1362,
+    -1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,-1362,
+
+    -1362,-1362,-1362,-1362,-1362
+    },
+
+    {
+       27,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363, 1693,
+    -1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,
+    -1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,
+    -1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363, 1694,
+    -1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,
+    -1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,-1363,
+    -1363,-1363,-1363,-1363,-1363
+    },
+
+    {
+       27,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364, 1695,
+    -1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,
+
+    -1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,
+    -1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364, 1696,
+    -1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,
+    -1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,-1364,
+    -1364,-1364,-1364,-1364,-1364
+    },
+
+    {
+       27,-1365, 1365, 1365,-1365,-1365,-1365,-1365,-1365,-1365,
+    -1365,-1365, 1366,-1365,-1365,-1365,-1365,-1365,-1365,-1365,
+    -1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,
+    -1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,
+    -1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,
+
+    -1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,-1365,
+    -1365,-1365,-1365,-1365,-1365
+    },
+
+    {
+       27,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,
+    -1366,-1366,-1366,-1366,-1366,-1366, 1697,-1366,-1366,-1366,
+    -1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,
+    -1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,
+    -1366,-1366, 1697,-1366,-1366,-1366,-1366,-1366,-1366,-1366,
+    -1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,-1366,
+    -1366,-1366,-1366,-1366,-1366
+    },
+
+    {
+       27,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,
+
+    -1367,-1367,-1367,-1367, 1698,-1367,-1367,-1367,-1367,-1367,
+    -1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,
+    -1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,
+     1698,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,
+    -1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,-1367,
+    -1367,-1367,-1367,-1367,-1367
+    },
+
+    {
+       27,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,
+    -1368,-1368,-1368, 1699,-1368,-1368,-1368,-1368,-1368,-1368,
+    -1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,
+    -1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,
+
+    -1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,
+    -1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,-1368,
+    -1368,-1368,-1368,-1368,-1368
+    },
+
+    {
+       27,-1369, 1369, 1369,-1369,-1369,-1369,-1369,-1369,-1369,
+    -1369,-1369, 1370,-1369,-1369,-1369,-1369,-1369,-1369,-1369,
+    -1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,
+    -1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,
+    -1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,
+    -1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,-1369,
+    -1369,-1369,-1369,-1369,-1369
+
+    },
+
+    {
+       27,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,
+    -1370,-1370,-1370,-1370,-1370,-1370, 1700,-1370,-1370,-1370,
+    -1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,
+    -1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,
+    -1370,-1370, 1700,-1370,-1370,-1370,-1370,-1370,-1370,-1370,
+    -1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,-1370,
+    -1370,-1370,-1370,-1370,-1370
+    },
+
+    {
+       27,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,
+    -1371,-1371,-1371,-1371, 1701,-1371,-1371,-1371,-1371,-1371,
+    -1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,
+
+    -1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,
+     1701,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,
+    -1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,-1371,
+    -1371,-1371,-1371,-1371,-1371
+    },
+
+    {
+       27,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,
+    -1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372, 1702,-1372,
+    -1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,
+    -1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,
+    -1372,-1372,-1372,-1372, 1702,-1372,-1372,-1372,-1372,-1372,
+    -1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,-1372,
+
+    -1372,-1372,-1372,-1372,-1372
+    },
+
+    {
+       27,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,
+    -1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,
+    -1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,
+    -1373,-1373,-1373,-1373,-1373,-1373, 1703,-1373,-1373,-1373,
+    -1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,
+    -1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,-1373,
+    -1373, 1703,-1373,-1373,-1373
+    },
+
+    {
+       27,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,
+    -1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,
+
+    -1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,
+    -1374,-1374,-1374, 1704,-1374,-1374,-1374,-1374,-1374,-1374,
+    -1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374,
+    -1374,-1374,-1374,-1374,-1374,-1374,-1374,-1374, 1704,-1374,
+    -1374,-1374,-1374,-1374,-1374
+    },
+
+    {
+       27,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,
+    -1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,
+    -1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375, 1705,
+    -1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,
+    -1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,-1375,
+
+    -1375,-1375,-1375,-1375, 1705,-1375,-1375,-1375,-1375,-1375,
+    -1375,-1375,-1375,-1375,-1375
+    },
+
+    {
+       27,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,
+    -1376,-1376,-1376,-1376, 1706,-1376,-1376,-1376,-1376,-1376,
+    -1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,
+    -1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,
+     1706,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,
+    -1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,-1376,
+    -1376,-1376,-1376,-1376,-1376
+    },
+
+    {
+       27,-1377, 1707, 1707,-1377,-1377,-1377,-1377,-1377,-1377,
+
+    -1377,-1377, 1708,-1377,-1377,-1377,-1377,-1377,-1377,-1377,
+    -1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,
+    -1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,
+    -1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,
+    -1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,-1377,
+    -1377,-1377,-1377,-1377,-1377
+    },
+
+    {
+       27,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,
+    -1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,
+    -1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,
+    -1378,-1378,-1378, 1709,-1378,-1378,-1378,-1378,-1378,-1378,
+
+    -1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378,
+    -1378,-1378,-1378,-1378,-1378,-1378,-1378,-1378, 1709,-1378,
+    -1378,-1378,-1378,-1378,-1378
+    },
+
+    {
+       27,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,
+    -1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,
+    -1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379, 1710,
+    -1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,
+    -1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,-1379,
+    -1379,-1379,-1379,-1379, 1710,-1379,-1379,-1379,-1379,-1379,
+    -1379,-1379,-1379,-1379,-1379
+
+    },
+
+    {
+       27,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,
+    -1380,-1380,-1380, 1711,-1380,-1380,-1380,-1380,-1380,-1380,
+    -1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,
+    -1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,
+    -1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,
+    -1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,-1380,
+    -1380,-1380,-1380,-1380,-1380
+    },
+
+    {
+       27,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,
+    -1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,
+    -1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,
+
+    -1381,-1381, 1712,-1381,-1381,-1381,-1381,-1381,-1381,-1381,
+    -1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,-1381,
+    -1381,-1381,-1381,-1381,-1381,-1381,-1381, 1712,-1381,-1381,
+    -1381,-1381,-1381,-1381,-1381
+    },
+
+    {
+       27,-1382, 1382, 1382,-1382,-1382,-1382,-1382,-1382,-1382,
+    -1382,-1382, 1383,-1382,-1382,-1382,-1382,-1382,-1382,-1382,
+    -1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,
+    -1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,
+    -1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,
+    -1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,-1382,
+
+    -1382,-1382,-1382,-1382,-1382
+    },
+
+    {
+       27,-1383,-1383,-1383,-1383,-1383,-1383,-1383,-1383,-1383,
+    -1383,-1383,-1383,-1383,-1383,-1383, 1713,-1383,-1383,-1383,
+    -1383,-1383,-1383,-1383,-1383,-1383,-1383,-1383,-1383, 1714,
+    -1383,-1383,-1383,-1383,-1383,-1383,-1383,-1383,-1383,-1383,
+    -1383,-1383, 1713,-1383,-1383,-1383,-1383,-1383,-1383,-1383,
+    -1383,-1383,-1383,-1383, 1714,-1383,-1383,-1383,-1383,-1383,
+    -1383,-1383,-1383,-1383,-1383
+    },
+
+    {
+       27,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,
+    -1384,-1384,-1384,-1384, 1715,-1384,-1384,-1384,-1384,-1384,
+
+    -1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,
+    -1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,
+     1715,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,
+    -1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,-1384,
+    -1384,-1384,-1384,-1384,-1384
+    },
+
+    {
+       27,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,
+    -1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,
+    -1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385, 1716,-1385,
+    -1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,
+    -1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,-1385,
+
+    -1385,-1385,-1385, 1716,-1385,-1385,-1385,-1385,-1385,-1385,
+    -1385,-1385,-1385,-1385,-1385
+    },
+
+    {
+       27,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,
+    -1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,
+    -1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,
+    -1386, 1717,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,
+    -1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,-1386,
+    -1386,-1386,-1386,-1386,-1386,-1386, 1717,-1386,-1386,-1386,
+    -1386,-1386,-1386,-1386,-1386
+    },
+
+    {
+       27,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387, 1718,
+
+    -1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,
+    -1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,
+    -1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387, 1719,
+    -1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,
+    -1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,-1387,
+    -1387,-1387,-1387,-1387,-1387
+    },
+
+    {
+       27,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,
+    -1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,
+    -1388,-1388, 1720,-1388,-1388,-1388,-1388,-1388,-1388,-1388,
+    -1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,
+
+    -1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388, 1720,-1388,
+    -1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,-1388,
+    -1388,-1388,-1388,-1388,-1388
+    },
+
+    {
+       27,-1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389,
+    -1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389, 1721,-1389,
+    -1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389,
+    -1389,-1389,-1389,-1389, 1722,-1389,-1389,-1389,-1389,-1389,
+    -1389,-1389,-1389,-1389, 1721,-1389,-1389,-1389,-1389,-1389,
+    -1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389,-1389, 1722,
+    -1389,-1389,-1389,-1389,-1389
+
+    },
+
+    {
+       27,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,
+    -1390,-1390,-1390, 1723,-1390,-1390,-1390,-1390,-1390,-1390,
+    -1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,
+    -1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,
+    -1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,
+    -1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,-1390,
+    -1390,-1390,-1390,-1390,-1390
+    },
+
+    {
+       27,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,
+    -1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,
+    -1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,
+
+    -1391,-1391, 1724,-1391,-1391,-1391,-1391,-1391,-1391,-1391,
+    -1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,-1391,
+    -1391,-1391,-1391,-1391,-1391,-1391,-1391, 1724,-1391,-1391,
+    -1391,-1391,-1391,-1391,-1391
+    },
+
+    {
+       27,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,
+    -1392,-1392,-1392, 1725,-1392,-1392,-1392,-1392,-1392,-1392,
+    -1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,
+    -1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,
+    -1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,
+    -1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,-1392,
+
+    -1392,-1392,-1392,-1392,-1392
+    },
+
+    {
+       27,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,
+    -1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,
+    -1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,
+    -1393,-1393, 1726,-1393,-1393,-1393,-1393,-1393,-1393,-1393,
+    -1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,-1393,
+    -1393,-1393,-1393,-1393,-1393,-1393,-1393, 1726,-1393,-1393,
+    -1393,-1393,-1393,-1393,-1393
+    },
+
+    {
+       27,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,
+    -1394,-1394,-1394, 1727,-1394,-1394,-1394,-1394,-1394,-1394,
+
+    -1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,
+    -1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,
+    -1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,
+    -1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,-1394,
+    -1394,-1394,-1394,-1394,-1394
+    },
+
+    {
+       27,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,
+    -1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,
+    -1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,
+    -1395,-1395, 1728,-1395,-1395,-1395,-1395,-1395,-1395,-1395,
+    -1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,-1395,
+
+    -1395,-1395,-1395,-1395,-1395,-1395,-1395, 1728,-1395,-1395,
+    -1395,-1395,-1395,-1395,-1395
+    },
+
+    {
+       27,-1396, 1729, 1729,-1396,-1396,-1396,-1396,-1396,-1396,
+    -1396,-1396, 1730,-1396,-1396,-1396,-1396,-1396,-1396,-1396,
+    -1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,
+    -1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,
+    -1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,
+    -1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,-1396,
+    -1396,-1396,-1396,-1396,-1396
+    },
+
+    {
+       27,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,
+
+    -1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,
+    -1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,
+    -1397,-1397,-1397, 1731,-1397,-1397,-1397,-1397,-1397,-1397,
+    -1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397,
+    -1397,-1397,-1397,-1397,-1397,-1397,-1397,-1397, 1731,-1397,
+    -1397,-1397,-1397,-1397,-1397
+    },
+
+    {
+       27,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,
+    -1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,
+    -1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,
+    -1398,-1398,-1398, 1732,-1398,-1398,-1398,-1398,-1398,-1398,
+
+    -1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398,
+    -1398,-1398,-1398,-1398,-1398,-1398,-1398,-1398, 1732,-1398,
+    -1398,-1398,-1398,-1398,-1398
+    },
+
+    {
+       27,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,
+    -1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,
+    -1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399, 1733,-1399,
+    -1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,
+    -1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,-1399,
+    -1399,-1399,-1399, 1733,-1399,-1399,-1399,-1399,-1399,-1399,
+    -1399,-1399,-1399,-1399,-1399
+
+    },
+
+    {
+       27,-1400, 1400, 1400,-1400,-1400,-1400,-1400,-1400,-1400,
+    -1400,-1400, 1401,-1400,-1400,-1400,-1400,-1400,-1400,-1400,
+    -1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,
+    -1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,
+    -1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,
+    -1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,-1400,
+    -1400,-1400,-1400,-1400,-1400
+    },
+
+    {
+       27,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,
+    -1401,-1401,-1401,-1401,-1401,-1401, 1734,-1401,-1401,-1401,
+    -1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,
+
+    -1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,
+    -1401,-1401, 1734,-1401,-1401,-1401,-1401,-1401,-1401,-1401,
+    -1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,-1401,
+    -1401,-1401,-1401,-1401,-1401
+    },
+
+    {
+       27,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402, 1735,
+    -1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,
+    -1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,
+    -1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402, 1736,
+    -1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,
+    -1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,-1402,
+
+    -1402,-1402,-1402,-1402,-1402
+    },
+
+    {
+       27,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403, 1737,
+    -1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,
+    -1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,
+    -1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403, 1738,
+    -1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,
+    -1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,-1403,
+    -1403,-1403,-1403,-1403,-1403
+    },
+
+    {
+       27,-1404, 1404, 1404,-1404,-1404,-1404,-1404,-1404,-1404,
+    -1404,-1404, 1405,-1404,-1404,-1404,-1404,-1404,-1404,-1404,
+
+    -1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,
+    -1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,
+    -1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,
+    -1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,-1404,
+    -1404,-1404,-1404,-1404,-1404
+    },
+
+    {
+       27,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,
+    -1405,-1405,-1405,-1405,-1405,-1405, 1739,-1405,-1405,-1405,
+    -1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,
+    -1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,
+    -1405,-1405, 1739,-1405,-1405,-1405,-1405,-1405,-1405,-1405,
+
+    -1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,-1405,
+    -1405,-1405,-1405,-1405,-1405
+    },
+
+    {
+       27,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,
+    -1406,-1406,-1406,-1406, 1740,-1406,-1406,-1406,-1406,-1406,
+    -1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,
+    -1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,
+     1740,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,
+    -1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,-1406,
+    -1406,-1406,-1406,-1406,-1406
+    },
+
+    {
+       27,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,
+
+    -1407,-1407,-1407, 1741,-1407,-1407,-1407,-1407,-1407,-1407,
+    -1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,
+    -1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,
+    -1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,
+    -1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,-1407,
+    -1407,-1407,-1407,-1407,-1407
+    },
+
+    {
+       27,-1408, 1408, 1408,-1408,-1408,-1408,-1408,-1408,-1408,
+    -1408,-1408, 1409,-1408,-1408,-1408,-1408,-1408,-1408,-1408,
+    -1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,
+    -1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,
+
+    -1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,
+    -1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,-1408,
+    -1408,-1408,-1408,-1408,-1408
+    },
+
+    {
+       27,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,
+    -1409,-1409,-1409,-1409,-1409,-1409, 1742,-1409,-1409,-1409,
+    -1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,
+    -1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,
+    -1409,-1409, 1742,-1409,-1409,-1409,-1409,-1409,-1409,-1409,
+    -1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,-1409,
+    -1409,-1409,-1409,-1409,-1409
+
+    },
+
+    {
+       27,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,
+    -1410,-1410,-1410,-1410, 1743,-1410,-1410,-1410,-1410,-1410,
+    -1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,
+    -1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,
+     1743,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,
+    -1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,-1410,
+    -1410,-1410,-1410,-1410,-1410
+    },
+
+    {
+       27,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,
+    -1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411, 1744,-1411,
+    -1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,
+
+    -1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,
+    -1411,-1411,-1411,-1411, 1744,-1411,-1411,-1411,-1411,-1411,
+    -1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,-1411,
+    -1411,-1411,-1411,-1411,-1411
+    },
+
+    {
+       27,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,
+    -1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,
+    -1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,
+    -1412,-1412,-1412,-1412,-1412,-1412, 1745,-1412,-1412,-1412,
+    -1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,
+    -1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,-1412,
+
+    -1412, 1745,-1412,-1412,-1412
+    },
+
+    {
+       27,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,
+    -1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,
+    -1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,
+    -1413,-1413,-1413, 1746,-1413,-1413,-1413,-1413,-1413,-1413,
+    -1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413,
+    -1413,-1413,-1413,-1413,-1413,-1413,-1413,-1413, 1746,-1413,
+    -1413,-1413,-1413,-1413,-1413
+    },
+
+    {
+       27,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,
+    -1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,
+
+    -1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414, 1747,
+    -1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,
+    -1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,-1414,
+    -1414,-1414,-1414,-1414, 1747,-1414,-1414,-1414,-1414,-1414,
+    -1414,-1414,-1414,-1414,-1414
+    },
+
+    {
+       27,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,
+    -1415,-1415,-1415,-1415, 1748,-1415,-1415,-1415,-1415,-1415,
+    -1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,
+    -1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,
+     1748,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,
+
+    -1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,-1415,
+    -1415,-1415,-1415,-1415,-1415
+    },
+
+    {
+       27,-1416, 1749, 1749,-1416,-1416,-1416,-1416,-1416,-1416,
+    -1416,-1416, 1750,-1416,-1416,-1416,-1416,-1416,-1416,-1416,
+    -1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,
+    -1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,
+    -1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,
+    -1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,-1416,
+    -1416,-1416,-1416,-1416,-1416
+    },
+
+    {
+       27,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,
+
+    -1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,
+    -1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,
+    -1417,-1417,-1417, 1751,-1417,-1417,-1417,-1417,-1417,-1417,
+    -1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417,
+    -1417,-1417,-1417,-1417,-1417,-1417,-1417,-1417, 1751,-1417,
+    -1417,-1417,-1417,-1417,-1417
+    },
+
+    {
+       27,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,
+    -1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,
+    -1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418, 1752,
+    -1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,
+
+    -1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,-1418,
+    -1418,-1418,-1418,-1418, 1752,-1418,-1418,-1418,-1418,-1418,
+    -1418,-1418,-1418,-1418,-1418
+    },
+
+    {
+       27,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,
+    -1419,-1419,-1419, 1753,-1419,-1419,-1419,-1419,-1419,-1419,
+    -1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,
+    -1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,
+    -1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,
+    -1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,-1419,
+    -1419,-1419,-1419,-1419,-1419
+
+    },
+
+    {
+       27,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,
+    -1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,
+    -1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,
+    -1420,-1420, 1754,-1420,-1420,-1420,-1420,-1420,-1420,-1420,
+    -1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,-1420,
+    -1420,-1420,-1420,-1420,-1420,-1420,-1420, 1754,-1420,-1420,
+    -1420,-1420,-1420,-1420,-1420
+    },
+
+    {
+       27,-1421, 1421, 1421,-1421,-1421,-1421,-1421,-1421,-1421,
+    -1421,-1421, 1422,-1421,-1421,-1421,-1421,-1421,-1421,-1421,
+    -1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,
+
+    -1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,
+    -1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,
+    -1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,-1421,
+    -1421,-1421,-1421,-1421,-1421
+    },
+
+    {
+       27,-1422,-1422,-1422,-1422,-1422,-1422,-1422,-1422,-1422,
+    -1422,-1422,-1422,-1422,-1422,-1422, 1755,-1422,-1422,-1422,
+    -1422,-1422,-1422,-1422,-1422,-1422,-1422,-1422,-1422, 1756,
+    -1422,-1422,-1422,-1422,-1422,-1422,-1422,-1422,-1422,-1422,
+    -1422,-1422, 1755,-1422,-1422,-1422,-1422,-1422,-1422,-1422,
+    -1422,-1422,-1422,-1422, 1756,-1422,-1422,-1422,-1422,-1422,
+
+    -1422,-1422,-1422,-1422,-1422
+    },
+
+    {
+       27,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,
+    -1423,-1423,-1423,-1423, 1757,-1423,-1423,-1423,-1423,-1423,
+    -1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,
+    -1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,
+     1757,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,
+    -1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,-1423,
+    -1423,-1423,-1423,-1423,-1423
+    },
+
+    {
+       27,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,
+    -1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,
+
+    -1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424, 1758,-1424,
+    -1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,
+    -1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,-1424,
+    -1424,-1424,-1424, 1758,-1424,-1424,-1424,-1424,-1424,-1424,
+    -1424,-1424,-1424,-1424,-1424
+    },
+
+    {
+       27,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,
+    -1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,
+    -1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,
+    -1425, 1759,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,
+    -1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,-1425,
+
+    -1425,-1425,-1425,-1425,-1425,-1425, 1759,-1425,-1425,-1425,
+    -1425,-1425,-1425,-1425,-1425
+    },
+
+    {
+       27,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426, 1760,
+    -1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,
+    -1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,
+    -1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426, 1761,
+    -1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,
+    -1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,-1426,
+    -1426,-1426,-1426,-1426,-1426
+    },
+
+    {
+       27,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,
+
+    -1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,
+    -1427,-1427, 1762,-1427,-1427,-1427,-1427,-1427,-1427,-1427,
+    -1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,
+    -1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427, 1762,-1427,
+    -1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,-1427,
+    -1427,-1427,-1427,-1427,-1427
+    },
+
+    {
+       27,-1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428,
+    -1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428, 1763,-1428,
+    -1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428,
+    -1428,-1428,-1428,-1428, 1764,-1428,-1428,-1428,-1428,-1428,
+
+    -1428,-1428,-1428,-1428, 1763,-1428,-1428,-1428,-1428,-1428,
+    -1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428,-1428, 1764,
+    -1428,-1428,-1428,-1428,-1428
+    },
+
+    {
+       27,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,
+    -1429,-1429,-1429, 1765,-1429,-1429,-1429,-1429,-1429,-1429,
+    -1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,
+    -1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,
+    -1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,
+    -1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,-1429,
+    -1429,-1429,-1429,-1429,-1429
+
+    },
+
+    {
+       27,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,
+    -1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,
+    -1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,
+    -1430,-1430, 1766,-1430,-1430,-1430,-1430,-1430,-1430,-1430,
+    -1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,-1430,
+    -1430,-1430,-1430,-1430,-1430,-1430,-1430, 1766,-1430,-1430,
+    -1430,-1430,-1430,-1430,-1430
+    },
+
+    {
+       27,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,
+    -1431,-1431,-1431, 1767,-1431,-1431,-1431,-1431,-1431,-1431,
+    -1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,
+
+    -1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,
+    -1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,
+    -1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,-1431,
+    -1431,-1431,-1431,-1431,-1431
+    },
+
+    {
+       27,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,
+    -1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,
+    -1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,
+    -1432,-1432, 1768,-1432,-1432,-1432,-1432,-1432,-1432,-1432,
+    -1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,-1432,
+    -1432,-1432,-1432,-1432,-1432,-1432,-1432, 1768,-1432,-1432,
+
+    -1432,-1432,-1432,-1432,-1432
+    },
+
+    {
+       27,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,
+    -1433,-1433,-1433, 1769,-1433,-1433,-1433,-1433,-1433,-1433,
+    -1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,
+    -1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,
+    -1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,
+    -1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,-1433,
+    -1433,-1433,-1433,-1433,-1433
+    },
+
+    {
+       27,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,
+    -1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,
+
+    -1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,
+    -1434,-1434, 1770,-1434,-1434,-1434,-1434,-1434,-1434,-1434,
+    -1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,-1434,
+    -1434,-1434,-1434,-1434,-1434,-1434,-1434, 1770,-1434,-1434,
+    -1434,-1434,-1434,-1434,-1434
+    },
+
+    {
+       27,-1435, 1771, 1771,-1435,-1435,-1435,-1435,-1435,-1435,
+    -1435,-1435, 1772,-1435,-1435,-1435,-1435,-1435,-1435,-1435,
+    -1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,
+    -1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,
+    -1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,
+
+    -1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,-1435,
+    -1435,-1435,-1435,-1435,-1435
+    },
+
+    {
+       27,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,
+    -1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,
+    -1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,
+    -1436,-1436,-1436, 1773,-1436,-1436,-1436,-1436,-1436,-1436,
+    -1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436,
+    -1436,-1436,-1436,-1436,-1436,-1436,-1436,-1436, 1773,-1436,
+    -1436,-1436,-1436,-1436,-1436
+    },
+
+    {
+       27,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,
+
+    -1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,
+    -1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,
+    -1437,-1437,-1437, 1774,-1437,-1437,-1437,-1437,-1437,-1437,
+    -1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437,
+    -1437,-1437,-1437,-1437,-1437,-1437,-1437,-1437, 1774,-1437,
+    -1437,-1437,-1437,-1437,-1437
+    },
+
+    {
+       27,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,
+    -1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,
+    -1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438, 1775,-1438,
+    -1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,
+
+    -1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,-1438,
+    -1438,-1438,-1438, 1775,-1438,-1438,-1438,-1438,-1438,-1438,
+    -1438,-1438,-1438,-1438,-1438
+    },
+
+    {
+       27,-1439, 1439, 1439,-1439,-1439,-1439,-1439,-1439,-1439,
+    -1439,-1439, 1440,-1439,-1439,-1439,-1439,-1439,-1439,-1439,
+    -1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,
+    -1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,
+    -1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,
+    -1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,-1439,
+    -1439,-1439,-1439,-1439,-1439
+
+    },
+
+    {
+       27,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,
+    -1440,-1440,-1440,-1440,-1440,-1440, 1776,-1440,-1440,-1440,
+    -1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,
+    -1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,
+    -1440,-1440, 1776,-1440,-1440,-1440,-1440,-1440,-1440,-1440,
+    -1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,-1440,
+    -1440,-1440,-1440,-1440,-1440
+    },
+
+    {
+       27,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441, 1777,
+    -1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,
+    -1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,
+
+    -1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441, 1778,
+    -1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,
+    -1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,-1441,
+    -1441,-1441,-1441,-1441,-1441
+    },
+
+    {
+       27,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442, 1779,
+    -1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,
+    -1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,
+    -1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442, 1780,
+    -1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,
+    -1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,-1442,
+
+    -1442,-1442,-1442,-1442,-1442
+    },
+
+    {
+       27,-1443, 1443, 1443,-1443,-1443,-1443,-1443,-1443,-1443,
+    -1443,-1443, 1444,-1443,-1443,-1443,-1443,-1443,-1443,-1443,
+    -1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,
+    -1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,
+    -1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,
+    -1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,-1443,
+    -1443,-1443,-1443,-1443,-1443
+    },
+
+    {
+       27,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,
+    -1444,-1444,-1444,-1444,-1444,-1444, 1781,-1444,-1444,-1444,
+
+    -1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,
+    -1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,
+    -1444,-1444, 1781,-1444,-1444,-1444,-1444,-1444,-1444,-1444,
+    -1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,-1444,
+    -1444,-1444,-1444,-1444,-1444
+    },
+
+    {
+       27,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,
+    -1445,-1445,-1445,-1445, 1782,-1445,-1445,-1445,-1445,-1445,
+    -1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,
+    -1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,
+     1782,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,
+
+    -1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,-1445,
+    -1445,-1445,-1445,-1445,-1445
+    },
+
+    {
+       27,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,
+    -1446,-1446,-1446, 1783,-1446,-1446,-1446,-1446,-1446,-1446,
+    -1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,
+    -1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,
+    -1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,
+    -1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,-1446,
+    -1446,-1446,-1446,-1446,-1446
+    },
+
+    {
+       27,-1447, 1447, 1447,-1447,-1447,-1447,-1447,-1447,-1447,
+
+    -1447,-1447, 1448,-1447,-1447,-1447,-1447,-1447,-1447,-1447,
+    -1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,
+    -1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,
+    -1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,
+    -1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,-1447,
+    -1447,-1447,-1447,-1447,-1447
+    },
+
+    {
+       27,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,
+    -1448,-1448,-1448,-1448,-1448,-1448, 1784,-1448,-1448,-1448,
+    -1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,
+    -1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,
+
+    -1448,-1448, 1784,-1448,-1448,-1448,-1448,-1448,-1448,-1448,
+    -1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,-1448,
+    -1448,-1448,-1448,-1448,-1448
+    },
+
+    {
+       27,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,
+    -1449,-1449,-1449,-1449, 1785,-1449,-1449,-1449,-1449,-1449,
+    -1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,
+    -1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,
+     1785,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,
+    -1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,-1449,
+    -1449,-1449,-1449,-1449,-1449
+
+    },
+
+    {
+       27,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,
+    -1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450, 1786,-1450,
+    -1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,
+    -1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,
+    -1450,-1450,-1450,-1450, 1786,-1450,-1450,-1450,-1450,-1450,
+    -1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,-1450,
+    -1450,-1450,-1450,-1450,-1450
+    },
+
+    {
+       27,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,
+    -1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,
+    -1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,
+
+    -1451,-1451,-1451,-1451,-1451,-1451, 1787,-1451,-1451,-1451,
+    -1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,
+    -1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,-1451,
+    -1451, 1787,-1451,-1451,-1451
+    },
+
+    {
+       27,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,
+    -1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,
+    -1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,
+    -1452,-1452,-1452, 1788,-1452,-1452,-1452,-1452,-1452,-1452,
+    -1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452,
+    -1452,-1452,-1452,-1452,-1452,-1452,-1452,-1452, 1788,-1452,
+
+    -1452,-1452,-1452,-1452,-1452
+    },
+
+    {
+       27,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,
+    -1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,
+    -1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453, 1789,
+    -1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,
+    -1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,-1453,
+    -1453,-1453,-1453,-1453, 1789,-1453,-1453,-1453,-1453,-1453,
+    -1453,-1453,-1453,-1453,-1453
+    },
+
+    {
+       27,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,
+    -1454,-1454,-1454,-1454, 1790,-1454,-1454,-1454,-1454,-1454,
+
+    -1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,
+    -1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,
+     1790,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,
+    -1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,-1454,
+    -1454,-1454,-1454,-1454,-1454
+    },
+
+    {
+       27,-1455, 1791, 1791,-1455,-1455,-1455,-1455,-1455,-1455,
+    -1455,-1455, 1792,-1455,-1455,-1455,-1455,-1455,-1455,-1455,
+    -1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,
+    -1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,
+    -1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,
+
+    -1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,-1455,
+    -1455,-1455,-1455,-1455,-1455
+    },
+
+    {
+       27,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,
+    -1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,
+    -1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,
+    -1456,-1456,-1456, 1793,-1456,-1456,-1456,-1456,-1456,-1456,
+    -1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456,
+    -1456,-1456,-1456,-1456,-1456,-1456,-1456,-1456, 1793,-1456,
+    -1456,-1456,-1456,-1456,-1456
+    },
+
+    {
+       27,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,
+
+    -1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,
+    -1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457, 1794,
+    -1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,
+    -1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,-1457,
+    -1457,-1457,-1457,-1457, 1794,-1457,-1457,-1457,-1457,-1457,
+    -1457,-1457,-1457,-1457,-1457
+    },
+
+    {
+       27,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,
+    -1458,-1458,-1458, 1795,-1458,-1458,-1458,-1458,-1458,-1458,
+    -1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,
+    -1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,
+
+    -1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,
+    -1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,-1458,
+    -1458,-1458,-1458,-1458,-1458
+    },
+
+    {
+       27,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,
+    -1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,
+    -1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,
+    -1459,-1459, 1796,-1459,-1459,-1459,-1459,-1459,-1459,-1459,
+    -1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,-1459,
+    -1459,-1459,-1459,-1459,-1459,-1459,-1459, 1796,-1459,-1459,
+    -1459,-1459,-1459,-1459,-1459
+
+    },
+
+    {
+       27,-1460, 1460, 1460,-1460,-1460,-1460,-1460,-1460,-1460,
+    -1460,-1460, 1461,-1460,-1460,-1460,-1460,-1460,-1460,-1460,
+    -1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,
+    -1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,
+    -1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,
+    -1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,-1460,
+    -1460,-1460,-1460,-1460,-1460
+    },
+
+    {
+       27,-1461,-1461,-1461,-1461,-1461,-1461,-1461,-1461,-1461,
+    -1461,-1461,-1461,-1461,-1461,-1461, 1797,-1461,-1461,-1461,
+    -1461,-1461,-1461,-1461,-1461,-1461,-1461,-1461,-1461, 1798,
+
+    -1461,-1461,-1461,-1461,-1461,-1461,-1461,-1461,-1461,-1461,
+    -1461,-1461, 1797,-1461,-1461,-1461,-1461,-1461,-1461,-1461,
+    -1461,-1461,-1461,-1461, 1798,-1461,-1461,-1461,-1461,-1461,
+    -1461,-1461,-1461,-1461,-1461
+    },
+
+    {
+       27,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,
+    -1462,-1462,-1462,-1462, 1799,-1462,-1462,-1462,-1462,-1462,
+    -1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,
+    -1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,
+     1799,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,
+    -1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,-1462,
+
+    -1462,-1462,-1462,-1462,-1462
+    },
+
+    {
+       27,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,
+    -1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,
+    -1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463, 1800,-1463,
+    -1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,
+    -1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,-1463,
+    -1463,-1463,-1463, 1800,-1463,-1463,-1463,-1463,-1463,-1463,
+    -1463,-1463,-1463,-1463,-1463
+    },
+
+    {
+       27,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,
+    -1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,
+
+    -1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,
+    -1464, 1801,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,
+    -1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,-1464,
+    -1464,-1464,-1464,-1464,-1464,-1464, 1801,-1464,-1464,-1464,
+    -1464,-1464,-1464,-1464,-1464
+    },
+
+    {
+       27,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465, 1802,
+    -1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,
+    -1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,
+    -1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465, 1803,
+    -1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,
+
+    -1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,-1465,
+    -1465,-1465,-1465,-1465,-1465
+    },
+
+    {
+       27,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,
+    -1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,
+    -1466,-1466, 1804,-1466,-1466,-1466,-1466,-1466,-1466,-1466,
+    -1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,
+    -1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466, 1804,-1466,
+    -1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,-1466,
+    -1466,-1466,-1466,-1466,-1466
+    },
+
+    {
+       27,-1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467,
+
+    -1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467, 1805,-1467,
+    -1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467,
+    -1467,-1467,-1467,-1467, 1806,-1467,-1467,-1467,-1467,-1467,
+    -1467,-1467,-1467,-1467, 1805,-1467,-1467,-1467,-1467,-1467,
+    -1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467,-1467, 1806,
+    -1467,-1467,-1467,-1467,-1467
+    },
+
+    {
+       27,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,
+    -1468,-1468,-1468, 1807,-1468,-1468,-1468,-1468,-1468,-1468,
+    -1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,
+    -1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,
+
+    -1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,
+    -1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,-1468,
+    -1468,-1468,-1468,-1468,-1468
+    },
+
+    {
+       27,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,
+    -1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,
+    -1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,
+    -1469,-1469, 1808,-1469,-1469,-1469,-1469,-1469,-1469,-1469,
+    -1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,-1469,
+    -1469,-1469,-1469,-1469,-1469,-1469,-1469, 1808,-1469,-1469,
+    -1469,-1469,-1469,-1469,-1469
+
+    },
+
+    {
+       27,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,
+    -1470,-1470,-1470, 1809,-1470,-1470,-1470,-1470,-1470,-1470,
+    -1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,
+    -1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,
+    -1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,
+    -1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,-1470,
+    -1470,-1470,-1470,-1470,-1470
+    },
+
+    {
+       27,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,
+    -1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,
+    -1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,
+
+    -1471,-1471, 1810,-1471,-1471,-1471,-1471,-1471,-1471,-1471,
+    -1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,-1471,
+    -1471,-1471,-1471,-1471,-1471,-1471,-1471, 1810,-1471,-1471,
+    -1471,-1471,-1471,-1471,-1471
+    },
+
+    {
+       27,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,
+    -1472,-1472,-1472, 1811,-1472,-1472,-1472,-1472,-1472,-1472,
+    -1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,
+    -1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,
+    -1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,
+    -1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,-1472,
+
+    -1472,-1472,-1472,-1472,-1472
+    },
+
+    {
+       27,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,
+    -1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,
+    -1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,
+    -1473,-1473, 1812,-1473,-1473,-1473,-1473,-1473,-1473,-1473,
+    -1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,-1473,
+    -1473,-1473,-1473,-1473,-1473,-1473,-1473, 1812,-1473,-1473,
+    -1473,-1473,-1473,-1473,-1473
+    },
+
+    {
+       27,-1474, 1813, 1813,-1474,-1474,-1474,-1474,-1474,-1474,
+    -1474,-1474, 1814,-1474,-1474,-1474,-1474,-1474,-1474,-1474,
+
+    -1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,
+    -1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,
+    -1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,
+    -1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,-1474,
+    -1474,-1474,-1474,-1474,-1474
+    },
+
+    {
+       27,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,
+    -1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,
+    -1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,
+    -1475,-1475,-1475, 1815,-1475,-1475,-1475,-1475,-1475,-1475,
+    -1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475,
+
+    -1475,-1475,-1475,-1475,-1475,-1475,-1475,-1475, 1815,-1475,
+    -1475,-1475,-1475,-1475,-1475
+    },
+
+    {
+       27,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,
+    -1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,
+    -1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,
+    -1476,-1476,-1476, 1816,-1476,-1476,-1476,-1476,-1476,-1476,
+    -1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476,
+    -1476,-1476,-1476,-1476,-1476,-1476,-1476,-1476, 1816,-1476,
+    -1476,-1476,-1476,-1476,-1476
+    },
+
+    {
+       27,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,
+
+    -1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,
+    -1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477, 1817,-1477,
+    -1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,
+    -1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,-1477,
+    -1477,-1477,-1477, 1817,-1477,-1477,-1477,-1477,-1477,-1477,
+    -1477,-1477,-1477,-1477,-1477
+    },
+
+    {
+       27,-1478, 1478, 1478,-1478,-1478,-1478,-1478,-1478,-1478,
+    -1478,-1478, 1479,-1478,-1478,-1478,-1478,-1478,-1478,-1478,
+    -1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,
+    -1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,
+
+    -1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,
+    -1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,-1478,
+    -1478,-1478,-1478,-1478,-1478
+    },
+
+    {
+       27,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,
+    -1479,-1479,-1479,-1479,-1479,-1479, 1818,-1479,-1479,-1479,
+    -1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,
+    -1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,
+    -1479,-1479, 1818,-1479,-1479,-1479,-1479,-1479,-1479,-1479,
+    -1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,-1479,
+    -1479,-1479,-1479,-1479,-1479
+
+    },
+
+    {
+       27,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480, 1819,
+    -1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,
+    -1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,
+    -1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480, 1820,
+    -1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,
+    -1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,-1480,
+    -1480,-1480,-1480,-1480,-1480
+    },
+
+    {
+       27,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481, 1821,
+    -1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,
+    -1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,
+
+    -1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481, 1822,
+    -1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,
+    -1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,-1481,
+    -1481,-1481,-1481,-1481,-1481
+    },
+
+    {
+       27,-1482, 1482, 1482,-1482,-1482,-1482,-1482,-1482,-1482,
+    -1482,-1482, 1483,-1482,-1482,-1482,-1482,-1482,-1482,-1482,
+    -1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,
+    -1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,
+    -1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,
+    -1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,-1482,
+
+    -1482,-1482,-1482,-1482,-1482
+    },
+
+    {
+       27,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,
+    -1483,-1483,-1483,-1483,-1483,-1483, 1823,-1483,-1483,-1483,
+    -1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,
+    -1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,
+    -1483,-1483, 1823,-1483,-1483,-1483,-1483,-1483,-1483,-1483,
+    -1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,-1483,
+    -1483,-1483,-1483,-1483,-1483
+    },
+
+    {
+       27,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,
+    -1484,-1484,-1484,-1484, 1824,-1484,-1484,-1484,-1484,-1484,
+
+    -1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,
+    -1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,
+     1824,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,
+    -1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,-1484,
+    -1484,-1484,-1484,-1484,-1484
+    },
+
+    {
+       27,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,
+    -1485,-1485,-1485, 1825,-1485,-1485,-1485,-1485,-1485,-1485,
+    -1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,
+    -1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,
+    -1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,
+
+    -1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,-1485,
+    -1485,-1485,-1485,-1485,-1485
+    },
+
+    {
+       27,-1486, 1486, 1486,-1486,-1486,-1486,-1486,-1486,-1486,
+    -1486,-1486, 1487,-1486,-1486,-1486,-1486,-1486,-1486,-1486,
+    -1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,
+    -1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,
+    -1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,
+    -1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,-1486,
+    -1486,-1486,-1486,-1486,-1486
+    },
+
+    {
+       27,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,
+
+    -1487,-1487,-1487,-1487,-1487,-1487, 1826,-1487,-1487,-1487,
+    -1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,
+    -1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,
+    -1487,-1487, 1826,-1487,-1487,-1487,-1487,-1487,-1487,-1487,
+    -1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,-1487,
+    -1487,-1487,-1487,-1487,-1487
+    },
+
+    {
+       27,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,
+    -1488,-1488,-1488,-1488, 1827,-1488,-1488,-1488,-1488,-1488,
+    -1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,
+    -1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,
+
+     1827,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,
+    -1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,-1488,
+    -1488,-1488,-1488,-1488,-1488
+    },
+
+    {
+       27,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,
+    -1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489, 1828,-1489,
+    -1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,
+    -1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,
+    -1489,-1489,-1489,-1489, 1828,-1489,-1489,-1489,-1489,-1489,
+    -1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,-1489,
+    -1489,-1489,-1489,-1489,-1489
+
+    },
+
+    {
+       27,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,
+    -1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,
+    -1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,
+    -1490,-1490,-1490,-1490,-1490,-1490, 1829,-1490,-1490,-1490,
+    -1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,
+    -1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,-1490,
+    -1490, 1829,-1490,-1490,-1490
+    },
+
+    {
+       27,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,
+    -1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,
+    -1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,
+
+    -1491,-1491,-1491, 1830,-1491,-1491,-1491,-1491,-1491,-1491,
+    -1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491,
+    -1491,-1491,-1491,-1491,-1491,-1491,-1491,-1491, 1830,-1491,
+    -1491,-1491,-1491,-1491,-1491
+    },
+
+    {
+       27,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,
+    -1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,
+    -1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492, 1831,
+    -1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,
+    -1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,-1492,
+    -1492,-1492,-1492,-1492, 1831,-1492,-1492,-1492,-1492,-1492,
+
+    -1492,-1492,-1492,-1492,-1492
+    },
+
+    {
+       27,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,
+    -1493,-1493,-1493,-1493, 1832,-1493,-1493,-1493,-1493,-1493,
+    -1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,
+    -1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,
+     1832,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,
+    -1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,-1493,
+    -1493,-1493,-1493,-1493,-1493
+    },
+
+    {
+       27,-1494, 1833, 1833,-1494,-1494,-1494,-1494,-1494,-1494,
+    -1494,-1494, 1834,-1494,-1494,-1494,-1494,-1494,-1494,-1494,
+
+    -1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,
+    -1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,
+    -1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,
+    -1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,-1494,
+    -1494,-1494,-1494,-1494,-1494
+    },
+
+    {
+       27,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,
+    -1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,
+    -1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,
+    -1495,-1495,-1495, 1835,-1495,-1495,-1495,-1495,-1495,-1495,
+    -1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495,
+
+    -1495,-1495,-1495,-1495,-1495,-1495,-1495,-1495, 1835,-1495,
+    -1495,-1495,-1495,-1495,-1495
+    },
+
+    {
+       27,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,
+    -1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,
+    -1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496, 1836,
+    -1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,
+    -1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,-1496,
+    -1496,-1496,-1496,-1496, 1836,-1496,-1496,-1496,-1496,-1496,
+    -1496,-1496,-1496,-1496,-1496
+    },
+
+    {
+       27,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,
+
+    -1497,-1497,-1497, 1837,-1497,-1497,-1497,-1497,-1497,-1497,
+    -1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,
+    -1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,
+    -1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,
+    -1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,-1497,
+    -1497,-1497,-1497,-1497,-1497
+    },
+
+    {
+       27,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,
+    -1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,
+    -1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,
+    -1498,-1498, 1838,-1498,-1498,-1498,-1498,-1498,-1498,-1498,
+
+    -1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,-1498,
+    -1498,-1498,-1498,-1498,-1498,-1498,-1498, 1838,-1498,-1498,
+    -1498,-1498,-1498,-1498,-1498
+    },
+
+    {
+       27,-1499, 1499, 1499,-1499,-1499,-1499,-1499,-1499,-1499,
+    -1499,-1499, 1500,-1499,-1499,-1499,-1499,-1499,-1499,-1499,
+    -1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,
+    -1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,
+    -1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,
+    -1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,-1499,
+    -1499,-1499,-1499,-1499,-1499
+
+    },
+
+    {
+       27,-1500,-1500,-1500,-1500,-1500,-1500,-1500,-1500,-1500,
+    -1500,-1500,-1500,-1500,-1500,-1500, 1839,-1500,-1500,-1500,
+    -1500,-1500,-1500,-1500,-1500,-1500,-1500,-1500,-1500, 1840,
+    -1500,-1500,-1500,-1500,-1500,-1500,-1500,-1500,-1500,-1500,
+    -1500,-1500, 1839,-1500,-1500,-1500,-1500,-1500,-1500,-1500,
+    -1500,-1500,-1500,-1500, 1840,-1500,-1500,-1500,-1500,-1500,
+    -1500,-1500,-1500,-1500,-1500
+    },
+
+    {
+       27,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,
+    -1501,-1501,-1501,-1501, 1841,-1501,-1501,-1501,-1501,-1501,
+    -1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,
+
+    -1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,
+     1841,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,
+    -1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,-1501,
+    -1501,-1501,-1501,-1501,-1501
+    },
+
+    {
+       27,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,
+    -1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,
+    -1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502, 1842,-1502,
+    -1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,
+    -1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,-1502,
+    -1502,-1502,-1502, 1842,-1502,-1502,-1502,-1502,-1502,-1502,
+
+    -1502,-1502,-1502,-1502,-1502
+    },
+
+    {
+       27,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,
+    -1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,
+    -1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,
+    -1503, 1843,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,
+    -1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,-1503,
+    -1503,-1503,-1503,-1503,-1503,-1503, 1843,-1503,-1503,-1503,
+    -1503,-1503,-1503,-1503,-1503
+    },
+
+    {
+       27,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504, 1844,
+    -1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,
+
+    -1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,
+    -1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504, 1845,
+    -1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,
+    -1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,-1504,
+    -1504,-1504,-1504,-1504,-1504
+    },
+
+    {
+       27,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,
+    -1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,
+    -1505,-1505, 1846,-1505,-1505,-1505,-1505,-1505,-1505,-1505,
+    -1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,
+    -1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505, 1846,-1505,
+
+    -1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,-1505,
+    -1505,-1505,-1505,-1505,-1505
+    },
+
+    {
+       27,-1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506,
+    -1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506, 1847,-1506,
+    -1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506,
+    -1506,-1506,-1506,-1506, 1848,-1506,-1506,-1506,-1506,-1506,
+    -1506,-1506,-1506,-1506, 1847,-1506,-1506,-1506,-1506,-1506,
+    -1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506,-1506, 1848,
+    -1506,-1506,-1506,-1506,-1506
+    },
+
+    {
+       27,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,
+
+    -1507,-1507,-1507, 1849,-1507,-1507,-1507,-1507,-1507,-1507,
+    -1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,
+    -1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,
+    -1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,
+    -1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,-1507,
+    -1507,-1507,-1507,-1507,-1507
+    },
+
+    {
+       27,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,
+    -1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,
+    -1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,
+    -1508,-1508, 1850,-1508,-1508,-1508,-1508,-1508,-1508,-1508,
+
+    -1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,-1508,
+    -1508,-1508,-1508,-1508,-1508,-1508,-1508, 1850,-1508,-1508,
+    -1508,-1508,-1508,-1508,-1508
+    },
+
+    {
+       27,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,
+    -1509,-1509,-1509, 1851,-1509,-1509,-1509,-1509,-1509,-1509,
+    -1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,
+    -1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,
+    -1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,
+    -1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,-1509,
+    -1509,-1509,-1509,-1509,-1509
+
+    },
+
+    {
+       27,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,
+    -1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,
+    -1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,
+    -1510,-1510, 1852,-1510,-1510,-1510,-1510,-1510,-1510,-1510,
+    -1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,-1510,
+    -1510,-1510,-1510,-1510,-1510,-1510,-1510, 1852,-1510,-1510,
+    -1510,-1510,-1510,-1510,-1510
+    },
+
+    {
+       27,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,
+    -1511,-1511,-1511, 1853,-1511,-1511,-1511,-1511,-1511,-1511,
+    -1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,
+
+    -1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,
+    -1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,
+    -1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,-1511,
+    -1511,-1511,-1511,-1511,-1511
+    },
+
+    {
+       27,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,
+    -1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,
+    -1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,
+    -1512,-1512, 1854,-1512,-1512,-1512,-1512,-1512,-1512,-1512,
+    -1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,-1512,
+    -1512,-1512,-1512,-1512,-1512,-1512,-1512, 1854,-1512,-1512,
+
+    -1512,-1512,-1512,-1512,-1512
+    },
+
+    {
+       27,-1513, 1855, 1855,-1513,-1513,-1513,-1513,-1513,-1513,
+    -1513,-1513, 1856,-1513,-1513,-1513,-1513,-1513,-1513,-1513,
+    -1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,
+    -1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,
+    -1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,
+    -1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,-1513,
+    -1513,-1513,-1513,-1513,-1513
+    },
+
+    {
+       27,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,
+    -1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,
+
+    -1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,
+    -1514,-1514,-1514, 1857,-1514,-1514,-1514,-1514,-1514,-1514,
+    -1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514,
+    -1514,-1514,-1514,-1514,-1514,-1514,-1514,-1514, 1857,-1514,
+    -1514,-1514,-1514,-1514,-1514
+    },
+
+    {
+       27,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,
+    -1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,
+    -1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,
+    -1515,-1515,-1515, 1858,-1515,-1515,-1515,-1515,-1515,-1515,
+    -1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515,
+
+    -1515,-1515,-1515,-1515,-1515,-1515,-1515,-1515, 1858,-1515,
+    -1515,-1515,-1515,-1515,-1515
+    },
+
+    {
+       27,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,
+    -1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,
+    -1516,-1516,-1516,-1516,-1516, 1859,-1516,-1516,-1516,-1516,
+    -1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,
+    -1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,
+     1859,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,-1516,
+    -1516,-1516,-1516,-1516,-1516
+    },
+
+    {
+       27,-1517, 1517, 1517,-1517,-1517,-1517,-1517,-1517,-1517,
+
+    -1517,-1517, 1518,-1517,-1517,-1517,-1517,-1517,-1517,-1517,
+    -1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,
+    -1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,
+    -1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,
+    -1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,-1517,
+    -1517,-1517,-1517,-1517,-1517
+    },
+
+    {
+       27,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,
+    -1518,-1518,-1518,-1518,-1518,-1518, 1860,-1518,-1518,-1518,
+    -1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,
+    -1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,
+
+    -1518,-1518, 1860,-1518,-1518,-1518,-1518,-1518,-1518,-1518,
+    -1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,-1518,
+    -1518,-1518,-1518,-1518,-1518
+    },
+
+    {
+       27,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519, 1861,
+    -1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,
+    -1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,
+    -1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519, 1862,
+    -1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,
+    -1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,-1519,
+    -1519,-1519,-1519,-1519,-1519
+
+    },
+
+    {
+       27,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520, 1863,
+    -1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,
+    -1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,
+    -1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520, 1864,
+    -1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,
+    -1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,-1520,
+    -1520,-1520,-1520,-1520,-1520
+    },
+
+    {
+       27,-1521, 1521, 1521,-1521,-1521,-1521,-1521,-1521,-1521,
+    -1521,-1521, 1522,-1521,-1521,-1521,-1521,-1521,-1521,-1521,
+    -1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,
+
+    -1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,
+    -1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,
+    -1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,-1521,
+    -1521,-1521,-1521,-1521,-1521
+    },
+
+    {
+       27,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,
+    -1522,-1522,-1522,-1522,-1522,-1522, 1865,-1522,-1522,-1522,
+    -1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,
+    -1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,
+    -1522,-1522, 1865,-1522,-1522,-1522,-1522,-1522,-1522,-1522,
+    -1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,-1522,
+
+    -1522,-1522,-1522,-1522,-1522
+    },
+
+    {
+       27,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,
+    -1523,-1523,-1523,-1523, 1866,-1523,-1523,-1523,-1523,-1523,
+    -1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,
+    -1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,
+     1866,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,
+    -1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,-1523,
+    -1523,-1523,-1523,-1523,-1523
+    },
+
+    {
+       27,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,
+    -1524,-1524,-1524, 1867,-1524,-1524,-1524,-1524,-1524,-1524,
+
+    -1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,
+    -1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,
+    -1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,
+    -1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,-1524,
+    -1524,-1524,-1524,-1524,-1524
+    },
+
+    {
+       27,-1525, 1525, 1525,-1525,-1525,-1525,-1525,-1525,-1525,
+    -1525,-1525, 1526,-1525,-1525,-1525,-1525,-1525,-1525,-1525,
+    -1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,
+    -1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,
+    -1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,
+
+    -1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,-1525,
+    -1525,-1525,-1525,-1525,-1525
+    },
+
+    {
+       27,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,
+    -1526,-1526,-1526,-1526,-1526,-1526, 1868,-1526,-1526,-1526,
+    -1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,
+    -1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,
+    -1526,-1526, 1868,-1526,-1526,-1526,-1526,-1526,-1526,-1526,
+    -1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,-1526,
+    -1526,-1526,-1526,-1526,-1526
+    },
+
+    {
+       27,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,
+
+    -1527,-1527,-1527,-1527, 1869,-1527,-1527,-1527,-1527,-1527,
+    -1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,
+    -1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,
+     1869,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,
+    -1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,-1527,
+    -1527,-1527,-1527,-1527,-1527
+    },
+
+    {
+       27,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,
+    -1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528, 1870,-1528,
+    -1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,
+    -1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,
+
+    -1528,-1528,-1528,-1528, 1870,-1528,-1528,-1528,-1528,-1528,
+    -1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,-1528,
+    -1528,-1528,-1528,-1528,-1528
+    },
+
+    {
+       27,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,
+    -1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,
+    -1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,
+    -1529,-1529,-1529,-1529,-1529,-1529, 1871,-1529,-1529,-1529,
+    -1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,
+    -1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,-1529,
+    -1529, 1871,-1529,-1529,-1529
+
+    },
+
+    {
+       27,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,
+    -1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,
+    -1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,
+    -1530,-1530,-1530, 1872,-1530,-1530,-1530,-1530,-1530,-1530,
+    -1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530,
+    -1530,-1530,-1530,-1530,-1530,-1530,-1530,-1530, 1872,-1530,
+    -1530,-1530,-1530,-1530,-1530
+    },
+
+    {
+       27,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,
+    -1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,
+    -1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531, 1873,
+
+    -1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,
+    -1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,-1531,
+    -1531,-1531,-1531,-1531, 1873,-1531,-1531,-1531,-1531,-1531,
+    -1531,-1531,-1531,-1531,-1531
+    },
+
+    {
+       27,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,
+    -1532,-1532,-1532,-1532, 1874,-1532,-1532,-1532,-1532,-1532,
+    -1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,
+    -1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,
+     1874,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,
+    -1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,-1532,
+
+    -1532,-1532,-1532,-1532,-1532
+    },
+
+    {
+       27,-1533, 1875, 1875,-1533,-1533,-1533,-1533,-1533,-1533,
+    -1533,-1533, 1876,-1533,-1533,-1533,-1533,-1533,-1533,-1533,
+    -1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,
+    -1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,
+    -1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,
+    -1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,-1533,
+    -1533,-1533,-1533,-1533,-1533
+    },
+
+    {
+       27,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,
+    -1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,
+
+    -1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,
+    -1534,-1534,-1534, 1877,-1534,-1534,-1534,-1534,-1534,-1534,
+    -1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534,
+    -1534,-1534,-1534,-1534,-1534,-1534,-1534,-1534, 1877,-1534,
+    -1534,-1534,-1534,-1534,-1534
+    },
+
+    {
+       27,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,
+    -1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,
+    -1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535, 1878,
+    -1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,
+    -1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,-1535,
+
+    -1535,-1535,-1535,-1535, 1878,-1535,-1535,-1535,-1535,-1535,
+    -1535,-1535,-1535,-1535,-1535
+    },
+
+    {
+       27,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,
+    -1536,-1536,-1536, 1879,-1536,-1536,-1536,-1536,-1536,-1536,
+    -1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,
+    -1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,
+    -1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,
+    -1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,-1536,
+    -1536,-1536,-1536,-1536,-1536
+    },
+
+    {
+       27,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,
+
+    -1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,
+    -1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,
+    -1537,-1537, 1880,-1537,-1537,-1537,-1537,-1537,-1537,-1537,
+    -1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,-1537,
+    -1537,-1537,-1537,-1537,-1537,-1537,-1537, 1880,-1537,-1537,
+    -1537,-1537,-1537,-1537,-1537
+    },
+
+    {
+       27,-1538, 1538, 1538,-1538,-1538,-1538,-1538,-1538,-1538,
+    -1538,-1538, 1539,-1538,-1538,-1538,-1538,-1538,-1538,-1538,
+    -1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,
+    -1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,
+
+    -1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,
+    -1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,-1538,
+    -1538,-1538,-1538,-1538,-1538
+    },
+
+    {
+       27,-1539,-1539,-1539,-1539,-1539,-1539,-1539,-1539,-1539,
+    -1539,-1539,-1539,-1539,-1539,-1539, 1881,-1539,-1539,-1539,
+    -1539,-1539,-1539,-1539,-1539,-1539,-1539,-1539,-1539, 1882,
+    -1539,-1539,-1539,-1539,-1539,-1539,-1539,-1539,-1539,-1539,
+    -1539,-1539, 1881,-1539,-1539,-1539,-1539,-1539,-1539,-1539,
+    -1539,-1539,-1539,-1539, 1882,-1539,-1539,-1539,-1539,-1539,
+    -1539,-1539,-1539,-1539,-1539
+
+    },
+
+    {
+       27,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,
+    -1540,-1540,-1540,-1540, 1883,-1540,-1540,-1540,-1540,-1540,
+    -1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,
+    -1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,
+     1883,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,
+    -1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,-1540,
+    -1540,-1540,-1540,-1540,-1540
+    },
+
+    {
+       27,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,
+    -1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,
+    -1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541, 1884,-1541,
+
+    -1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,
+    -1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,-1541,
+    -1541,-1541,-1541, 1884,-1541,-1541,-1541,-1541,-1541,-1541,
+    -1541,-1541,-1541,-1541,-1541
+    },
+
+    {
+       27,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,
+    -1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,
+    -1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,
+    -1542, 1885,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,
+    -1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,-1542,
+    -1542,-1542,-1542,-1542,-1542,-1542, 1885,-1542,-1542,-1542,
+
+    -1542,-1542,-1542,-1542,-1542
+    },
+
+    {
+       27,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543, 1886,
+    -1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,
+    -1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,
+    -1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543, 1887,
+    -1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,
+    -1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,-1543,
+    -1543,-1543,-1543,-1543,-1543
+    },
+
+    {
+       27,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,
+    -1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,
+
+    -1544,-1544, 1888,-1544,-1544,-1544,-1544,-1544,-1544,-1544,
+    -1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,
+    -1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544, 1888,-1544,
+    -1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,-1544,
+    -1544,-1544,-1544,-1544,-1544
+    },
+
+    {
+       27,-1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545,
+    -1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545, 1889,-1545,
+    -1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545,
+    -1545,-1545,-1545,-1545, 1890,-1545,-1545,-1545,-1545,-1545,
+    -1545,-1545,-1545,-1545, 1889,-1545,-1545,-1545,-1545,-1545,
+
+    -1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545,-1545, 1890,
+    -1545,-1545,-1545,-1545,-1545
+    },
+
+    {
+       27,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,
+    -1546,-1546,-1546, 1891,-1546,-1546,-1546,-1546,-1546,-1546,
+    -1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,
+    -1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,
+    -1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,
+    -1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,-1546,
+    -1546,-1546,-1546,-1546,-1546
+    },
+
+    {
+       27,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,
+
+    -1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,
+    -1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,
+    -1547,-1547, 1892,-1547,-1547,-1547,-1547,-1547,-1547,-1547,
+    -1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,-1547,
+    -1547,-1547,-1547,-1547,-1547,-1547,-1547, 1892,-1547,-1547,
+    -1547,-1547,-1547,-1547,-1547
+    },
+
+    {
+       27,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,
+    -1548,-1548,-1548, 1893,-1548,-1548,-1548,-1548,-1548,-1548,
+    -1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,
+    -1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,
+
+    -1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,
+    -1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,-1548,
+    -1548,-1548,-1548,-1548,-1548
+    },
+
+    {
+       27,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,
+    -1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,
+    -1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,
+    -1549,-1549, 1894,-1549,-1549,-1549,-1549,-1549,-1549,-1549,
+    -1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,-1549,
+    -1549,-1549,-1549,-1549,-1549,-1549,-1549, 1894,-1549,-1549,
+    -1549,-1549,-1549,-1549,-1549
+
+    },
+
+    {
+       27,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,
+    -1550,-1550,-1550, 1895,-1550,-1550,-1550,-1550,-1550,-1550,
+    -1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,
+    -1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,
+    -1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,
+    -1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,-1550,
+    -1550,-1550,-1550,-1550,-1550
+    },
+
+    {
+       27,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,
+    -1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,
+    -1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,
+
+    -1551,-1551, 1896,-1551,-1551,-1551,-1551,-1551,-1551,-1551,
+    -1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,-1551,
+    -1551,-1551,-1551,-1551,-1551,-1551,-1551, 1896,-1551,-1551,
+    -1551,-1551,-1551,-1551,-1551
+    },
+
+    {
+       27,-1552, 1897, 1897,-1552,-1552,-1552,-1552,-1552,-1552,
+    -1552,-1552, 1898,-1552,-1552,-1552,-1552,-1552,-1552,-1552,
+    -1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,
+    -1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,
+    -1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,
+    -1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,-1552,
+
+    -1552,-1552,-1552,-1552,-1552
+    },
+
+    {
+       27,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,
+    -1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,
+    -1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,
+    -1553,-1553,-1553, 1899,-1553,-1553,-1553,-1553,-1553,-1553,
+    -1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553,
+    -1553,-1553,-1553,-1553,-1553,-1553,-1553,-1553, 1899,-1553,
+    -1553,-1553,-1553,-1553,-1553
+    },
+
+    {
+       27,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,
+    -1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,
+
+    -1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,
+    -1554,-1554,-1554, 1900,-1554,-1554,-1554,-1554,-1554,-1554,
+    -1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554,
+    -1554,-1554,-1554,-1554,-1554,-1554,-1554,-1554, 1900,-1554,
+    -1554,-1554,-1554,-1554,-1554
+    },
+
+    {
+       27,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,
+    -1555,-1555,-1555,-1555, 1901,-1555,-1555,-1555,-1555,-1555,
+    -1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,
+    -1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,
+     1901,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,
+
+    -1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,-1555,
+    -1555,-1555,-1555,-1555,-1555
+    },
+
+    {
+       27,-1556, 1556, 1556,-1556,-1556,-1556,-1556,-1556,-1556,
+    -1556,-1556, 1557,-1556,-1556,-1556,-1556,-1556,-1556,-1556,
+    -1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,
+    -1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,
+    -1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,
+    -1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,-1556,
+    -1556,-1556,-1556,-1556,-1556
+    },
+
+    {
+       27,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,
+
+    -1557,-1557,-1557,-1557,-1557,-1557, 1902,-1557,-1557,-1557,
+    -1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,
+    -1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,
+    -1557,-1557, 1902,-1557,-1557,-1557,-1557,-1557,-1557,-1557,
+    -1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,-1557,
+    -1557,-1557,-1557,-1557,-1557
+    },
+
+    {
+       27,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558, 1903,
+    -1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,
+    -1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,
+    -1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558, 1904,
+
+    -1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,
+    -1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,-1558,
+    -1558,-1558,-1558,-1558,-1558
+    },
+
+    {
+       27,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559, 1905,
+    -1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,
+    -1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,
+    -1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559, 1906,
+    -1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,
+    -1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,-1559,
+    -1559,-1559,-1559,-1559,-1559
+
+    },
+
+    {
+       27,-1560, 1560, 1560,-1560,-1560,-1560,-1560,-1560,-1560,
+    -1560,-1560, 1561,-1560,-1560,-1560,-1560,-1560,-1560,-1560,
+    -1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,
+    -1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,
+    -1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,
+    -1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,-1560,
+    -1560,-1560,-1560,-1560,-1560
+    },
+
+    {
+       27,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,
+    -1561,-1561,-1561,-1561,-1561,-1561, 1907,-1561,-1561,-1561,
+    -1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,
+
+    -1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,
+    -1561,-1561, 1907,-1561,-1561,-1561,-1561,-1561,-1561,-1561,
+    -1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,-1561,
+    -1561,-1561,-1561,-1561,-1561
+    },
+
+    {
+       27,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,
+    -1562,-1562,-1562,-1562, 1908,-1562,-1562,-1562,-1562,-1562,
+    -1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,
+    -1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,
+     1908,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,
+    -1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,-1562,
+
+    -1562,-1562,-1562,-1562,-1562
+    },
+
+    {
+       27,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,
+    -1563,-1563,-1563, 1909,-1563,-1563,-1563,-1563,-1563,-1563,
+    -1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,
+    -1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,
+    -1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,
+    -1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,-1563,
+    -1563,-1563,-1563,-1563,-1563
+    },
+
+    {
+       27,-1564, 1564, 1564,-1564,-1564,-1564,-1564,-1564,-1564,
+    -1564,-1564, 1565,-1564,-1564,-1564,-1564,-1564,-1564,-1564,
+
+    -1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,
+    -1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,
+    -1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,
+    -1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,-1564,
+    -1564,-1564,-1564,-1564,-1564
+    },
+
+    {
+       27,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,
+    -1565,-1565,-1565,-1565,-1565,-1565, 1910,-1565,-1565,-1565,
+    -1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,
+    -1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,
+    -1565,-1565, 1910,-1565,-1565,-1565,-1565,-1565,-1565,-1565,
+
+    -1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,-1565,
+    -1565,-1565,-1565,-1565,-1565
+    },
+
+    {
+       27,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,
+    -1566,-1566,-1566,-1566, 1911,-1566,-1566,-1566,-1566,-1566,
+    -1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,
+    -1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,
+     1911,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,
+    -1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,-1566,
+    -1566,-1566,-1566,-1566,-1566
+    },
+
+    {
+       27,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,
+
+    -1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567, 1912,-1567,
+    -1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,
+    -1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,
+    -1567,-1567,-1567,-1567, 1912,-1567,-1567,-1567,-1567,-1567,
+    -1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,-1567,
+    -1567,-1567,-1567,-1567,-1567
+    },
+
+    {
+       27,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,
+    -1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,
+    -1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,
+    -1568,-1568,-1568,-1568,-1568,-1568, 1913,-1568,-1568,-1568,
+
+    -1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,
+    -1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,-1568,
+    -1568, 1913,-1568,-1568,-1568
+    },
+
+    {
+       27,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,
+    -1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,
+    -1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,
+    -1569,-1569,-1569, 1914,-1569,-1569,-1569,-1569,-1569,-1569,
+    -1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569,
+    -1569,-1569,-1569,-1569,-1569,-1569,-1569,-1569, 1914,-1569,
+    -1569,-1569,-1569,-1569,-1569
+
+    },
+
+    {
+       27,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,
+    -1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,
+    -1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570, 1915,
+    -1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,
+    -1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,-1570,
+    -1570,-1570,-1570,-1570, 1915,-1570,-1570,-1570,-1570,-1570,
+    -1570,-1570,-1570,-1570,-1570
+    },
+
+    {
+       27,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,
+    -1571,-1571,-1571,-1571, 1916,-1571,-1571,-1571,-1571,-1571,
+    -1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,
+
+    -1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,
+     1916,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,
+    -1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,-1571,
+    -1571,-1571,-1571,-1571,-1571
+    },
+
+    {
+       27,-1572, 1917, 1917,-1572,-1572,-1572,-1572,-1572,-1572,
+    -1572,-1572, 1918,-1572,-1572,-1572,-1572,-1572,-1572,-1572,
+    -1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,
+    -1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,
+    -1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,
+    -1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,-1572,
+
+    -1572,-1572,-1572,-1572,-1572
+    },
+
+    {
+       27,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,
+    -1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,
+    -1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,
+    -1573,-1573,-1573, 1919,-1573,-1573,-1573,-1573,-1573,-1573,
+    -1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573,
+    -1573,-1573,-1573,-1573,-1573,-1573,-1573,-1573, 1919,-1573,
+    -1573,-1573,-1573,-1573,-1573
+    },
+
+    {
+       27,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,
+    -1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,
+
+    -1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574, 1920,
+    -1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,
+    -1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,-1574,
+    -1574,-1574,-1574,-1574, 1920,-1574,-1574,-1574,-1574,-1574,
+    -1574,-1574,-1574,-1574,-1574
+    },
+
+    {
+       27,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,
+    -1575,-1575,-1575, 1921,-1575,-1575,-1575,-1575,-1575,-1575,
+    -1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,
+    -1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,
+    -1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,
+
+    -1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,-1575,
+    -1575,-1575,-1575,-1575,-1575
+    },
+
+    {
+       27,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,
+    -1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,
+    -1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,
+    -1576,-1576, 1922,-1576,-1576,-1576,-1576,-1576,-1576,-1576,
+    -1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,-1576,
+    -1576,-1576,-1576,-1576,-1576,-1576,-1576, 1922,-1576,-1576,
+    -1576,-1576,-1576,-1576,-1576
+    },
+
+    {
+       27,-1577, 1577, 1577,-1577,-1577,-1577,-1577,-1577,-1577,
+
+    -1577,-1577, 1578,-1577,-1577,-1577,-1577,-1577,-1577,-1577,
+    -1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,
+    -1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,
+    -1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,
+    -1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,-1577,
+    -1577,-1577,-1577,-1577,-1577
+    },
+
+    {
+       27,-1578,-1578,-1578,-1578,-1578,-1578,-1578,-1578,-1578,
+    -1578,-1578,-1578,-1578,-1578,-1578, 1923,-1578,-1578,-1578,
+    -1578,-1578,-1578,-1578,-1578,-1578,-1578,-1578,-1578, 1924,
+    -1578,-1578,-1578,-1578,-1578,-1578,-1578,-1578,-1578,-1578,
+
+    -1578,-1578, 1923,-1578,-1578,-1578,-1578,-1578,-1578,-1578,
+    -1578,-1578,-1578,-1578, 1924,-1578,-1578,-1578,-1578,-1578,
+    -1578,-1578,-1578,-1578,-1578
+    },
+
+    {
+       27,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,
+    -1579,-1579,-1579,-1579, 1925,-1579,-1579,-1579,-1579,-1579,
+    -1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,
+    -1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,
+     1925,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,
+    -1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,-1579,
+    -1579,-1579,-1579,-1579,-1579
+
+    },
+
+    {
+       27,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,
+    -1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,
+    -1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580, 1926,-1580,
+    -1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,
+    -1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,-1580,
+    -1580,-1580,-1580, 1926,-1580,-1580,-1580,-1580,-1580,-1580,
+    -1580,-1580,-1580,-1580,-1580
+    },
+
+    {
+       27,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,
+    -1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,
+    -1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,
+
+    -1581, 1927,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,
+    -1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,-1581,
+    -1581,-1581,-1581,-1581,-1581,-1581, 1927,-1581,-1581,-1581,
+    -1581,-1581,-1581,-1581,-1581
+    },
+
+    {
+       27,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582, 1928,
+    -1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,
+    -1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,
+    -1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582, 1929,
+    -1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,
+    -1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,-1582,
+
+    -1582,-1582,-1582,-1582,-1582
+    },
+
+    {
+       27,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,
+    -1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,
+    -1583,-1583, 1930,-1583,-1583,-1583,-1583,-1583,-1583,-1583,
+    -1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,
+    -1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583, 1930,-1583,
+    -1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,-1583,
+    -1583,-1583,-1583,-1583,-1583
+    },
+
+    {
+       27,-1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584,
+    -1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584, 1931,-1584,
+
+    -1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584,
+    -1584,-1584,-1584,-1584, 1932,-1584,-1584,-1584,-1584,-1584,
+    -1584,-1584,-1584,-1584, 1931,-1584,-1584,-1584,-1584,-1584,
+    -1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584,-1584, 1932,
+    -1584,-1584,-1584,-1584,-1584
+    },
+
+    {
+       27,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,
+    -1585,-1585,-1585, 1933,-1585,-1585,-1585,-1585,-1585,-1585,
+    -1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,
+    -1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,
+    -1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,
+
+    -1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,-1585,
+    -1585,-1585,-1585,-1585,-1585
+    },
+
+    {
+       27,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,
+    -1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,
+    -1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,
+    -1586,-1586, 1934,-1586,-1586,-1586,-1586,-1586,-1586,-1586,
+    -1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,-1586,
+    -1586,-1586,-1586,-1586,-1586,-1586,-1586, 1934,-1586,-1586,
+    -1586,-1586,-1586,-1586,-1586
+    },
+
+    {
+       27,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,
+
+    -1587,-1587,-1587, 1935,-1587,-1587,-1587,-1587,-1587,-1587,
+    -1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,
+    -1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,
+    -1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,
+    -1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,-1587,
+    -1587,-1587,-1587,-1587,-1587
+    },
+
+    {
+       27,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,
+    -1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,
+    -1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,
+    -1588,-1588, 1936,-1588,-1588,-1588,-1588,-1588,-1588,-1588,
+
+    -1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,-1588,
+    -1588,-1588,-1588,-1588,-1588,-1588,-1588, 1936,-1588,-1588,
+    -1588,-1588,-1588,-1588,-1588
+    },
+
+    {
+       27,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,
+    -1589,-1589,-1589, 1937,-1589,-1589,-1589,-1589,-1589,-1589,
+    -1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,
+    -1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,
+    -1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,
+    -1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,-1589,
+    -1589,-1589,-1589,-1589,-1589
+
+    },
+
+    {
+       27,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,
+    -1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,
+    -1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,
+    -1590,-1590, 1938,-1590,-1590,-1590,-1590,-1590,-1590,-1590,
+    -1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,-1590,
+    -1590,-1590,-1590,-1590,-1590,-1590,-1590, 1938,-1590,-1590,
+    -1590,-1590,-1590,-1590,-1590
+    },
+
+    {
+       27,-1591, 1939, 1939,-1591,-1591,-1591,-1591,-1591,-1591,
+    -1591,-1591, 1940,-1591,-1591,-1591,-1591,-1591,-1591,-1591,
+    -1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,
+
+    -1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,
+    -1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,
+    -1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,-1591,
+    -1591,-1591,-1591,-1591,-1591
+    },
+
+    {
+       27,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,
+    -1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,
+    -1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,
+    -1592,-1592,-1592, 1941,-1592,-1592,-1592,-1592,-1592,-1592,
+    -1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592,
+    -1592,-1592,-1592,-1592,-1592,-1592,-1592,-1592, 1941,-1592,
+
+    -1592,-1592,-1592,-1592,-1592
+    },
+
+    {
+       27,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,
+     1942,  178,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,
+    -1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,
+    -1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,
+    -1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,
+    -1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,-1593,
+    -1593,-1593,-1593,-1593,-1593
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366, 1943,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366, 1943,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 1944,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366, 1945,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-1596, 1596, 1596,-1596,-1596,-1596,-1596,-1596,-1596,
+    -1596,-1596, 1597,-1596,-1596,-1596,-1596,-1596,-1596,-1596,
+    -1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,
+    -1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,
+    -1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,
+    -1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,-1596,
+    -1596,-1596,-1596,-1596,-1596
+    },
+
+    {
+       27,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,
+
+    -1597,-1597,-1597,-1597,-1597,-1597, 1946,-1597,-1597,-1597,
+    -1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,
+    -1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,
+    -1597,-1597, 1946,-1597,-1597,-1597,-1597,-1597,-1597,-1597,
+    -1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,-1597,
+    -1597,-1597,-1597,-1597,-1597
+    },
+
+    {
+       27,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,
+    -1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,
+    -1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598, 1947,-1598,
+    -1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,
+
+    -1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,-1598,
+    -1598,-1598,-1598, 1947,-1598,-1598,-1598,-1598,-1598,-1598,
+    -1598,-1598,-1598,-1598,-1598
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1948,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1949,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1949,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1950,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1951,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1951,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,
+    -1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,
+    -1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603, 1952,-1603,
+    -1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,
+    -1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,-1603,
+    -1603,-1603,-1603, 1952,-1603,-1603,-1603,-1603,-1603,-1603,
+    -1603,-1603,-1603,-1603,-1603
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1953,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1953,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,
+    -1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,
+    -1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,
+    -1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,
+    -1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,
+
+    -1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,-1605,
+    -1605,-1605,-1605,-1605,-1605
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1954,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,
+
+    -1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,
+    -1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607, 1955,-1607,
+    -1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,
+    -1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,-1607,
+    -1607,-1607,-1607, 1955,-1607,-1607,-1607,-1607,-1607,-1607,
+    -1607,-1607,-1607,-1607,-1607
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1956,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1956,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1957,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1958,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1959,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1960,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1961,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1962,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1963,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 1964,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184, 1965,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1965,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,
+    -1614,-1614,-1614,-1614, 1966,-1614,-1614,-1614,-1614,-1614,
+
+    -1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,
+    -1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,
+     1966,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,
+    -1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,-1614,
+    -1614,-1614,-1614,-1614,-1614
+    },
+
+    {
+       27,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,
+    -1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,
+    -1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,
+    -1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,
+    -1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,
+
+    -1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,-1615,
+    -1615,-1615,-1615,-1615,-1615
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1967,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1967,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1968,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1968,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184, 1969,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1969,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1619, 1619, 1619,-1619,-1619,-1619,-1619,-1619,-1619,
+    -1619,-1619, 1620,-1619,-1619,-1619,-1619,-1619,-1619,-1619,
+    -1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,
+    -1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,
+    -1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,
+    -1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,-1619,
+    -1619,-1619,-1619,-1619,-1619
+
+    },
+
+    {
+       27,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,
+    -1620,-1620,-1620,-1620,-1620,-1620, 1970,-1620,-1620,-1620,
+    -1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,
+    -1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,
+    -1620,-1620, 1970,-1620,-1620,-1620,-1620,-1620,-1620,-1620,
+    -1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,-1620,
+    -1620,-1620,-1620,-1620,-1620
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1971,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1971,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184, 1972,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1972,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1623, 1973, 1973,-1623,-1623,-1623,-1623,-1623,-1623,
+    -1623,-1623, 1974,-1623,-1623,-1623,-1623,-1623,-1623,-1623,
+    -1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,
+    -1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,
+    -1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,
+    -1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,-1623,
+    -1623,-1623,-1623,-1623,-1623
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1975,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1975,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,
+    -1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,
+    -1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625, 1976,-1625,
+    -1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,
+    -1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,-1625,
+
+    -1625,-1625,-1625, 1976,-1625,-1625,-1625,-1625,-1625,-1625,
+    -1625,-1625,-1625,-1625,-1625
+    },
+
+    {
+       27,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,
+    -1626,-1626,-1626,-1626, 1977,-1626,-1626,-1626,-1626,-1626,
+    -1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,
+    -1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,
+     1977,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,
+    -1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,-1626,
+    -1626,-1626,-1626,-1626,-1626
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1978,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 1978,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,
+    -1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,
+    -1628,-1628,-1628,-1628,-1628,-1628,-1628, 1979,-1628,-1628,
+    -1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,
+
+    -1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,-1628,
+    -1628,-1628, 1979,-1628,-1628,-1628,-1628,-1628,-1628,-1628,
+    -1628,-1628,-1628,-1628,-1628
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  572,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1980,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184, 1981,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 1981,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1982,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1982,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184, 1983,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 1983,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184, 1984,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 1984,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1635, 1985, 1985,-1635,-1635,-1635,-1635,-1635,-1635,
+    -1635,-1635, 1986,-1635,-1635,-1635,-1635,-1635,-1635,-1635,
+    -1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,
+    -1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,
+    -1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,
+
+    -1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,-1635,
+    -1635,-1635,-1635,-1635,-1635
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1987,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1987,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1637, 1988, 1988,-1637,-1637,-1637,-1637,-1637,-1637,
+
+    -1637,-1637, 1989,-1637,-1637,-1637,-1637,-1637,-1637,-1637,
+    -1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,
+    -1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,
+    -1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,
+    -1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,-1637,
+    -1637,-1637,-1637,-1637,-1637
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1990,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1990,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1639, 1991, 1991,-1639,-1639,-1639,-1639,-1639,-1639,
+    -1639,-1639, 1992,-1639,-1639,-1639,-1639,-1639,-1639,-1639,
+    -1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,
+    -1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,
+    -1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,
+    -1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,-1639,
+    -1639,-1639,-1639,-1639,-1639
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1993,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1993,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 1994,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1994,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1642, 1642, 1642,-1642,-1642,-1642,-1642,-1642,-1642,
+    -1642,-1642, 1643,-1642,-1642,-1642,-1642,-1642,-1642,-1642,
+    -1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,
+    -1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,
+    -1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,
+    -1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,-1642,
+
+    -1642,-1642,-1642,-1642,-1642
+    },
+
+    {
+       27,-1643,-1643,-1643,-1643,-1643,-1643,-1643,-1643,-1643,
+    -1643,-1643,-1643,-1643,-1643,-1643, 1995,-1643,-1643,-1643,
+    -1643,-1643,-1643,-1643,-1643,-1643,-1643,-1643,-1643, 1996,
+    -1643,-1643,-1643,-1643,-1643,-1643,-1643,-1643,-1643,-1643,
+    -1643,-1643, 1995,-1643,-1643,-1643,-1643,-1643,-1643,-1643,
+    -1643,-1643,-1643,-1643, 1996,-1643,-1643,-1643,-1643,-1643,
+    -1643,-1643,-1643,-1643,-1643
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 1997,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     1997,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,
+    -1645,-1645,-1645, 1998,-1645,-1645,-1645,-1645,-1645,-1645,
+    -1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,
+    -1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,
+    -1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,
+
+    -1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,-1645,
+    -1645,-1645,-1645,-1645,-1645
+    },
+
+    {
+       27,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,
+    -1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,
+    -1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,
+    -1646,-1646, 1999,-1646,-1646,-1646,-1646,-1646,-1646,-1646,
+    -1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,-1646,
+    -1646,-1646,-1646,-1646,-1646,-1646,-1646, 1999,-1646,-1646,
+    -1646,-1646,-1646,-1646,-1646
+    },
+
+    {
+       27,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,
+
+    -1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,
+    -1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,
+    -1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,
+    -1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,
+    -1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,-1647,
+    -1647,-1647,-1647,-1647,-1647
+    },
+
+    {
+       27,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,
+    -1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,
+    -1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,
+    -1648,-1648, 2000,-1648,-1648,-1648,-1648,-1648,-1648,-1648,
+
+    -1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,-1648,
+    -1648,-1648,-1648,-1648,-1648,-1648,-1648, 2000,-1648,-1648,
+    -1648,-1648,-1648,-1648,-1648
+    },
+
+    {
+       27,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,
+    -1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,
+    -1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,
+    -1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,
+    -1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,
+    -1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,-1649,
+    -1649,-1649,-1649,-1649,-1649
+
+    },
+
+    {
+       27,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,
+    -1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,
+    -1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,
+    -1650,-1650, 2001,-1650,-1650,-1650,-1650,-1650,-1650,-1650,
+    -1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,-1650,
+    -1650,-1650,-1650,-1650,-1650,-1650,-1650, 2001,-1650,-1650,
+    -1650,-1650,-1650,-1650,-1650
+    },
+
+    {
+       27,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,
+    -1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,
+    -1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651, 2002,-1651,
+
+    -1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,
+    -1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,-1651,
+    -1651,-1651,-1651, 2002,-1651,-1651,-1651,-1651,-1651,-1651,
+    -1651,-1651,-1651,-1651,-1651
+    },
+
+    {
+       27,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,
+    -1652,-1652,-1652, 2003,-1652,-1652,-1652,-1652,-1652,-1652,
+    -1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,
+    -1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,
+    -1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,
+    -1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,-1652,
+
+    -1652,-1652,-1652,-1652,-1652
+    },
+
+    {
+       27,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,
+    -1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,
+    -1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,
+    -1653,-1653, 2004,-1653,-1653,-1653,-1653,-1653,-1653,-1653,
+    -1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,-1653,
+    -1653,-1653,-1653,-1653,-1653,-1653,-1653, 2004,-1653,-1653,
+    -1653,-1653,-1653,-1653,-1653
+    },
+
+    {
+       27,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,
+    -1654,-1654,-1654, 2005,-1654,-1654,-1654,-1654,-1654,-1654,
+
+    -1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,
+    -1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,
+    -1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,
+    -1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,-1654,
+    -1654,-1654,-1654,-1654,-1654
+    },
+
+    {
+       27,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,
+    -1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,
+    -1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,
+    -1655,-1655, 2006,-1655,-1655,-1655,-1655,-1655,-1655,-1655,
+    -1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,-1655,
+
+    -1655,-1655,-1655,-1655,-1655,-1655,-1655, 2006,-1655,-1655,
+    -1655,-1655,-1655,-1655,-1655
+    },
+
+    {
+       27,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,
+    -1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,
+    -1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656, 2007,-1656,
+    -1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,
+    -1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,-1656,
+    -1656,-1656,-1656, 2007,-1656,-1656,-1656,-1656,-1656,-1656,
+    -1656,-1656,-1656,-1656,-1656
+    },
+
+    {
+       27,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,
+
+    -1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,
+    -1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,
+    -1657, 2008,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,
+    -1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,-1657,
+    -1657,-1657,-1657,-1657,-1657,-1657, 2008,-1657,-1657,-1657,
+    -1657,-1657,-1657,-1657,-1657
+    },
+
+    {
+       27,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,
+    -1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,
+    -1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,
+    -1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,
+
+    -1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,
+    -1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,-1658,
+    -1658,-1658,-1658,-1658,-1658
+    },
+
+    {
+       27,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,
+    -1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,
+    -1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659, 2009,-1659,
+    -1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,
+    -1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,-1659,
+    -1659,-1659,-1659, 2009,-1659,-1659,-1659,-1659,-1659,-1659,
+    -1659,-1659,-1659,-1659,-1659
+
+    },
+
+    {
+       27,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,
+    -1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,
+    -1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,
+    -1660, 2010,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,
+    -1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,-1660,
+    -1660,-1660,-1660,-1660,-1660,-1660, 2010,-1660,-1660,-1660,
+    -1660,-1660,-1660,-1660,-1660
+    },
+
+    {
+       27,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661, 2011,
+    -1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,
+    -1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,
+
+    -1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661, 2012,
+    -1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,
+    -1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,-1661,
+    -1661,-1661,-1661,-1661,-1661
+    },
+
+    {
+       27,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662, 2013,
+    -1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,
+    -1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,
+    -1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662, 2014,
+    -1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,
+    -1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,-1662,
+
+    -1662,-1662,-1662,-1662,-1662
+    },
+
+    {
+       27,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,
+    -1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,
+    -1663,-1663,-1663,-1663,-1663, 2015,-1663,-1663,-1663,-1663,
+    -1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,
+    -1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,
+     2015,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,-1663,
+    -1663,-1663,-1663,-1663,-1663
+    },
+
+    {
+       27,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,
+    -1664,-1664,-1664,-1664, 2016,-1664,-1664,-1664,-1664,-1664,
+
+    -1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,
+    -1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,
+     2016,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,
+    -1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,-1664,
+    -1664,-1664,-1664,-1664,-1664
+    },
+
+    {
+       27,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,
+    -1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,
+    -1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,
+    -1665, 2017,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,
+    -1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,-1665,
+
+    -1665,-1665,-1665,-1665,-1665,-1665, 2017,-1665,-1665,-1665,
+    -1665,-1665,-1665,-1665,-1665
+    },
+
+    {
+       27,-1666, 1666, 1666,-1666,-1666,-1666,-1666,-1666,-1666,
+    -1666,-1666, 1667,-1666,-1666,-1666,-1666,-1666,-1666,-1666,
+    -1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,
+    -1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,
+    -1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,
+    -1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,-1666,
+    -1666,-1666,-1666,-1666,-1666
+    },
+
+    {
+       27,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,
+
+    -1667,-1667,-1667,-1667,-1667,-1667, 2018,-1667,-1667,-1667,
+    -1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,
+    -1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,
+    -1667,-1667, 2018,-1667,-1667,-1667,-1667,-1667,-1667,-1667,
+    -1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,-1667,
+    -1667,-1667,-1667,-1667,-1667
+    },
+
+    {
+       27,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,
+    -1668,-1668,-1668,-1668, 2019,-1668,-1668,-1668,-1668,-1668,
+    -1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,
+    -1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,
+
+     2019,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,
+    -1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,-1668,
+    -1668,-1668,-1668,-1668,-1668
+    },
+
+    {
+       27,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,
+    -1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,
+    -1669, 2020,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,
+    -1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,
+    -1669,-1669,-1669,-1669,-1669,-1669,-1669, 2020,-1669,-1669,
+    -1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,-1669,
+    -1669,-1669,-1669,-1669,-1669
+
+    },
+
+    {
+       27,-1670, 2021, 2021,-1670,-1670,-1670,-1670,-1670,-1670,
+    -1670,-1670, 2022,-1670,-1670,-1670,-1670,-1670,-1670,-1670,
+    -1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,
+    -1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,
+    -1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,
+    -1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,-1670,
+    -1670,-1670,-1670,-1670,-1670
+    },
+
+    {
+       27,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,
+    -1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,
+    -1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,
+
+    -1671,-1671,-1671, 2023,-1671,-1671,-1671,-1671,-1671,-1671,
+    -1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671,
+    -1671,-1671,-1671,-1671,-1671,-1671,-1671,-1671, 2023,-1671,
+    -1671,-1671,-1671,-1671,-1671
+    },
+
+    {
+       27,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,
+    -1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,
+    -1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672, 2024,-1672,
+    -1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,
+    -1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,-1672,
+    -1672,-1672,-1672, 2024,-1672,-1672,-1672,-1672,-1672,-1672,
+
+    -1672,-1672,-1672,-1672,-1672
+    },
+
+    {
+       27,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,
+    -1673,-1673,-1673,-1673, 2025,-1673,-1673,-1673,-1673,-1673,
+    -1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,
+    -1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,
+     2025,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,
+    -1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,-1673,
+    -1673,-1673,-1673,-1673,-1673
+    },
+
+    {
+       27,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,
+    -1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,
+
+    -1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,
+    -1674, 2026,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,
+    -1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,-1674,
+    -1674,-1674,-1674,-1674,-1674,-1674, 2026,-1674,-1674,-1674,
+    -1674,-1674,-1674,-1674,-1674
+    },
+
+    {
+       27,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,
+    -1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,
+    -1675,-1675,-1675,-1675,-1675,-1675,-1675, 2027,-1675,-1675,
+    -1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,
+    -1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,-1675,
+
+    -1675,-1675, 2027,-1675,-1675,-1675,-1675,-1675,-1675,-1675,
+    -1675,-1675,-1675,-1675,-1675
+    },
+
+    {
+       27,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,  603,
+    -1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,
+    -1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,
+    -1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,
+    -1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,
+    -1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,-1676,
+    -1676,-1676,-1676,-1676,-1676
+    },
+
+    {
+       27,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,
+
+    -1677,-1677,-1677, 2028,-1677,-1677,-1677,-1677,-1677,-1677,
+    -1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,
+    -1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,
+    -1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,
+    -1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,-1677,
+    -1677,-1677,-1677,-1677,-1677
+    },
+
+    {
+       27,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,
+    -1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,
+    -1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,
+    -1678,-1678, 2029,-1678,-1678,-1678,-1678,-1678,-1678,-1678,
+
+    -1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,-1678,
+    -1678,-1678,-1678,-1678,-1678,-1678,-1678, 2029,-1678,-1678,
+    -1678,-1678,-1678,-1678,-1678
+    },
+
+    {
+       27,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,
+    -1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,
+    -1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679, 2030,-1679,
+    -1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,
+    -1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,-1679,
+    -1679,-1679,-1679, 2030,-1679,-1679,-1679,-1679,-1679,-1679,
+    -1679,-1679,-1679,-1679,-1679
+
+    },
+
+    {
+       27,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,
+    -1680,-1680,-1680,-1680,-1680,-1680, 2031,-1680,-1680,-1680,
+    -1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,
+    -1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,
+    -1680,-1680, 2031,-1680,-1680,-1680,-1680,-1680,-1680,-1680,
+    -1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,-1680,
+    -1680,-1680,-1680,-1680,-1680
+    },
+
+    {
+       27,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,
+    -1681,-1681,-1681,-1681,-1681, 2032,-1681,-1681,-1681,-1681,
+    -1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,
+
+    -1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,
+    -1681, 2032,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,
+    -1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,-1681,
+    -1681,-1681,-1681,-1681,-1681
+    },
+
+    {
+       27,-1682, 2033, 2033,-1682,-1682,-1682,-1682,-1682,-1682,
+    -1682,-1682, 2034,-1682,-1682,-1682,-1682,-1682,-1682,-1682,
+    -1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,
+    -1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,
+    -1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,
+    -1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,-1682,
+
+    -1682,-1682,-1682,-1682,-1682
+    },
+
+    {
+       27,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,
+    -1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,
+    -1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,
+    -1683,-1683,-1683, 2035,-1683,-1683,-1683,-1683,-1683,-1683,
+    -1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683,
+    -1683,-1683,-1683,-1683,-1683,-1683,-1683,-1683, 2035,-1683,
+    -1683,-1683,-1683,-1683,-1683
+    },
+
+    {
+       27,-1684, 2036, 2036,-1684,-1684,-1684,-1684,-1684,-1684,
+    -1684,-1684, 2037,-1684,-1684,-1684,-1684,-1684,-1684,-1684,
+
+    -1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,
+    -1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,
+    -1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,
+    -1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,-1684,
+    -1684,-1684,-1684,-1684,-1684
+    },
+
+    {
+       27,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,
+    -1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,
+    -1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,
+    -1685,-1685,-1685, 2038,-1685,-1685,-1685,-1685,-1685,-1685,
+    -1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685,
+
+    -1685,-1685,-1685,-1685,-1685,-1685,-1685,-1685, 2038,-1685,
+    -1685,-1685,-1685,-1685,-1685
+    },
+
+    {
+       27,-1686, 2039, 2039,-1686,-1686,-1686,-1686,-1686,-1686,
+    -1686,-1686, 2040,-1686,-1686,-1686,-1686,-1686,-1686,-1686,
+    -1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,
+    -1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,
+    -1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,
+    -1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,-1686,
+    -1686,-1686,-1686,-1686,-1686
+    },
+
+    {
+       27,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,
+
+    -1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,
+    -1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,
+    -1687,-1687,-1687, 2041,-1687,-1687,-1687,-1687,-1687,-1687,
+    -1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687,
+    -1687,-1687,-1687,-1687,-1687,-1687,-1687,-1687, 2041,-1687,
+    -1687,-1687,-1687,-1687,-1687
+    },
+
+    {
+       27,-1688, 1688, 1688,-1688,-1688,-1688,-1688,-1688,-1688,
+    -1688,-1688, 1689,-1688,-1688,-1688,-1688,-1688,-1688,-1688,
+    -1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,
+    -1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,
+
+    -1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,
+    -1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,-1688,
+    -1688,-1688,-1688,-1688,-1688
+    },
+
+    {
+       27,-1689,-1689,-1689,-1689,-1689,-1689,-1689,-1689,-1689,
+    -1689,-1689,-1689,-1689,-1689,-1689, 2042,-1689,-1689,-1689,
+    -1689,-1689,-1689,-1689,-1689,-1689,-1689,-1689,-1689, 2043,
+    -1689,-1689,-1689,-1689,-1689,-1689,-1689,-1689,-1689,-1689,
+    -1689,-1689, 2042,-1689,-1689,-1689,-1689,-1689,-1689,-1689,
+    -1689,-1689,-1689,-1689, 2043,-1689,-1689,-1689,-1689,-1689,
+    -1689,-1689,-1689,-1689,-1689
+
+    },
+
+    {
+       27,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,
+    -1690,-1690,-1690,-1690, 2044,-1690,-1690,-1690,-1690,-1690,
+    -1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,
+    -1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,
+     2044,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,
+    -1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,-1690,
+    -1690,-1690,-1690,-1690,-1690
+    },
+
+    {
+       27,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,
+    -1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,
+    -1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,
+
+    -1691,-1691, 2045,-1691,-1691,-1691,-1691,-1691,-1691,-1691,
+    -1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,-1691,
+    -1691,-1691,-1691,-1691,-1691,-1691,-1691, 2045,-1691,-1691,
+    -1691,-1691,-1691,-1691,-1691
+    },
+
+    {
+       27,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,
+    -1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,
+    -1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692, 2046,-1692,
+    -1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,
+    -1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,-1692,
+    -1692,-1692,-1692, 2046,-1692,-1692,-1692,-1692,-1692,-1692,
+
+    -1692,-1692,-1692,-1692,-1692
+    },
+
+    {
+       27,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,
+    -1693,-1693,-1693, 2047,-1693,-1693,-1693,-1693,-1693,-1693,
+    -1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,
+    -1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,
+    -1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,
+    -1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,-1693,
+    -1693,-1693,-1693,-1693,-1693
+    },
+
+    {
+       27,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,
+    -1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,
+
+    -1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,
+    -1694,-1694, 2048,-1694,-1694,-1694,-1694,-1694,-1694,-1694,
+    -1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,-1694,
+    -1694,-1694,-1694,-1694,-1694,-1694,-1694, 2048,-1694,-1694,
+    -1694,-1694,-1694,-1694,-1694
+    },
+
+    {
+       27,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,
+    -1695,-1695,-1695, 2049,-1695,-1695,-1695,-1695,-1695,-1695,
+    -1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,
+    -1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,
+    -1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,
+
+    -1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,-1695,
+    -1695,-1695,-1695,-1695,-1695
+    },
+
+    {
+       27,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,
+    -1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,
+    -1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,
+    -1696,-1696, 2050,-1696,-1696,-1696,-1696,-1696,-1696,-1696,
+    -1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,-1696,
+    -1696,-1696,-1696,-1696,-1696,-1696,-1696, 2050,-1696,-1696,
+    -1696,-1696,-1696,-1696,-1696
+    },
+
+    {
+       27,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,
+
+    -1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,
+    -1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697, 2051,-1697,
+    -1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,
+    -1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,-1697,
+    -1697,-1697,-1697, 2051,-1697,-1697,-1697,-1697,-1697,-1697,
+    -1697,-1697,-1697,-1697,-1697
+    },
+
+    {
+       27,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,
+    -1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,
+    -1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,
+    -1698, 2052,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,
+
+    -1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,-1698,
+    -1698,-1698,-1698,-1698,-1698,-1698, 2052,-1698,-1698,-1698,
+    -1698,-1698,-1698,-1698,-1698
+    },
+
+    {
+       27,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,
+    -1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,
+    -1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,
+    -1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,
+    -1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,
+    -1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,-1699,
+    -1699,-1699,-1699,-1699,-1699
+
+    },
+
+    {
+       27,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,
+    -1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,
+    -1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700, 2053,-1700,
+    -1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,
+    -1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,-1700,
+    -1700,-1700,-1700, 2053,-1700,-1700,-1700,-1700,-1700,-1700,
+    -1700,-1700,-1700,-1700,-1700
+    },
+
+    {
+       27,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,
+    -1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,
+    -1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,
+
+    -1701, 2054,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,
+    -1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,-1701,
+    -1701,-1701,-1701,-1701,-1701,-1701, 2054,-1701,-1701,-1701,
+    -1701,-1701,-1701,-1701,-1701
+    },
+
+    {
+       27,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702, 2055,
+    -1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,
+    -1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,
+    -1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702, 2056,
+    -1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,
+    -1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,-1702,
+
+    -1702,-1702,-1702,-1702,-1702
+    },
+
+    {
+       27,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703, 2057,
+    -1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,
+    -1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,
+    -1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703, 2058,
+    -1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,
+    -1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,-1703,
+    -1703,-1703,-1703,-1703,-1703
+    },
+
+    {
+       27,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,
+    -1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,
+
+    -1704,-1704,-1704,-1704,-1704, 2059,-1704,-1704,-1704,-1704,
+    -1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,
+    -1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,
+     2059,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,-1704,
+    -1704,-1704,-1704,-1704,-1704
+    },
+
+    {
+       27,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,
+    -1705,-1705,-1705,-1705, 2060,-1705,-1705,-1705,-1705,-1705,
+    -1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,
+    -1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,
+     2060,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,
+
+    -1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,-1705,
+    -1705,-1705,-1705,-1705,-1705
+    },
+
+    {
+       27,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,
+    -1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,
+    -1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,
+    -1706, 2061,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,
+    -1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,-1706,
+    -1706,-1706,-1706,-1706,-1706,-1706, 2061,-1706,-1706,-1706,
+    -1706,-1706,-1706,-1706,-1706
+    },
+
+    {
+       27,-1707, 1707, 1707,-1707,-1707,-1707,-1707,-1707,-1707,
+
+    -1707,-1707, 1708,-1707,-1707,-1707,-1707,-1707,-1707,-1707,
+    -1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,
+    -1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,
+    -1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,
+    -1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,-1707,
+    -1707,-1707,-1707,-1707,-1707
+    },
+
+    {
+       27,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,
+    -1708,-1708,-1708,-1708,-1708,-1708, 2062,-1708,-1708,-1708,
+    -1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,
+    -1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,
+
+    -1708,-1708, 2062,-1708,-1708,-1708,-1708,-1708,-1708,-1708,
+    -1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,-1708,
+    -1708,-1708,-1708,-1708,-1708
+    },
+
+    {
+       27,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,
+    -1709,-1709,-1709,-1709, 2063,-1709,-1709,-1709,-1709,-1709,
+    -1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,
+    -1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,
+     2063,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,
+    -1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,-1709,
+    -1709,-1709,-1709,-1709,-1709
+
+    },
+
+    {
+       27,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,
+    -1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,
+    -1710, 2064,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,
+    -1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,
+    -1710,-1710,-1710,-1710,-1710,-1710,-1710, 2064,-1710,-1710,
+    -1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,-1710,
+    -1710,-1710,-1710,-1710,-1710
+    },
+
+    {
+       27,-1711, 2065, 2065,-1711,-1711,-1711,-1711,-1711,-1711,
+    -1711,-1711, 2066,-1711,-1711,-1711,-1711,-1711,-1711,-1711,
+    -1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,
+
+    -1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,
+    -1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,
+    -1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,-1711,
+    -1711,-1711,-1711,-1711,-1711
+    },
+
+    {
+       27,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,
+    -1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,
+    -1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,
+    -1712,-1712,-1712, 2067,-1712,-1712,-1712,-1712,-1712,-1712,
+    -1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712,
+    -1712,-1712,-1712,-1712,-1712,-1712,-1712,-1712, 2067,-1712,
+
+    -1712,-1712,-1712,-1712,-1712
+    },
+
+    {
+       27,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,
+    -1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,
+    -1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713, 2068,-1713,
+    -1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,
+    -1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,-1713,
+    -1713,-1713,-1713, 2068,-1713,-1713,-1713,-1713,-1713,-1713,
+    -1713,-1713,-1713,-1713,-1713
+    },
+
+    {
+       27,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,
+    -1714,-1714,-1714,-1714, 2069,-1714,-1714,-1714,-1714,-1714,
+
+    -1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,
+    -1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,
+     2069,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,
+    -1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,-1714,
+    -1714,-1714,-1714,-1714,-1714
+    },
+
+    {
+       27,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,
+    -1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,
+    -1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,
+    -1715, 2070,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,
+    -1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,-1715,
+
+    -1715,-1715,-1715,-1715,-1715,-1715, 2070,-1715,-1715,-1715,
+    -1715,-1715,-1715,-1715,-1715
+    },
+
+    {
+       27,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,
+    -1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,
+    -1716,-1716,-1716,-1716,-1716,-1716,-1716, 2071,-1716,-1716,
+    -1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,
+    -1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,-1716,
+    -1716,-1716, 2071,-1716,-1716,-1716,-1716,-1716,-1716,-1716,
+    -1716,-1716,-1716,-1716,-1716
+    },
+
+    {
+       27,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,  626,
+
+    -1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,
+    -1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,
+    -1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,
+    -1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,
+    -1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,-1717,
+    -1717,-1717,-1717,-1717,-1717
+    },
+
+    {
+       27,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,
+    -1718,-1718,-1718, 2072,-1718,-1718,-1718,-1718,-1718,-1718,
+    -1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,
+    -1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,
+
+    -1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,
+    -1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,-1718,
+    -1718,-1718,-1718,-1718,-1718
+    },
+
+    {
+       27,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,
+    -1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,
+    -1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,
+    -1719,-1719, 2073,-1719,-1719,-1719,-1719,-1719,-1719,-1719,
+    -1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,-1719,
+    -1719,-1719,-1719,-1719,-1719,-1719,-1719, 2073,-1719,-1719,
+    -1719,-1719,-1719,-1719,-1719
+
+    },
+
+    {
+       27,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,
+    -1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,
+    -1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720, 2074,-1720,
+    -1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,
+    -1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,-1720,
+    -1720,-1720,-1720, 2074,-1720,-1720,-1720,-1720,-1720,-1720,
+    -1720,-1720,-1720,-1720,-1720
+    },
+
+    {
+       27,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,
+    -1721,-1721,-1721,-1721,-1721,-1721, 2075,-1721,-1721,-1721,
+    -1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,
+
+    -1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,
+    -1721,-1721, 2075,-1721,-1721,-1721,-1721,-1721,-1721,-1721,
+    -1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,-1721,
+    -1721,-1721,-1721,-1721,-1721
+    },
+
+    {
+       27,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,
+    -1722,-1722,-1722,-1722,-1722, 2076,-1722,-1722,-1722,-1722,
+    -1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,
+    -1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,
+    -1722, 2076,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,
+    -1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,-1722,
+
+    -1722,-1722,-1722,-1722,-1722
+    },
+
+    {
+       27,-1723, 2077, 2077,-1723,-1723,-1723,-1723,-1723,-1723,
+    -1723,-1723, 2078,-1723,-1723,-1723,-1723,-1723,-1723,-1723,
+    -1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,
+    -1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,
+    -1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,
+    -1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,-1723,
+    -1723,-1723,-1723,-1723,-1723
+    },
+
+    {
+       27,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,
+    -1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,
+
+    -1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,
+    -1724,-1724,-1724, 2079,-1724,-1724,-1724,-1724,-1724,-1724,
+    -1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724,
+    -1724,-1724,-1724,-1724,-1724,-1724,-1724,-1724, 2079,-1724,
+    -1724,-1724,-1724,-1724,-1724
+    },
+
+    {
+       27,-1725, 2080, 2080,-1725,-1725,-1725,-1725,-1725,-1725,
+    -1725,-1725, 2081,-1725,-1725,-1725,-1725,-1725,-1725,-1725,
+    -1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,
+    -1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,
+    -1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,
+
+    -1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,-1725,
+    -1725,-1725,-1725,-1725,-1725
+    },
+
+    {
+       27,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,
+    -1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,
+    -1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,
+    -1726,-1726,-1726, 2082,-1726,-1726,-1726,-1726,-1726,-1726,
+    -1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726,
+    -1726,-1726,-1726,-1726,-1726,-1726,-1726,-1726, 2082,-1726,
+    -1726,-1726,-1726,-1726,-1726
+    },
+
+    {
+       27,-1727, 2083, 2083,-1727,-1727,-1727,-1727,-1727,-1727,
+
+    -1727,-1727, 2084,-1727,-1727,-1727,-1727,-1727,-1727,-1727,
+    -1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,
+    -1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,
+    -1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,
+    -1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,-1727,
+    -1727,-1727,-1727,-1727,-1727
+    },
+
+    {
+       27,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,
+    -1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,
+    -1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,
+    -1728,-1728,-1728, 2085,-1728,-1728,-1728,-1728,-1728,-1728,
+
+    -1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728,
+    -1728,-1728,-1728,-1728,-1728,-1728,-1728,-1728, 2085,-1728,
+    -1728,-1728,-1728,-1728,-1728
+    },
+
+    {
+       27,-1729, 1729, 1729,-1729,-1729,-1729,-1729,-1729,-1729,
+    -1729,-1729, 1730,-1729,-1729,-1729,-1729,-1729,-1729,-1729,
+    -1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,
+    -1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,
+    -1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,
+    -1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,-1729,
+    -1729,-1729,-1729,-1729,-1729
+
+    },
+
+    {
+       27,-1730,-1730,-1730,-1730,-1730,-1730,-1730,-1730,-1730,
+    -1730,-1730,-1730,-1730,-1730,-1730, 2086,-1730,-1730,-1730,
+    -1730,-1730,-1730,-1730,-1730,-1730,-1730,-1730,-1730, 2087,
+    -1730,-1730,-1730,-1730,-1730,-1730,-1730,-1730,-1730,-1730,
+    -1730,-1730, 2086,-1730,-1730,-1730,-1730,-1730,-1730,-1730,
+    -1730,-1730,-1730,-1730, 2087,-1730,-1730,-1730,-1730,-1730,
+    -1730,-1730,-1730,-1730,-1730
+    },
+
+    {
+       27,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,
+    -1731,-1731,-1731,-1731, 2088,-1731,-1731,-1731,-1731,-1731,
+    -1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,
+
+    -1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,
+     2088,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,
+    -1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,-1731,
+    -1731,-1731,-1731,-1731,-1731
+    },
+
+    {
+       27,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,
+    -1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,
+    -1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,
+    -1732,-1732, 2089,-1732,-1732,-1732,-1732,-1732,-1732,-1732,
+    -1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,-1732,
+    -1732,-1732,-1732,-1732,-1732,-1732,-1732, 2089,-1732,-1732,
+
+    -1732,-1732,-1732,-1732,-1732
+    },
+
+    {
+       27,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,
+    -1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,
+    -1733,-1733,-1733,-1733,-1733, 2090,-1733,-1733,-1733,-1733,
+    -1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,
+    -1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,
+     2090,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,-1733,
+    -1733,-1733,-1733,-1733,-1733
+    },
+
+    {
+       27,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,
+    -1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,
+
+    -1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734, 2091,-1734,
+    -1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,
+    -1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,-1734,
+    -1734,-1734,-1734, 2091,-1734,-1734,-1734,-1734,-1734,-1734,
+    -1734,-1734,-1734,-1734,-1734
+    },
+
+    {
+       27,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,
+    -1735,-1735,-1735, 2092,-1735,-1735,-1735,-1735,-1735,-1735,
+    -1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,
+    -1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,
+    -1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,
+
+    -1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,-1735,
+    -1735,-1735,-1735,-1735,-1735
+    },
+
+    {
+       27,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,
+    -1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,
+    -1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,
+    -1736,-1736, 2093,-1736,-1736,-1736,-1736,-1736,-1736,-1736,
+    -1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,-1736,
+    -1736,-1736,-1736,-1736,-1736,-1736,-1736, 2093,-1736,-1736,
+    -1736,-1736,-1736,-1736,-1736
+    },
+
+    {
+       27,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,
+
+    -1737,-1737,-1737, 2094,-1737,-1737,-1737,-1737,-1737,-1737,
+    -1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,
+    -1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,
+    -1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,
+    -1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,-1737,
+    -1737,-1737,-1737,-1737,-1737
+    },
+
+    {
+       27,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,
+    -1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,
+    -1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,
+    -1738,-1738, 2095,-1738,-1738,-1738,-1738,-1738,-1738,-1738,
+
+    -1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,-1738,
+    -1738,-1738,-1738,-1738,-1738,-1738,-1738, 2095,-1738,-1738,
+    -1738,-1738,-1738,-1738,-1738
+    },
+
+    {
+       27,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,
+    -1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,
+    -1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739, 2096,-1739,
+    -1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,
+    -1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,-1739,
+    -1739,-1739,-1739, 2096,-1739,-1739,-1739,-1739,-1739,-1739,
+    -1739,-1739,-1739,-1739,-1739
+
+    },
+
+    {
+       27,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,
+    -1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,
+    -1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,
+    -1740, 2097,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,
+    -1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,-1740,
+    -1740,-1740,-1740,-1740,-1740,-1740, 2097,-1740,-1740,-1740,
+    -1740,-1740,-1740,-1740,-1740
+    },
+
+    {
+       27,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,
+    -1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,
+    -1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,
+
+    -1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,
+    -1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,
+    -1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,-1741,
+    -1741,-1741,-1741,-1741,-1741
+    },
+
+    {
+       27,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,
+    -1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,
+    -1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742, 2098,-1742,
+    -1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,
+    -1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,-1742,
+    -1742,-1742,-1742, 2098,-1742,-1742,-1742,-1742,-1742,-1742,
+
+    -1742,-1742,-1742,-1742,-1742
+    },
+
+    {
+       27,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,
+    -1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,
+    -1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,
+    -1743, 2099,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,
+    -1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,-1743,
+    -1743,-1743,-1743,-1743,-1743,-1743, 2099,-1743,-1743,-1743,
+    -1743,-1743,-1743,-1743,-1743
+    },
+
+    {
+       27,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744, 2100,
+    -1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,
+
+    -1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,
+    -1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744, 2101,
+    -1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,
+    -1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,-1744,
+    -1744,-1744,-1744,-1744,-1744
+    },
+
+    {
+       27,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745, 2102,
+    -1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,
+    -1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,
+    -1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745, 2103,
+    -1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,
+
+    -1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,-1745,
+    -1745,-1745,-1745,-1745,-1745
+    },
+
+    {
+       27,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,
+    -1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,
+    -1746,-1746,-1746,-1746,-1746, 2104,-1746,-1746,-1746,-1746,
+    -1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,
+    -1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,
+     2104,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,-1746,
+    -1746,-1746,-1746,-1746,-1746
+    },
+
+    {
+       27,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,
+
+    -1747,-1747,-1747,-1747, 2105,-1747,-1747,-1747,-1747,-1747,
+    -1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,
+    -1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,
+     2105,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,
+    -1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,-1747,
+    -1747,-1747,-1747,-1747,-1747
+    },
+
+    {
+       27,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,
+    -1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,
+    -1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,
+    -1748, 2106,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,
+
+    -1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,-1748,
+    -1748,-1748,-1748,-1748,-1748,-1748, 2106,-1748,-1748,-1748,
+    -1748,-1748,-1748,-1748,-1748
+    },
+
+    {
+       27,-1749, 1749, 1749,-1749,-1749,-1749,-1749,-1749,-1749,
+    -1749,-1749, 1750,-1749,-1749,-1749,-1749,-1749,-1749,-1749,
+    -1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,
+    -1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,
+    -1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,
+    -1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,-1749,
+    -1749,-1749,-1749,-1749,-1749
+
+    },
+
+    {
+       27,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,
+    -1750,-1750,-1750,-1750,-1750,-1750, 2107,-1750,-1750,-1750,
+    -1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,
+    -1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,
+    -1750,-1750, 2107,-1750,-1750,-1750,-1750,-1750,-1750,-1750,
+    -1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,-1750,
+    -1750,-1750,-1750,-1750,-1750
+    },
+
+    {
+       27,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,
+    -1751,-1751,-1751,-1751, 2108,-1751,-1751,-1751,-1751,-1751,
+    -1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,
+
+    -1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,
+     2108,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,
+    -1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,-1751,
+    -1751,-1751,-1751,-1751,-1751
+    },
+
+    {
+       27,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,
+    -1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,
+    -1752, 2109,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,
+    -1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,
+    -1752,-1752,-1752,-1752,-1752,-1752,-1752, 2109,-1752,-1752,
+    -1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,-1752,
+
+    -1752,-1752,-1752,-1752,-1752
+    },
+
+    {
+       27,-1753, 2110, 2110,-1753,-1753,-1753,-1753,-1753,-1753,
+    -1753,-1753, 2111,-1753,-1753,-1753,-1753,-1753,-1753,-1753,
+    -1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,
+    -1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,
+    -1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,
+    -1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,-1753,
+    -1753,-1753,-1753,-1753,-1753
+    },
+
+    {
+       27,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,
+    -1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,
+
+    -1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,
+    -1754,-1754,-1754, 2112,-1754,-1754,-1754,-1754,-1754,-1754,
+    -1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754,
+    -1754,-1754,-1754,-1754,-1754,-1754,-1754,-1754, 2112,-1754,
+    -1754,-1754,-1754,-1754,-1754
+    },
+
+    {
+       27,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,
+    -1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,
+    -1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755, 2113,-1755,
+    -1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,
+    -1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,-1755,
+
+    -1755,-1755,-1755, 2113,-1755,-1755,-1755,-1755,-1755,-1755,
+    -1755,-1755,-1755,-1755,-1755
+    },
+
+    {
+       27,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,
+    -1756,-1756,-1756,-1756, 2114,-1756,-1756,-1756,-1756,-1756,
+    -1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,
+    -1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,
+     2114,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,
+    -1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,-1756,
+    -1756,-1756,-1756,-1756,-1756
+    },
+
+    {
+       27,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,
+
+    -1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,
+    -1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,
+    -1757, 2115,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,
+    -1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,-1757,
+    -1757,-1757,-1757,-1757,-1757,-1757, 2115,-1757,-1757,-1757,
+    -1757,-1757,-1757,-1757,-1757
+    },
+
+    {
+       27,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,
+    -1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,
+    -1758,-1758,-1758,-1758,-1758,-1758,-1758, 2116,-1758,-1758,
+    -1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,
+
+    -1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,-1758,
+    -1758,-1758, 2116,-1758,-1758,-1758,-1758,-1758,-1758,-1758,
+    -1758,-1758,-1758,-1758,-1758
+    },
+
+    {
+       27,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,  649,
+    -1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,
+    -1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,
+    -1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,
+    -1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,
+    -1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,-1759,
+    -1759,-1759,-1759,-1759,-1759
+
+    },
+
+    {
+       27,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,
+    -1760,-1760,-1760, 2117,-1760,-1760,-1760,-1760,-1760,-1760,
+    -1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,
+    -1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,
+    -1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,
+    -1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,-1760,
+    -1760,-1760,-1760,-1760,-1760
+    },
+
+    {
+       27,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,
+    -1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,
+    -1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,
+
+    -1761,-1761, 2118,-1761,-1761,-1761,-1761,-1761,-1761,-1761,
+    -1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,-1761,
+    -1761,-1761,-1761,-1761,-1761,-1761,-1761, 2118,-1761,-1761,
+    -1761,-1761,-1761,-1761,-1761
+    },
+
+    {
+       27,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,
+    -1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,
+    -1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762, 2119,-1762,
+    -1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,
+    -1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,-1762,
+    -1762,-1762,-1762, 2119,-1762,-1762,-1762,-1762,-1762,-1762,
+
+    -1762,-1762,-1762,-1762,-1762
+    },
+
+    {
+       27,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,
+    -1763,-1763,-1763,-1763,-1763,-1763, 2120,-1763,-1763,-1763,
+    -1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,
+    -1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,
+    -1763,-1763, 2120,-1763,-1763,-1763,-1763,-1763,-1763,-1763,
+    -1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,-1763,
+    -1763,-1763,-1763,-1763,-1763
+    },
+
+    {
+       27,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,
+    -1764,-1764,-1764,-1764,-1764, 2121,-1764,-1764,-1764,-1764,
+
+    -1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,
+    -1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,
+    -1764, 2121,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,
+    -1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,-1764,
+    -1764,-1764,-1764,-1764,-1764
+    },
+
+    {
+       27,-1765, 2122, 2122,-1765,-1765,-1765,-1765,-1765,-1765,
+    -1765,-1765, 2123,-1765,-1765,-1765,-1765,-1765,-1765,-1765,
+    -1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,
+    -1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,
+    -1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,
+
+    -1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,-1765,
+    -1765,-1765,-1765,-1765,-1765
+    },
+
+    {
+       27,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,
+    -1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,
+    -1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,
+    -1766,-1766,-1766, 2124,-1766,-1766,-1766,-1766,-1766,-1766,
+    -1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766,
+    -1766,-1766,-1766,-1766,-1766,-1766,-1766,-1766, 2124,-1766,
+    -1766,-1766,-1766,-1766,-1766
+    },
+
+    {
+       27,-1767, 2125, 2125,-1767,-1767,-1767,-1767,-1767,-1767,
+
+    -1767,-1767, 2126,-1767,-1767,-1767,-1767,-1767,-1767,-1767,
+    -1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,
+    -1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,
+    -1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,
+    -1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,-1767,
+    -1767,-1767,-1767,-1767,-1767
+    },
+
+    {
+       27,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,
+    -1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,
+    -1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,
+    -1768,-1768,-1768, 2127,-1768,-1768,-1768,-1768,-1768,-1768,
+
+    -1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768,
+    -1768,-1768,-1768,-1768,-1768,-1768,-1768,-1768, 2127,-1768,
+    -1768,-1768,-1768,-1768,-1768
+    },
+
+    {
+       27,-1769, 2128, 2128,-1769,-1769,-1769,-1769,-1769,-1769,
+    -1769,-1769, 2129,-1769,-1769,-1769,-1769,-1769,-1769,-1769,
+    -1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,
+    -1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,
+    -1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,
+    -1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,-1769,
+    -1769,-1769,-1769,-1769,-1769
+
+    },
+
+    {
+       27,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,
+    -1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,
+    -1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,
+    -1770,-1770,-1770, 2130,-1770,-1770,-1770,-1770,-1770,-1770,
+    -1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770,
+    -1770,-1770,-1770,-1770,-1770,-1770,-1770,-1770, 2130,-1770,
+    -1770,-1770,-1770,-1770,-1770
+    },
+
+    {
+       27,-1771, 1771, 1771,-1771,-1771,-1771,-1771,-1771,-1771,
+    -1771,-1771, 1772,-1771,-1771,-1771,-1771,-1771,-1771,-1771,
+    -1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,
+
+    -1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,
+    -1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,
+    -1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,-1771,
+    -1771,-1771,-1771,-1771,-1771
+    },
+
+    {
+       27,-1772,-1772,-1772,-1772,-1772,-1772,-1772,-1772,-1772,
+    -1772,-1772,-1772,-1772,-1772,-1772, 2131,-1772,-1772,-1772,
+    -1772,-1772,-1772,-1772,-1772,-1772,-1772,-1772,-1772, 2132,
+    -1772,-1772,-1772,-1772,-1772,-1772,-1772,-1772,-1772,-1772,
+    -1772,-1772, 2131,-1772,-1772,-1772,-1772,-1772,-1772,-1772,
+    -1772,-1772,-1772,-1772, 2132,-1772,-1772,-1772,-1772,-1772,
+
+    -1772,-1772,-1772,-1772,-1772
+    },
+
+    {
+       27,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,
+    -1773,-1773,-1773,-1773, 2133,-1773,-1773,-1773,-1773,-1773,
+    -1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,
+    -1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,
+     2133,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,
+    -1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,-1773,
+    -1773,-1773,-1773,-1773,-1773
+    },
+
+    {
+       27,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,
+    -1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,
+
+    -1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,
+    -1774,-1774, 2134,-1774,-1774,-1774,-1774,-1774,-1774,-1774,
+    -1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,-1774,
+    -1774,-1774,-1774,-1774,-1774,-1774,-1774, 2134,-1774,-1774,
+    -1774,-1774,-1774,-1774,-1774
+    },
+
+    {
+       27,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,
+    -1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,
+    -1775,-1775,-1775,-1775,-1775, 2135,-1775,-1775,-1775,-1775,
+    -1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,
+    -1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,
+
+     2135,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,-1775,
+    -1775,-1775,-1775,-1775,-1775
+    },
+
+    {
+       27,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,
+    -1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,
+    -1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776, 2136,-1776,
+    -1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,
+    -1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,-1776,
+    -1776,-1776,-1776, 2136,-1776,-1776,-1776,-1776,-1776,-1776,
+    -1776,-1776,-1776,-1776,-1776
+    },
+
+    {
+       27,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,
+
+    -1777,-1777,-1777, 2137,-1777,-1777,-1777,-1777,-1777,-1777,
+    -1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,
+    -1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,
+    -1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,
+    -1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,-1777,
+    -1777,-1777,-1777,-1777,-1777
+    },
+
+    {
+       27,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,
+    -1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,
+    -1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,
+    -1778,-1778, 2138,-1778,-1778,-1778,-1778,-1778,-1778,-1778,
+
+    -1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,-1778,
+    -1778,-1778,-1778,-1778,-1778,-1778,-1778, 2138,-1778,-1778,
+    -1778,-1778,-1778,-1778,-1778
+    },
+
+    {
+       27,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,
+    -1779,-1779,-1779, 2139,-1779,-1779,-1779,-1779,-1779,-1779,
+    -1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,
+    -1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,
+    -1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,
+    -1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,-1779,
+    -1779,-1779,-1779,-1779,-1779
+
+    },
+
+    {
+       27,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,
+    -1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,
+    -1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,
+    -1780,-1780, 2140,-1780,-1780,-1780,-1780,-1780,-1780,-1780,
+    -1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,-1780,
+    -1780,-1780,-1780,-1780,-1780,-1780,-1780, 2140,-1780,-1780,
+    -1780,-1780,-1780,-1780,-1780
+    },
+
+    {
+       27,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,
+    -1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,
+    -1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781, 2141,-1781,
+
+    -1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,
+    -1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,-1781,
+    -1781,-1781,-1781, 2141,-1781,-1781,-1781,-1781,-1781,-1781,
+    -1781,-1781,-1781,-1781,-1781
+    },
+
+    {
+       27,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,
+    -1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,
+    -1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,
+    -1782, 2142,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,
+    -1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,-1782,
+    -1782,-1782,-1782,-1782,-1782,-1782, 2142,-1782,-1782,-1782,
+
+    -1782,-1782,-1782,-1782,-1782
+    },
+
+    {
+       27,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,
+    -1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,
+    -1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,
+    -1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,
+    -1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,
+    -1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,-1783,
+    -1783,-1783,-1783,-1783,-1783
+    },
+
+    {
+       27,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,
+    -1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,
+
+    -1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784, 2143,-1784,
+    -1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,
+    -1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,-1784,
+    -1784,-1784,-1784, 2143,-1784,-1784,-1784,-1784,-1784,-1784,
+    -1784,-1784,-1784,-1784,-1784
+    },
+
+    {
+       27,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,
+    -1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,
+    -1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,
+    -1785, 2144,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,
+    -1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,-1785,
+
+    -1785,-1785,-1785,-1785,-1785,-1785, 2144,-1785,-1785,-1785,
+    -1785,-1785,-1785,-1785,-1785
+    },
+
+    {
+       27,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786, 2145,
+    -1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,
+    -1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,
+    -1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786, 2146,
+    -1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,
+    -1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,-1786,
+    -1786,-1786,-1786,-1786,-1786
+    },
+
+    {
+       27,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787, 2147,
+
+    -1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,
+    -1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,
+    -1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787, 2148,
+    -1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,
+    -1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,-1787,
+    -1787,-1787,-1787,-1787,-1787
+    },
+
+    {
+       27,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,
+    -1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,
+    -1788,-1788,-1788,-1788,-1788, 2149,-1788,-1788,-1788,-1788,
+    -1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,
+
+    -1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,
+     2149,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,-1788,
+    -1788,-1788,-1788,-1788,-1788
+    },
+
+    {
+       27,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,
+    -1789,-1789,-1789,-1789, 2150,-1789,-1789,-1789,-1789,-1789,
+    -1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,
+    -1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,
+     2150,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,
+    -1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,-1789,
+    -1789,-1789,-1789,-1789,-1789
+
+    },
+
+    {
+       27,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,
+    -1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,
+    -1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,
+    -1790, 2151,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,
+    -1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,-1790,
+    -1790,-1790,-1790,-1790,-1790,-1790, 2151,-1790,-1790,-1790,
+    -1790,-1790,-1790,-1790,-1790
+    },
+
+    {
+       27,-1791, 1791, 1791,-1791,-1791,-1791,-1791,-1791,-1791,
+    -1791,-1791, 1792,-1791,-1791,-1791,-1791,-1791,-1791,-1791,
+    -1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,
+
+    -1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,
+    -1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,
+    -1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,-1791,
+    -1791,-1791,-1791,-1791,-1791
+    },
+
+    {
+       27,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,
+    -1792,-1792,-1792,-1792,-1792,-1792, 2152,-1792,-1792,-1792,
+    -1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,
+    -1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,
+    -1792,-1792, 2152,-1792,-1792,-1792,-1792,-1792,-1792,-1792,
+    -1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,-1792,
+
+    -1792,-1792,-1792,-1792,-1792
+    },
+
+    {
+       27,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,
+    -1793,-1793,-1793,-1793, 2153,-1793,-1793,-1793,-1793,-1793,
+    -1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,
+    -1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,
+     2153,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,
+    -1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,-1793,
+    -1793,-1793,-1793,-1793,-1793
+    },
+
+    {
+       27,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,
+    -1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,
+
+    -1794, 2154,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,
+    -1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,
+    -1794,-1794,-1794,-1794,-1794,-1794,-1794, 2154,-1794,-1794,
+    -1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,-1794,
+    -1794,-1794,-1794,-1794,-1794
+    },
+
+    {
+       27,-1795, 2155, 2155,-1795,-1795,-1795,-1795,-1795,-1795,
+    -1795,-1795, 2156,-1795,-1795,-1795,-1795,-1795,-1795,-1795,
+    -1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,
+    -1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,
+    -1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,
+
+    -1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,-1795,
+    -1795,-1795,-1795,-1795,-1795
+    },
+
+    {
+       27,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,
+    -1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,
+    -1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,
+    -1796,-1796,-1796, 2157,-1796,-1796,-1796,-1796,-1796,-1796,
+    -1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796,
+    -1796,-1796,-1796,-1796,-1796,-1796,-1796,-1796, 2157,-1796,
+    -1796,-1796,-1796,-1796,-1796
+    },
+
+    {
+       27,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,
+
+    -1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,
+    -1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797, 2158,-1797,
+    -1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,
+    -1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,-1797,
+    -1797,-1797,-1797, 2158,-1797,-1797,-1797,-1797,-1797,-1797,
+    -1797,-1797,-1797,-1797,-1797
+    },
+
+    {
+       27,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,
+    -1798,-1798,-1798,-1798, 2159,-1798,-1798,-1798,-1798,-1798,
+    -1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,
+    -1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,
+
+     2159,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,
+    -1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,-1798,
+    -1798,-1798,-1798,-1798,-1798
+    },
+
+    {
+       27,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,
+    -1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,
+    -1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,
+    -1799, 2160,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,
+    -1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,-1799,
+    -1799,-1799,-1799,-1799,-1799,-1799, 2160,-1799,-1799,-1799,
+    -1799,-1799,-1799,-1799,-1799
+
+    },
+
+    {
+       27,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,
+    -1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,
+    -1800,-1800,-1800,-1800,-1800,-1800,-1800, 2161,-1800,-1800,
+    -1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,
+    -1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,-1800,
+    -1800,-1800, 2161,-1800,-1800,-1800,-1800,-1800,-1800,-1800,
+    -1800,-1800,-1800,-1800,-1800
+    },
+
+    {
+       27,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,  672,
+    -1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,
+    -1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,
+
+    -1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,
+    -1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,
+    -1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,-1801,
+    -1801,-1801,-1801,-1801,-1801
+    },
+
+    {
+       27,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,
+    -1802,-1802,-1802, 2162,-1802,-1802,-1802,-1802,-1802,-1802,
+    -1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,
+    -1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,
+    -1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,
+    -1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,-1802,
+
+    -1802,-1802,-1802,-1802,-1802
+    },
+
+    {
+       27,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,
+    -1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,
+    -1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,
+    -1803,-1803, 2163,-1803,-1803,-1803,-1803,-1803,-1803,-1803,
+    -1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,-1803,
+    -1803,-1803,-1803,-1803,-1803,-1803,-1803, 2163,-1803,-1803,
+    -1803,-1803,-1803,-1803,-1803
+    },
+
+    {
+       27,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,
+    -1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,
+
+    -1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804, 2164,-1804,
+    -1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,
+    -1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,-1804,
+    -1804,-1804,-1804, 2164,-1804,-1804,-1804,-1804,-1804,-1804,
+    -1804,-1804,-1804,-1804,-1804
+    },
+
+    {
+       27,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,
+    -1805,-1805,-1805,-1805,-1805,-1805, 2165,-1805,-1805,-1805,
+    -1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,
+    -1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,
+    -1805,-1805, 2165,-1805,-1805,-1805,-1805,-1805,-1805,-1805,
+
+    -1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,-1805,
+    -1805,-1805,-1805,-1805,-1805
+    },
+
+    {
+       27,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,
+    -1806,-1806,-1806,-1806,-1806, 2166,-1806,-1806,-1806,-1806,
+    -1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,
+    -1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,
+    -1806, 2166,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,
+    -1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,-1806,
+    -1806,-1806,-1806,-1806,-1806
+    },
+
+    {
+       27,-1807, 2167, 2167,-1807,-1807,-1807,-1807,-1807,-1807,
+
+    -1807,-1807, 2168,-1807,-1807,-1807,-1807,-1807,-1807,-1807,
+    -1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,
+    -1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,
+    -1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,
+    -1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,-1807,
+    -1807,-1807,-1807,-1807,-1807
+    },
+
+    {
+       27,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,
+    -1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,
+    -1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,
+    -1808,-1808,-1808, 2169,-1808,-1808,-1808,-1808,-1808,-1808,
+
+    -1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808,
+    -1808,-1808,-1808,-1808,-1808,-1808,-1808,-1808, 2169,-1808,
+    -1808,-1808,-1808,-1808,-1808
+    },
+
+    {
+       27,-1809, 2170, 2170,-1809,-1809,-1809,-1809,-1809,-1809,
+    -1809,-1809, 2171,-1809,-1809,-1809,-1809,-1809,-1809,-1809,
+    -1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,
+    -1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,
+    -1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,
+    -1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,-1809,
+    -1809,-1809,-1809,-1809,-1809
+
+    },
+
+    {
+       27,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,
+    -1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,
+    -1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,
+    -1810,-1810,-1810, 2172,-1810,-1810,-1810,-1810,-1810,-1810,
+    -1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810,
+    -1810,-1810,-1810,-1810,-1810,-1810,-1810,-1810, 2172,-1810,
+    -1810,-1810,-1810,-1810,-1810
+    },
+
+    {
+       27,-1811, 2173, 2173,-1811,-1811,-1811,-1811,-1811,-1811,
+    -1811,-1811, 2174,-1811,-1811,-1811,-1811,-1811,-1811,-1811,
+    -1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,
+
+    -1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,
+    -1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,
+    -1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,-1811,
+    -1811,-1811,-1811,-1811,-1811
+    },
+
+    {
+       27,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,
+    -1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,
+    -1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,
+    -1812,-1812,-1812, 2175,-1812,-1812,-1812,-1812,-1812,-1812,
+    -1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812,
+    -1812,-1812,-1812,-1812,-1812,-1812,-1812,-1812, 2175,-1812,
+
+    -1812,-1812,-1812,-1812,-1812
+    },
+
+    {
+       27,-1813, 1813, 1813,-1813,-1813,-1813,-1813,-1813,-1813,
+    -1813,-1813, 1814,-1813,-1813,-1813,-1813,-1813,-1813,-1813,
+    -1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,
+    -1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,
+    -1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,
+    -1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,-1813,
+    -1813,-1813,-1813,-1813,-1813
+    },
+
+    {
+       27,-1814,-1814,-1814,-1814,-1814,-1814,-1814,-1814,-1814,
+    -1814,-1814,-1814,-1814,-1814,-1814, 2176,-1814,-1814,-1814,
+
+    -1814,-1814,-1814,-1814,-1814,-1814,-1814,-1814,-1814, 2177,
+    -1814,-1814,-1814,-1814,-1814,-1814,-1814,-1814,-1814,-1814,
+    -1814,-1814, 2176,-1814,-1814,-1814,-1814,-1814,-1814,-1814,
+    -1814,-1814,-1814,-1814, 2177,-1814,-1814,-1814,-1814,-1814,
+    -1814,-1814,-1814,-1814,-1814
+    },
+
+    {
+       27,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,
+    -1815,-1815,-1815,-1815, 2178,-1815,-1815,-1815,-1815,-1815,
+    -1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,
+    -1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,
+     2178,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,
+
+    -1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,-1815,
+    -1815,-1815,-1815,-1815,-1815
+    },
+
+    {
+       27,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,
+    -1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,
+    -1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,
+    -1816,-1816, 2179,-1816,-1816,-1816,-1816,-1816,-1816,-1816,
+    -1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,-1816,
+    -1816,-1816,-1816,-1816,-1816,-1816,-1816, 2179,-1816,-1816,
+    -1816,-1816,-1816,-1816,-1816
+    },
+
+    {
+       27,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,
+
+    -1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,
+    -1817,-1817,-1817,-1817,-1817,-1817,-1817, 2180,-1817,-1817,
+    -1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,
+    -1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,-1817,
+    -1817,-1817, 2180,-1817,-1817,-1817,-1817,-1817,-1817,-1817,
+    -1817,-1817,-1817,-1817,-1817
+    },
+
+    {
+       27,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,
+    -1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,
+    -1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818, 2181,-1818,
+    -1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,
+
+    -1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,-1818,
+    -1818,-1818,-1818, 2181,-1818,-1818,-1818,-1818,-1818,-1818,
+    -1818,-1818,-1818,-1818,-1818
+    },
+
+    {
+       27,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,
+    -1819,-1819,-1819, 2182,-1819,-1819,-1819,-1819,-1819,-1819,
+    -1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,
+    -1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,
+    -1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,
+    -1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,-1819,
+    -1819,-1819,-1819,-1819,-1819
+
+    },
+
+    {
+       27,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,
+    -1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,
+    -1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,
+    -1820,-1820, 2183,-1820,-1820,-1820,-1820,-1820,-1820,-1820,
+    -1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,-1820,
+    -1820,-1820,-1820,-1820,-1820,-1820,-1820, 2183,-1820,-1820,
+    -1820,-1820,-1820,-1820,-1820
+    },
+
+    {
+       27,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,
+    -1821,-1821,-1821, 2184,-1821,-1821,-1821,-1821,-1821,-1821,
+    -1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,
+
+    -1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,
+    -1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,
+    -1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,-1821,
+    -1821,-1821,-1821,-1821,-1821
+    },
+
+    {
+       27,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,
+    -1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,
+    -1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,
+    -1822,-1822, 2185,-1822,-1822,-1822,-1822,-1822,-1822,-1822,
+    -1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,-1822,
+    -1822,-1822,-1822,-1822,-1822,-1822,-1822, 2185,-1822,-1822,
+
+    -1822,-1822,-1822,-1822,-1822
+    },
+
+    {
+       27,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,
+    -1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,
+    -1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823, 2186,-1823,
+    -1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,
+    -1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,-1823,
+    -1823,-1823,-1823, 2186,-1823,-1823,-1823,-1823,-1823,-1823,
+    -1823,-1823,-1823,-1823,-1823
+    },
+
+    {
+       27,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,
+    -1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,
+
+    -1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,
+    -1824, 2187,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,
+    -1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,-1824,
+    -1824,-1824,-1824,-1824,-1824,-1824, 2187,-1824,-1824,-1824,
+    -1824,-1824,-1824,-1824,-1824
+    },
+
+    {
+       27,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,
+    -1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,
+    -1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,
+    -1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,
+    -1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,
+
+    -1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,-1825,
+    -1825,-1825,-1825,-1825,-1825
+    },
+
+    {
+       27,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,
+    -1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,
+    -1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826, 2188,-1826,
+    -1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,
+    -1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,-1826,
+    -1826,-1826,-1826, 2188,-1826,-1826,-1826,-1826,-1826,-1826,
+    -1826,-1826,-1826,-1826,-1826
+    },
+
+    {
+       27,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,
+
+    -1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,
+    -1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,
+    -1827, 2189,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,
+    -1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,-1827,
+    -1827,-1827,-1827,-1827,-1827,-1827, 2189,-1827,-1827,-1827,
+    -1827,-1827,-1827,-1827,-1827
+    },
+
+    {
+       27,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828, 2190,
+    -1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,
+    -1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,
+    -1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828, 2191,
+
+    -1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,
+    -1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,-1828,
+    -1828,-1828,-1828,-1828,-1828
+    },
+
+    {
+       27,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829, 2192,
+    -1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,
+    -1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,
+    -1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829, 2193,
+    -1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,
+    -1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,-1829,
+    -1829,-1829,-1829,-1829,-1829
+
+    },
+
+    {
+       27,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,
+    -1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,
+    -1830,-1830,-1830,-1830,-1830, 2194,-1830,-1830,-1830,-1830,
+    -1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,
+    -1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,
+     2194,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,-1830,
+    -1830,-1830,-1830,-1830,-1830
+    },
+
+    {
+       27,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,
+    -1831,-1831,-1831,-1831, 2195,-1831,-1831,-1831,-1831,-1831,
+    -1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,
+
+    -1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,
+     2195,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,
+    -1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,-1831,
+    -1831,-1831,-1831,-1831,-1831
+    },
+
+    {
+       27,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,
+    -1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,
+    -1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,
+    -1832, 2196,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,
+    -1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,-1832,
+    -1832,-1832,-1832,-1832,-1832,-1832, 2196,-1832,-1832,-1832,
+
+    -1832,-1832,-1832,-1832,-1832
+    },
+
+    {
+       27,-1833, 1833, 1833,-1833,-1833,-1833,-1833,-1833,-1833,
+    -1833,-1833, 1834,-1833,-1833,-1833,-1833,-1833,-1833,-1833,
+    -1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,
+    -1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,
+    -1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,
+    -1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,-1833,
+    -1833,-1833,-1833,-1833,-1833
+    },
+
+    {
+       27,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,
+    -1834,-1834,-1834,-1834,-1834,-1834, 2197,-1834,-1834,-1834,
+
+    -1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,
+    -1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,
+    -1834,-1834, 2197,-1834,-1834,-1834,-1834,-1834,-1834,-1834,
+    -1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,-1834,
+    -1834,-1834,-1834,-1834,-1834
+    },
+
+    {
+       27,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,
+    -1835,-1835,-1835,-1835, 2198,-1835,-1835,-1835,-1835,-1835,
+    -1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,
+    -1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,
+     2198,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,
+
+    -1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,-1835,
+    -1835,-1835,-1835,-1835,-1835
+    },
+
+    {
+       27,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,
+    -1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,
+    -1836, 2199,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,
+    -1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,
+    -1836,-1836,-1836,-1836,-1836,-1836,-1836, 2199,-1836,-1836,
+    -1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,-1836,
+    -1836,-1836,-1836,-1836,-1836
+    },
+
+    {
+       27,-1837, 2200, 2200,-1837,-1837,-1837,-1837,-1837,-1837,
+
+    -1837,-1837, 2201,-1837,-1837,-1837,-1837,-1837,-1837,-1837,
+    -1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,
+    -1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,
+    -1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,
+    -1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,-1837,
+    -1837,-1837,-1837,-1837,-1837
+    },
+
+    {
+       27,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,
+    -1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,
+    -1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,
+    -1838,-1838,-1838, 2202,-1838,-1838,-1838,-1838,-1838,-1838,
+
+    -1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838,
+    -1838,-1838,-1838,-1838,-1838,-1838,-1838,-1838, 2202,-1838,
+    -1838,-1838,-1838,-1838,-1838
+    },
+
+    {
+       27,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,
+    -1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,
+    -1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839, 2203,-1839,
+    -1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,
+    -1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,-1839,
+    -1839,-1839,-1839, 2203,-1839,-1839,-1839,-1839,-1839,-1839,
+    -1839,-1839,-1839,-1839,-1839
+
+    },
+
+    {
+       27,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,
+    -1840,-1840,-1840,-1840, 2204,-1840,-1840,-1840,-1840,-1840,
+    -1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,
+    -1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,
+     2204,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,
+    -1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,-1840,
+    -1840,-1840,-1840,-1840,-1840
+    },
+
+    {
+       27,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,
+    -1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,
+    -1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,
+
+    -1841, 2205,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,
+    -1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,-1841,
+    -1841,-1841,-1841,-1841,-1841,-1841, 2205,-1841,-1841,-1841,
+    -1841,-1841,-1841,-1841,-1841
+    },
+
+    {
+       27,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,
+    -1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,
+    -1842,-1842,-1842,-1842,-1842,-1842,-1842, 2206,-1842,-1842,
+    -1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,
+    -1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,-1842,
+    -1842,-1842, 2206,-1842,-1842,-1842,-1842,-1842,-1842,-1842,
+
+    -1842,-1842,-1842,-1842,-1842
+    },
+
+    {
+       27,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,  695,
+    -1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,
+    -1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,
+    -1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,
+    -1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,
+    -1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,-1843,
+    -1843,-1843,-1843,-1843,-1843
+    },
+
+    {
+       27,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,
+    -1844,-1844,-1844, 2207,-1844,-1844,-1844,-1844,-1844,-1844,
+
+    -1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,
+    -1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,
+    -1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,
+    -1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,-1844,
+    -1844,-1844,-1844,-1844,-1844
+    },
+
+    {
+       27,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,
+    -1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,
+    -1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,
+    -1845,-1845, 2208,-1845,-1845,-1845,-1845,-1845,-1845,-1845,
+    -1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,-1845,
+
+    -1845,-1845,-1845,-1845,-1845,-1845,-1845, 2208,-1845,-1845,
+    -1845,-1845,-1845,-1845,-1845
+    },
+
+    {
+       27,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,
+    -1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,
+    -1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846, 2209,-1846,
+    -1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,
+    -1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,-1846,
+    -1846,-1846,-1846, 2209,-1846,-1846,-1846,-1846,-1846,-1846,
+    -1846,-1846,-1846,-1846,-1846
+    },
+
+    {
+       27,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,
+
+    -1847,-1847,-1847,-1847,-1847,-1847, 2210,-1847,-1847,-1847,
+    -1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,
+    -1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,
+    -1847,-1847, 2210,-1847,-1847,-1847,-1847,-1847,-1847,-1847,
+    -1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,-1847,
+    -1847,-1847,-1847,-1847,-1847
+    },
+
+    {
+       27,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,
+    -1848,-1848,-1848,-1848,-1848, 2211,-1848,-1848,-1848,-1848,
+    -1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,
+    -1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,
+
+    -1848, 2211,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,
+    -1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,-1848,
+    -1848,-1848,-1848,-1848,-1848
+    },
+
+    {
+       27,-1849, 2212, 2212,-1849,-1849,-1849,-1849,-1849,-1849,
+    -1849,-1849, 2213,-1849,-1849,-1849,-1849,-1849,-1849,-1849,
+    -1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,
+    -1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,
+    -1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,
+    -1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,-1849,
+    -1849,-1849,-1849,-1849,-1849
+
+    },
+
+    {
+       27,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,
+    -1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,
+    -1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,
+    -1850,-1850,-1850, 2214,-1850,-1850,-1850,-1850,-1850,-1850,
+    -1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850,
+    -1850,-1850,-1850,-1850,-1850,-1850,-1850,-1850, 2214,-1850,
+    -1850,-1850,-1850,-1850,-1850
+    },
+
+    {
+       27,-1851, 2215, 2215,-1851,-1851,-1851,-1851,-1851,-1851,
+    -1851,-1851, 2216,-1851,-1851,-1851,-1851,-1851,-1851,-1851,
+    -1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,
+
+    -1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,
+    -1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,
+    -1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,-1851,
+    -1851,-1851,-1851,-1851,-1851
+    },
+
+    {
+       27,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,
+    -1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,
+    -1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,
+    -1852,-1852,-1852, 2217,-1852,-1852,-1852,-1852,-1852,-1852,
+    -1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852,
+    -1852,-1852,-1852,-1852,-1852,-1852,-1852,-1852, 2217,-1852,
+
+    -1852,-1852,-1852,-1852,-1852
+    },
+
+    {
+       27,-1853, 2218, 2218,-1853,-1853,-1853,-1853,-1853,-1853,
+    -1853,-1853, 2219,-1853,-1853,-1853,-1853,-1853,-1853,-1853,
+    -1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,
+    -1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,
+    -1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,
+    -1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,-1853,
+    -1853,-1853,-1853,-1853,-1853
+    },
+
+    {
+       27,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,
+    -1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,
+
+    -1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,
+    -1854,-1854,-1854, 2220,-1854,-1854,-1854,-1854,-1854,-1854,
+    -1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854,
+    -1854,-1854,-1854,-1854,-1854,-1854,-1854,-1854, 2220,-1854,
+    -1854,-1854,-1854,-1854,-1854
+    },
+
+    {
+       27,-1855, 1855, 1855,-1855,-1855,-1855,-1855,-1855,-1855,
+    -1855,-1855, 1856,-1855,-1855,-1855,-1855,-1855,-1855,-1855,
+    -1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,
+    -1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,
+    -1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,
+
+    -1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,-1855,
+    -1855,-1855,-1855,-1855,-1855
+    },
+
+    {
+       27,-1856,-1856,-1856,-1856,-1856,-1856,-1856,-1856,-1856,
+    -1856,-1856,-1856,-1856,-1856,-1856, 2221,-1856,-1856,-1856,
+    -1856,-1856,-1856,-1856,-1856,-1856,-1856,-1856,-1856, 2222,
+    -1856,-1856,-1856,-1856,-1856,-1856,-1856,-1856,-1856,-1856,
+    -1856,-1856, 2221,-1856,-1856,-1856,-1856,-1856,-1856,-1856,
+    -1856,-1856,-1856,-1856, 2222,-1856,-1856,-1856,-1856,-1856,
+    -1856,-1856,-1856,-1856,-1856
+    },
+
+    {
+       27,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,
+
+    -1857,-1857,-1857,-1857, 2223,-1857,-1857,-1857,-1857,-1857,
+    -1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,
+    -1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,
+     2223,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,
+    -1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,-1857,
+    -1857,-1857,-1857,-1857,-1857
+    },
+
+    {
+       27,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,
+    -1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,
+    -1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,
+    -1858,-1858, 2224,-1858,-1858,-1858,-1858,-1858,-1858,-1858,
+
+    -1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,-1858,
+    -1858,-1858,-1858,-1858,-1858,-1858,-1858, 2224,-1858,-1858,
+    -1858,-1858,-1858,-1858,-1858
+    },
+
+    {
+       27,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,
+    -1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,
+    -1859,-1859, 2225,-1859,-1859,-1859,-1859,-1859,-1859,-1859,
+    -1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,
+    -1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859, 2225,-1859,
+    -1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,-1859,
+    -1859,-1859,-1859,-1859,-1859
+
+    },
+
+    {
+       27,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,
+    -1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,
+    -1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860, 2226,-1860,
+    -1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,
+    -1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,-1860,
+    -1860,-1860,-1860, 2226,-1860,-1860,-1860,-1860,-1860,-1860,
+    -1860,-1860,-1860,-1860,-1860
+    },
+
+    {
+       27,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,
+    -1861,-1861,-1861, 2227,-1861,-1861,-1861,-1861,-1861,-1861,
+    -1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,
+
+    -1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,
+    -1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,
+    -1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,-1861,
+    -1861,-1861,-1861,-1861,-1861
+    },
+
+    {
+       27,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,
+    -1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,
+    -1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,
+    -1862,-1862, 2228,-1862,-1862,-1862,-1862,-1862,-1862,-1862,
+    -1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,-1862,
+    -1862,-1862,-1862,-1862,-1862,-1862,-1862, 2228,-1862,-1862,
+
+    -1862,-1862,-1862,-1862,-1862
+    },
+
+    {
+       27,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,
+    -1863,-1863,-1863, 2229,-1863,-1863,-1863,-1863,-1863,-1863,
+    -1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,
+    -1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,
+    -1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,
+    -1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,-1863,
+    -1863,-1863,-1863,-1863,-1863
+    },
+
+    {
+       27,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,
+    -1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,
+
+    -1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,
+    -1864,-1864, 2230,-1864,-1864,-1864,-1864,-1864,-1864,-1864,
+    -1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,-1864,
+    -1864,-1864,-1864,-1864,-1864,-1864,-1864, 2230,-1864,-1864,
+    -1864,-1864,-1864,-1864,-1864
+    },
+
+    {
+       27,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,
+    -1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,
+    -1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865, 2231,-1865,
+    -1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,
+    -1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,-1865,
+
+    -1865,-1865,-1865, 2231,-1865,-1865,-1865,-1865,-1865,-1865,
+    -1865,-1865,-1865,-1865,-1865
+    },
+
+    {
+       27,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,
+    -1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,
+    -1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,
+    -1866, 2232,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,
+    -1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,-1866,
+    -1866,-1866,-1866,-1866,-1866,-1866, 2232,-1866,-1866,-1866,
+    -1866,-1866,-1866,-1866,-1866
+    },
+
+    {
+       27,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,
+
+    -1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,
+    -1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,
+    -1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,
+    -1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,
+    -1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,-1867,
+    -1867,-1867,-1867,-1867,-1867
+    },
+
+    {
+       27,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,
+    -1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,
+    -1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868, 2233,-1868,
+    -1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,
+
+    -1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,-1868,
+    -1868,-1868,-1868, 2233,-1868,-1868,-1868,-1868,-1868,-1868,
+    -1868,-1868,-1868,-1868,-1868
+    },
+
+    {
+       27,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,
+    -1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,
+    -1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,
+    -1869, 2234,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,
+    -1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,-1869,
+    -1869,-1869,-1869,-1869,-1869,-1869, 2234,-1869,-1869,-1869,
+    -1869,-1869,-1869,-1869,-1869
+
+    },
+
+    {
+       27,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870, 2235,
+    -1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,
+    -1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,
+    -1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870, 2236,
+    -1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,
+    -1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,-1870,
+    -1870,-1870,-1870,-1870,-1870
+    },
+
+    {
+       27,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871, 2237,
+    -1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,
+    -1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,
+
+    -1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871, 2238,
+    -1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,
+    -1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,-1871,
+    -1871,-1871,-1871,-1871,-1871
+    },
+
+    {
+       27,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,
+    -1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,
+    -1872,-1872,-1872,-1872,-1872, 2239,-1872,-1872,-1872,-1872,
+    -1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,
+    -1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,
+     2239,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,-1872,
+
+    -1872,-1872,-1872,-1872,-1872
+    },
+
+    {
+       27,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,
+    -1873,-1873,-1873,-1873, 2240,-1873,-1873,-1873,-1873,-1873,
+    -1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,
+    -1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,
+     2240,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,
+    -1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,-1873,
+    -1873,-1873,-1873,-1873,-1873
+    },
+
+    {
+       27,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,
+    -1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,
+
+    -1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,
+    -1874, 2241,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,
+    -1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,-1874,
+    -1874,-1874,-1874,-1874,-1874,-1874, 2241,-1874,-1874,-1874,
+    -1874,-1874,-1874,-1874,-1874
+    },
+
+    {
+       27,-1875, 1875, 1875,-1875,-1875,-1875,-1875,-1875,-1875,
+    -1875,-1875, 1876,-1875,-1875,-1875,-1875,-1875,-1875,-1875,
+    -1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,
+    -1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,
+    -1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,
+
+    -1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,-1875,
+    -1875,-1875,-1875,-1875,-1875
+    },
+
+    {
+       27,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,
+    -1876,-1876,-1876,-1876,-1876,-1876, 2242,-1876,-1876,-1876,
+    -1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,
+    -1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,
+    -1876,-1876, 2242,-1876,-1876,-1876,-1876,-1876,-1876,-1876,
+    -1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,-1876,
+    -1876,-1876,-1876,-1876,-1876
+    },
+
+    {
+       27,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,
+
+    -1877,-1877,-1877,-1877, 2243,-1877,-1877,-1877,-1877,-1877,
+    -1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,
+    -1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,
+     2243,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,
+    -1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,-1877,
+    -1877,-1877,-1877,-1877,-1877
+    },
+
+    {
+       27,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,
+    -1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,
+    -1878, 2244,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,
+    -1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,
+
+    -1878,-1878,-1878,-1878,-1878,-1878,-1878, 2244,-1878,-1878,
+    -1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,-1878,
+    -1878,-1878,-1878,-1878,-1878
+    },
+
+    {
+       27,-1879, 2245, 2245,-1879,-1879,-1879,-1879,-1879,-1879,
+    -1879,-1879, 2246,-1879,-1879,-1879,-1879,-1879,-1879,-1879,
+    -1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,
+    -1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,
+    -1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,
+    -1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,-1879,
+    -1879,-1879,-1879,-1879,-1879
+
+    },
+
+    {
+       27,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,
+    -1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,
+    -1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,
+    -1880,-1880,-1880, 2247,-1880,-1880,-1880,-1880,-1880,-1880,
+    -1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880,
+    -1880,-1880,-1880,-1880,-1880,-1880,-1880,-1880, 2247,-1880,
+    -1880,-1880,-1880,-1880,-1880
+    },
+
+    {
+       27,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,
+    -1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,
+    -1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881, 2248,-1881,
+
+    -1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,
+    -1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,-1881,
+    -1881,-1881,-1881, 2248,-1881,-1881,-1881,-1881,-1881,-1881,
+    -1881,-1881,-1881,-1881,-1881
+    },
+
+    {
+       27,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,
+    -1882,-1882,-1882,-1882, 2249,-1882,-1882,-1882,-1882,-1882,
+    -1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,
+    -1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,
+     2249,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,
+    -1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,-1882,
+
+    -1882,-1882,-1882,-1882,-1882
+    },
+
+    {
+       27,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,
+    -1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,
+    -1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,
+    -1883, 2250,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,
+    -1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,-1883,
+    -1883,-1883,-1883,-1883,-1883,-1883, 2250,-1883,-1883,-1883,
+    -1883,-1883,-1883,-1883,-1883
+    },
+
+    {
+       27,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,
+    -1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,
+
+    -1884,-1884,-1884,-1884,-1884,-1884,-1884, 2251,-1884,-1884,
+    -1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,
+    -1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,-1884,
+    -1884,-1884, 2251,-1884,-1884,-1884,-1884,-1884,-1884,-1884,
+    -1884,-1884,-1884,-1884,-1884
+    },
+
+    {
+       27,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,  718,
+    -1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,
+    -1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,
+    -1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,
+    -1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,
+
+    -1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,-1885,
+    -1885,-1885,-1885,-1885,-1885
+    },
+
+    {
+       27,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,
+    -1886,-1886,-1886, 2252,-1886,-1886,-1886,-1886,-1886,-1886,
+    -1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,
+    -1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,
+    -1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,
+    -1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,-1886,
+    -1886,-1886,-1886,-1886,-1886
+    },
+
+    {
+       27,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,
+
+    -1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,
+    -1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,
+    -1887,-1887, 2253,-1887,-1887,-1887,-1887,-1887,-1887,-1887,
+    -1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,-1887,
+    -1887,-1887,-1887,-1887,-1887,-1887,-1887, 2253,-1887,-1887,
+    -1887,-1887,-1887,-1887,-1887
+    },
+
+    {
+       27,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,
+    -1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,
+    -1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888, 2254,-1888,
+    -1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,
+
+    -1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,-1888,
+    -1888,-1888,-1888, 2254,-1888,-1888,-1888,-1888,-1888,-1888,
+    -1888,-1888,-1888,-1888,-1888
+    },
+
+    {
+       27,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,
+    -1889,-1889,-1889,-1889,-1889,-1889, 2255,-1889,-1889,-1889,
+    -1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,
+    -1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,
+    -1889,-1889, 2255,-1889,-1889,-1889,-1889,-1889,-1889,-1889,
+    -1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,-1889,
+    -1889,-1889,-1889,-1889,-1889
+
+    },
+
+    {
+       27,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,
+    -1890,-1890,-1890,-1890,-1890, 2256,-1890,-1890,-1890,-1890,
+    -1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,
+    -1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,
+    -1890, 2256,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,
+    -1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,-1890,
+    -1890,-1890,-1890,-1890,-1890
+    },
+
+    {
+       27,-1891, 2257, 2257,-1891,-1891,-1891,-1891,-1891,-1891,
+    -1891,-1891, 2258,-1891,-1891,-1891,-1891,-1891,-1891,-1891,
+    -1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,
+
+    -1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,
+    -1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,
+    -1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,-1891,
+    -1891,-1891,-1891,-1891,-1891
+    },
+
+    {
+       27,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,
+    -1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,
+    -1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,
+    -1892,-1892,-1892, 2259,-1892,-1892,-1892,-1892,-1892,-1892,
+    -1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892,
+    -1892,-1892,-1892,-1892,-1892,-1892,-1892,-1892, 2259,-1892,
+
+    -1892,-1892,-1892,-1892,-1892
+    },
+
+    {
+       27,-1893, 2260, 2260,-1893,-1893,-1893,-1893,-1893,-1893,
+    -1893,-1893, 2261,-1893,-1893,-1893,-1893,-1893,-1893,-1893,
+    -1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,
+    -1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,
+    -1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,
+    -1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,-1893,
+    -1893,-1893,-1893,-1893,-1893
+    },
+
+    {
+       27,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,
+    -1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,
+
+    -1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,
+    -1894,-1894,-1894, 2262,-1894,-1894,-1894,-1894,-1894,-1894,
+    -1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894,
+    -1894,-1894,-1894,-1894,-1894,-1894,-1894,-1894, 2262,-1894,
+    -1894,-1894,-1894,-1894,-1894
+    },
+
+    {
+       27,-1895, 2263, 2263,-1895,-1895,-1895,-1895,-1895,-1895,
+    -1895,-1895, 2264,-1895,-1895,-1895,-1895,-1895,-1895,-1895,
+    -1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,
+    -1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,
+    -1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,
+
+    -1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,-1895,
+    -1895,-1895,-1895,-1895,-1895
+    },
+
+    {
+       27,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,
+    -1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,
+    -1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,
+    -1896,-1896,-1896, 2265,-1896,-1896,-1896,-1896,-1896,-1896,
+    -1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896,
+    -1896,-1896,-1896,-1896,-1896,-1896,-1896,-1896, 2265,-1896,
+    -1896,-1896,-1896,-1896,-1896
+    },
+
+    {
+       27,-1897, 1897, 1897,-1897,-1897,-1897,-1897,-1897,-1897,
+
+    -1897,-1897, 1898,-1897,-1897,-1897,-1897,-1897,-1897,-1897,
+    -1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,
+    -1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,
+    -1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,
+    -1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,-1897,
+    -1897,-1897,-1897,-1897,-1897
+    },
+
+    {
+       27,-1898,-1898,-1898,-1898,-1898,-1898,-1898,-1898,-1898,
+    -1898,-1898,-1898,-1898,-1898,-1898, 2266,-1898,-1898,-1898,
+    -1898,-1898,-1898,-1898,-1898,-1898,-1898,-1898,-1898, 2267,
+    -1898,-1898,-1898,-1898,-1898,-1898,-1898,-1898,-1898,-1898,
+
+    -1898,-1898, 2266,-1898,-1898,-1898,-1898,-1898,-1898,-1898,
+    -1898,-1898,-1898,-1898, 2267,-1898,-1898,-1898,-1898,-1898,
+    -1898,-1898,-1898,-1898,-1898
+    },
+
+    {
+       27,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,
+    -1899,-1899,-1899,-1899, 2268,-1899,-1899,-1899,-1899,-1899,
+    -1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,
+    -1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,
+     2268,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,
+    -1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,-1899,
+    -1899,-1899,-1899,-1899,-1899
+
+    },
+
+    {
+       27,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,
+    -1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,
+    -1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,
+    -1900,-1900, 2269,-1900,-1900,-1900,-1900,-1900,-1900,-1900,
+    -1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,-1900,
+    -1900,-1900,-1900,-1900,-1900,-1900,-1900, 2269,-1900,-1900,
+    -1900,-1900,-1900,-1900,-1900
+    },
+
+    {
+       27,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,
+    -1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,
+    -1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,
+
+    -1901,-1901,-1901,-1901,-1901,-1901,-1901, 2270,-1901,-1901,
+    -1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,
+    -1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,-1901,
+    -1901,-1901, 2270,-1901,-1901
+    },
+
+    {
+       27,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,
+    -1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,
+    -1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902, 2271,-1902,
+    -1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,
+    -1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,-1902,
+    -1902,-1902,-1902, 2271,-1902,-1902,-1902,-1902,-1902,-1902,
+
+    -1902,-1902,-1902,-1902,-1902
+    },
+
+    {
+       27,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,
+    -1903,-1903,-1903, 2272,-1903,-1903,-1903,-1903,-1903,-1903,
+    -1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,
+    -1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,
+    -1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,
+    -1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,-1903,
+    -1903,-1903,-1903,-1903,-1903
+    },
+
+    {
+       27,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,
+    -1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,
+
+    -1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,
+    -1904,-1904, 2273,-1904,-1904,-1904,-1904,-1904,-1904,-1904,
+    -1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,-1904,
+    -1904,-1904,-1904,-1904,-1904,-1904,-1904, 2273,-1904,-1904,
+    -1904,-1904,-1904,-1904,-1904
+    },
+
+    {
+       27,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,
+    -1905,-1905,-1905, 2274,-1905,-1905,-1905,-1905,-1905,-1905,
+    -1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,
+    -1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,
+    -1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,
+
+    -1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,-1905,
+    -1905,-1905,-1905,-1905,-1905
+    },
+
+    {
+       27,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,
+    -1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,
+    -1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,
+    -1906,-1906, 2275,-1906,-1906,-1906,-1906,-1906,-1906,-1906,
+    -1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,-1906,
+    -1906,-1906,-1906,-1906,-1906,-1906,-1906, 2275,-1906,-1906,
+    -1906,-1906,-1906,-1906,-1906
+    },
+
+    {
+       27,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,
+
+    -1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,
+    -1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907, 2276,-1907,
+    -1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,
+    -1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,-1907,
+    -1907,-1907,-1907, 2276,-1907,-1907,-1907,-1907,-1907,-1907,
+    -1907,-1907,-1907,-1907,-1907
+    },
+
+    {
+       27,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,
+    -1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,
+    -1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,
+    -1908, 2277,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,
+
+    -1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,-1908,
+    -1908,-1908,-1908,-1908,-1908,-1908, 2277,-1908,-1908,-1908,
+    -1908,-1908,-1908,-1908,-1908
+    },
+
+    {
+       27,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,
+    -1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,
+    -1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,
+    -1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,
+    -1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,
+    -1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,-1909,
+    -1909,-1909,-1909,-1909,-1909
+
+    },
+
+    {
+       27,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,
+    -1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,
+    -1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910, 2278,-1910,
+    -1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,
+    -1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,-1910,
+    -1910,-1910,-1910, 2278,-1910,-1910,-1910,-1910,-1910,-1910,
+    -1910,-1910,-1910,-1910,-1910
+    },
+
+    {
+       27,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,
+    -1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,
+    -1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,
+
+    -1911, 2279,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,
+    -1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,-1911,
+    -1911,-1911,-1911,-1911,-1911,-1911, 2279,-1911,-1911,-1911,
+    -1911,-1911,-1911,-1911,-1911
+    },
+
+    {
+       27,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912, 2280,
+    -1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,
+    -1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,
+    -1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912, 2281,
+    -1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,
+    -1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,-1912,
+
+    -1912,-1912,-1912,-1912,-1912
+    },
+
+    {
+       27,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913, 2282,
+    -1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,
+    -1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,
+    -1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913, 2283,
+    -1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,
+    -1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,-1913,
+    -1913,-1913,-1913,-1913,-1913
+    },
+
+    {
+       27,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,
+    -1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,
+
+    -1914,-1914,-1914,-1914,-1914, 2284,-1914,-1914,-1914,-1914,
+    -1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,
+    -1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,
+     2284,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,-1914,
+    -1914,-1914,-1914,-1914,-1914
+    },
+
+    {
+       27,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,
+    -1915,-1915,-1915,-1915, 2285,-1915,-1915,-1915,-1915,-1915,
+    -1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,
+    -1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,
+     2285,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,
+
+    -1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,-1915,
+    -1915,-1915,-1915,-1915,-1915
+    },
+
+    {
+       27,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,
+    -1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,
+    -1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,
+    -1916, 2286,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,
+    -1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,-1916,
+    -1916,-1916,-1916,-1916,-1916,-1916, 2286,-1916,-1916,-1916,
+    -1916,-1916,-1916,-1916,-1916
+    },
+
+    {
+       27,-1917, 1917, 1917,-1917,-1917,-1917,-1917,-1917,-1917,
+
+    -1917,-1917, 1918,-1917,-1917,-1917,-1917,-1917,-1917,-1917,
+    -1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,
+    -1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,
+    -1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,
+    -1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,-1917,
+    -1917,-1917,-1917,-1917,-1917
+    },
+
+    {
+       27,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,
+    -1918,-1918,-1918,-1918,-1918,-1918, 2287,-1918,-1918,-1918,
+    -1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,
+    -1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,
+
+    -1918,-1918, 2287,-1918,-1918,-1918,-1918,-1918,-1918,-1918,
+    -1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,-1918,
+    -1918,-1918,-1918,-1918,-1918
+    },
+
+    {
+       27,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,
+    -1919,-1919,-1919,-1919, 2288,-1919,-1919,-1919,-1919,-1919,
+    -1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,
+    -1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,
+     2288,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,
+    -1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,-1919,
+    -1919,-1919,-1919,-1919,-1919
+
+    },
+
+    {
+       27,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,
+    -1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,
+    -1920, 2289,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,
+    -1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,
+    -1920,-1920,-1920,-1920,-1920,-1920,-1920, 2289,-1920,-1920,
+    -1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,-1920,
+    -1920,-1920,-1920,-1920,-1920
+    },
+
+    {
+       27,-1921, 2290, 2290,-1921,-1921,-1921,-1921,-1921,-1921,
+    -1921,-1921, 2291,-1921,-1921,-1921,-1921,-1921,-1921,-1921,
+    -1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,
+
+    -1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,
+    -1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,
+    -1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,-1921,
+    -1921,-1921,-1921,-1921,-1921
+    },
+
+    {
+       27,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,
+    -1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,
+    -1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,
+    -1922,-1922,-1922, 2292,-1922,-1922,-1922,-1922,-1922,-1922,
+    -1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922,
+    -1922,-1922,-1922,-1922,-1922,-1922,-1922,-1922, 2292,-1922,
+
+    -1922,-1922,-1922,-1922,-1922
+    },
+
+    {
+       27,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,
+    -1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,
+    -1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923, 2293,-1923,
+    -1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,
+    -1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,-1923,
+    -1923,-1923,-1923, 2293,-1923,-1923,-1923,-1923,-1923,-1923,
+    -1923,-1923,-1923,-1923,-1923
+    },
+
+    {
+       27,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,
+    -1924,-1924,-1924,-1924, 2294,-1924,-1924,-1924,-1924,-1924,
+
+    -1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,
+    -1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,
+     2294,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,
+    -1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,-1924,
+    -1924,-1924,-1924,-1924,-1924
+    },
+
+    {
+       27,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,
+    -1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,
+    -1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,
+    -1925, 2295,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,
+    -1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,-1925,
+
+    -1925,-1925,-1925,-1925,-1925,-1925, 2295,-1925,-1925,-1925,
+    -1925,-1925,-1925,-1925,-1925
+    },
+
+    {
+       27,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,
+    -1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,
+    -1926,-1926,-1926,-1926,-1926,-1926,-1926, 2296,-1926,-1926,
+    -1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,
+    -1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,-1926,
+    -1926,-1926, 2296,-1926,-1926,-1926,-1926,-1926,-1926,-1926,
+    -1926,-1926,-1926,-1926,-1926
+    },
+
+    {
+       27,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,  741,
+
+    -1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,
+    -1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,
+    -1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,
+    -1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,
+    -1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,-1927,
+    -1927,-1927,-1927,-1927,-1927
+    },
+
+    {
+       27,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,
+    -1928,-1928,-1928, 2297,-1928,-1928,-1928,-1928,-1928,-1928,
+    -1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,
+    -1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,
+
+    -1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,
+    -1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,-1928,
+    -1928,-1928,-1928,-1928,-1928
+    },
+
+    {
+       27,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,
+    -1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,
+    -1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,
+    -1929,-1929, 2298,-1929,-1929,-1929,-1929,-1929,-1929,-1929,
+    -1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,-1929,
+    -1929,-1929,-1929,-1929,-1929,-1929,-1929, 2298,-1929,-1929,
+    -1929,-1929,-1929,-1929,-1929
+
+    },
+
+    {
+       27,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,
+    -1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,
+    -1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930, 2299,-1930,
+    -1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,
+    -1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,-1930,
+    -1930,-1930,-1930, 2299,-1930,-1930,-1930,-1930,-1930,-1930,
+    -1930,-1930,-1930,-1930,-1930
+    },
+
+    {
+       27,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,
+    -1931,-1931,-1931,-1931,-1931,-1931, 2300,-1931,-1931,-1931,
+    -1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,
+
+    -1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,
+    -1931,-1931, 2300,-1931,-1931,-1931,-1931,-1931,-1931,-1931,
+    -1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,-1931,
+    -1931,-1931,-1931,-1931,-1931
+    },
+
+    {
+       27,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,
+    -1932,-1932,-1932,-1932,-1932, 2301,-1932,-1932,-1932,-1932,
+    -1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,
+    -1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,
+    -1932, 2301,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,
+    -1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,-1932,
+
+    -1932,-1932,-1932,-1932,-1932
+    },
+
+    {
+       27,-1933, 2302, 2302,-1933,-1933,-1933,-1933,-1933,-1933,
+    -1933,-1933, 2303,-1933,-1933,-1933,-1933,-1933,-1933,-1933,
+    -1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,
+    -1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,
+    -1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,
+    -1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,-1933,
+    -1933,-1933,-1933,-1933,-1933
+    },
+
+    {
+       27,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,
+    -1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,
+
+    -1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,
+    -1934,-1934,-1934, 2304,-1934,-1934,-1934,-1934,-1934,-1934,
+    -1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934,
+    -1934,-1934,-1934,-1934,-1934,-1934,-1934,-1934, 2304,-1934,
+    -1934,-1934,-1934,-1934,-1934
+    },
+
+    {
+       27,-1935, 2305, 2305,-1935,-1935,-1935,-1935,-1935,-1935,
+    -1935,-1935, 2306,-1935,-1935,-1935,-1935,-1935,-1935,-1935,
+    -1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,
+    -1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,
+    -1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,
+
+    -1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,-1935,
+    -1935,-1935,-1935,-1935,-1935
+    },
+
+    {
+       27,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,
+    -1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,
+    -1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,
+    -1936,-1936,-1936, 2307,-1936,-1936,-1936,-1936,-1936,-1936,
+    -1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936,
+    -1936,-1936,-1936,-1936,-1936,-1936,-1936,-1936, 2307,-1936,
+    -1936,-1936,-1936,-1936,-1936
+    },
+
+    {
+       27,-1937, 2308, 2308,-1937,-1937,-1937,-1937,-1937,-1937,
+
+    -1937,-1937, 2309,-1937,-1937,-1937,-1937,-1937,-1937,-1937,
+    -1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,
+    -1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,
+    -1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,
+    -1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,-1937,
+    -1937,-1937,-1937,-1937,-1937
+    },
+
+    {
+       27,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,
+    -1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,
+    -1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,
+    -1938,-1938,-1938, 2310,-1938,-1938,-1938,-1938,-1938,-1938,
+
+    -1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938,
+    -1938,-1938,-1938,-1938,-1938,-1938,-1938,-1938, 2310,-1938,
+    -1938,-1938,-1938,-1938,-1938
+    },
+
+    {
+       27,-1939, 1939, 1939,-1939,-1939,-1939,-1939,-1939,-1939,
+    -1939,-1939, 1940,-1939,-1939,-1939,-1939,-1939,-1939,-1939,
+    -1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,
+    -1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,
+    -1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,
+    -1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,-1939,
+    -1939,-1939,-1939,-1939,-1939
+
+    },
+
+    {
+       27,-1940,-1940,-1940,-1940,-1940,-1940,-1940,-1940,-1940,
+    -1940,-1940,-1940,-1940,-1940,-1940, 2311,-1940,-1940,-1940,
+    -1940,-1940,-1940,-1940,-1940,-1940,-1940,-1940,-1940, 2312,
+    -1940,-1940,-1940,-1940,-1940,-1940,-1940,-1940,-1940,-1940,
+    -1940,-1940, 2311,-1940,-1940,-1940,-1940,-1940,-1940,-1940,
+    -1940,-1940,-1940,-1940, 2312,-1940,-1940,-1940,-1940,-1940,
+    -1940,-1940,-1940,-1940,-1940
+    },
+
+    {
+       27,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,
+    -1941,-1941,-1941,-1941, 2313,-1941,-1941,-1941,-1941,-1941,
+    -1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,
+
+    -1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,
+     2313,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,
+    -1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,-1941,
+    -1941,-1941,-1941,-1941,-1941
+    },
+
+    {
+       27,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,
+    -1942,  178,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,
+    -1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,
+    -1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,
+    -1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,
+    -1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,-1942,
+
+    -1942,-1942,-1942,-1942,-1942
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366, 2314,  366,
+      366,  366,  366, 2315,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,
+    -1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,
+
+    -1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,
+    -1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,
+    -1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,
+    -1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,-1944,
+    -1944,-1944,-1944,-1944,-1944
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366, 2316,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366, 2316,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,
+    -1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,
+    -1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946, 2317,-1946,
+    -1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,
+    -1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,-1946,
+    -1946,-1946,-1946, 2317,-1946,-1946,-1946,-1946,-1946,-1946,
+    -1946,-1946,-1946,-1946,-1946
+    },
+
+    {
+       27,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,
+
+    -1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,
+    -1947,-1947,-1947,-1947,-1947,-1947,-1947, 2318,-1947,-1947,
+    -1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,
+    -1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,-1947,
+    -1947,-1947, 2318,-1947,-1947,-1947,-1947,-1947,-1947,-1947,
+    -1947,-1947,-1947,-1947,-1947
+    },
+
+    {
+       27,-1948, 2319, 2319,-1948,-1948,-1948,-1948,-1948,-1948,
+    -1948,-1948, 2320,-1948,-1948,-1948,-1948,-1948,-1948,-1948,
+    -1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,
+    -1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,
+
+    -1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,
+    -1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,-1948,
+    -1948,-1948,-1948,-1948,-1948
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2321,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2321,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-1950, 2322, 2322,-1950,-1950,-1950,-1950,-1950,-1950,
+    -1950,-1950, 2323,-1950,-1950,-1950,-1950,-1950,-1950,-1950,
+    -1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,
+    -1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,
+    -1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,
+    -1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,-1950,
+    -1950,-1950,-1950,-1950,-1950
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 2324,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2324,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,
+    -1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,
+    -1952,-1952,-1952,-1952,-1952,-1952,-1952, 2325,-1952,-1952,
+    -1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,
+    -1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,-1952,
+    -1952,-1952, 2325,-1952,-1952,-1952,-1952,-1952,-1952,-1952,
+
+    -1952,-1952,-1952,-1952,-1952
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  757,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1954, 2326, 2326,-1954,-1954,-1954,-1954,-1954,-1954,
+    -1954,-1954, 2327,-1954,-1954,-1954,-1954,-1954,-1954,-1954,
+
+    -1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,
+    -1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,
+    -1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,
+    -1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,-1954,
+    -1954,-1954,-1954,-1954,-1954
+    },
+
+    {
+       27,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,
+    -1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,
+    -1955,-1955,-1955,-1955,-1955,-1955,-1955, 2328,-1955,-1955,
+    -1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,
+    -1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,-1955,
+
+    -1955,-1955, 2328,-1955,-1955,-1955,-1955,-1955,-1955,-1955,
+    -1955,-1955,-1955,-1955,-1955
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  761,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,
+
+    -1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,
+    -1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,
+    -1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,
+    -1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,
+    -1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,-1957,
+    -1957,-1957,-1957,-1957,-1957
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 2329,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 2329,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,
+    -1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,
+    -1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,
+    -1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,
+    -1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,
+    -1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,-1959,
+    -1959,-1959,-1959,-1959,-1959
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 2330,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 2330,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2331,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 2332,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 2332,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2333,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 2334,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 2334,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184, 2335,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 2335,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,
+    -1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,
+    -1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,
+    -1966, 2336,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,
+    -1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,-1966,
+    -1966,-1966,-1966,-1966,-1966,-1966, 2336,-1966,-1966,-1966,
+    -1966,-1966,-1966,-1966,-1966
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2337,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2337,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 2338,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 2339,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2339,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,
+    -1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,
+    -1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970, 2340,-1970,
+    -1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,
+    -1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,-1970,
+    -1970,-1970,-1970, 2340,-1970,-1970,-1970,-1970,-1970,-1970,
+    -1970,-1970,-1970,-1970,-1970
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184, 2341,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2341,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 2342,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 2343,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1973, 1973, 1973,-1973,-1973,-1973,-1973,-1973,-1973,
+    -1973,-1973, 1974,-1973,-1973,-1973,-1973,-1973,-1973,-1973,
+    -1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,
+    -1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,
+    -1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,
+    -1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,-1973,
+    -1973,-1973,-1973,-1973,-1973
+    },
+
+    {
+       27,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,
+    -1974,-1974,-1974,-1974,-1974,-1974, 2344,-1974,-1974,-1974,
+
+    -1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,
+    -1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,
+    -1974,-1974, 2344,-1974,-1974,-1974,-1974,-1974,-1974,-1974,
+    -1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,-1974,
+    -1974,-1974,-1974,-1974,-1974
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 2345,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2345,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,
+    -1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,
+    -1976,-1976,-1976,-1976,-1976,-1976,-1976, 2346,-1976,-1976,
+    -1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,
+    -1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,-1976,
+    -1976,-1976, 2346,-1976,-1976,-1976,-1976,-1976,-1976,-1976,
+    -1976,-1976,-1976,-1976,-1976
+    },
+
+    {
+       27,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,
+
+    -1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,
+    -1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,
+    -1977, 2347,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,
+    -1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,-1977,
+    -1977,-1977,-1977,-1977,-1977,-1977, 2347,-1977,-1977,-1977,
+    -1977,-1977,-1977,-1977,-1977
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  775,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,
+    -1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,
+    -1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,
+    -1979,-1979,-1979, 2348,-1979,-1979,-1979,-1979,-1979,-1979,
+    -1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979,
+    -1979,-1979,-1979,-1979,-1979,-1979,-1979,-1979, 2348,-1979,
+    -1979,-1979,-1979,-1979,-1979
+
+    },
+
+    {
+       27,-1980, 2349, 2349,-1980,-1980,-1980,-1980,-1980,-1980,
+    -1980,-1980, 2350,-1980,-1980,-1980,-1980,-1980,-1980,-1980,
+    -1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,
+    -1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,
+    -1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,
+    -1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,-1980,
+    -1980,-1980,-1980,-1980,-1980
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 2351,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2351,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 2352,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 2352,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2353,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2353,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 2354,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 2354,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1985, 1985, 1985,-1985,-1985,-1985,-1985,-1985,-1985,
+    -1985,-1985, 1986,-1985,-1985,-1985,-1985,-1985,-1985,-1985,
+    -1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,
+    -1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,
+    -1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,
+
+    -1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,-1985,
+    -1985,-1985,-1985,-1985,-1985
+    },
+
+    {
+       27,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,
+    -1986,-1986,-1986,-1986,-1986,-1986, 2355,-1986,-1986,-1986,
+    -1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,
+    -1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,
+    -1986,-1986, 2355,-1986,-1986,-1986,-1986,-1986,-1986,-1986,
+    -1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,-1986,
+    -1986,-1986,-1986,-1986,-1986
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185, 2356,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2356,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1988, 1988, 1988,-1988,-1988,-1988,-1988,-1988,-1988,
+    -1988,-1988, 1989,-1988,-1988,-1988,-1988,-1988,-1988,-1988,
+    -1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,
+    -1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,
+
+    -1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,
+    -1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,-1988,
+    -1988,-1988,-1988,-1988,-1988
+    },
+
+    {
+       27,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,
+    -1989,-1989,-1989,-1989,-1989,-1989, 2357,-1989,-1989,-1989,
+    -1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,
+    -1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,
+    -1989,-1989, 2357,-1989,-1989,-1989,-1989,-1989,-1989,-1989,
+    -1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,-1989,
+    -1989,-1989,-1989,-1989,-1989
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 2358,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2358,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1991, 1991, 1991,-1991,-1991,-1991,-1991,-1991,-1991,
+    -1991,-1991, 1992,-1991,-1991,-1991,-1991,-1991,-1991,-1991,
+    -1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,
+
+    -1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,
+    -1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,
+    -1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,-1991,
+    -1991,-1991,-1991,-1991,-1991
+    },
+
+    {
+       27,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,
+    -1992,-1992,-1992,-1992,-1992,-1992, 2359,-1992,-1992,-1992,
+    -1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,
+    -1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,
+    -1992,-1992, 2359,-1992,-1992,-1992,-1992,-1992,-1992,-1992,
+    -1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,-1992,
+
+    -1992,-1992,-1992,-1992,-1992
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 2360,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2360,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+     2361,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2361,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,
+    -1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,
+    -1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995, 2362,-1995,
+    -1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,
+    -1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,-1995,
+
+    -1995,-1995,-1995, 2362,-1995,-1995,-1995,-1995,-1995,-1995,
+    -1995,-1995,-1995,-1995,-1995
+    },
+
+    {
+       27,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,
+    -1996,-1996,-1996,-1996, 2363,-1996,-1996,-1996,-1996,-1996,
+    -1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,
+    -1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,
+     2363,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,
+    -1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,-1996,
+    -1996,-1996,-1996,-1996,-1996
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 2364,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2364,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,
+    -1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,
+    -1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,
+    -1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,
+
+    -1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,
+    -1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,-1998,
+    -1998,-1998,-1998,-1998,-1998
+    },
+
+    {
+       27,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,
+    -1999,-1999,-1999, 2365,-1999,-1999,-1999,-1999,-1999,-1999,
+    -1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,
+    -1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,
+    -1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,
+    -1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,-1999,
+    -1999,-1999,-1999,-1999,-1999
+
+    },
+
+    {
+       27,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+    -2000,-2000,-2000, 2366,-2000,-2000,-2000,-2000,-2000,-2000,
+    -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+    -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+    -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+    -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+    -2000,-2000,-2000,-2000,-2000
+    },
+
+    {
+       27,-2001,-2001,-2001,-2001,-2001,-2001,-2001, 2367,-2001,
+    -2001,-2001,-2001, 2368,-2001,-2001,-2001,-2001,-2001,-2001,
+    -2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,
+
+    -2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,
+    -2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,
+    -2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,-2001,
+    -2001,-2001,-2001,-2001,-2001
+    },
+
+    {
+       27,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,
+    -2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,
+    -2002,-2002,-2002,-2002,-2002,-2002,-2002, 2369,-2002,-2002,
+    -2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,
+    -2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,-2002,
+    -2002,-2002, 2369,-2002,-2002,-2002,-2002,-2002,-2002,-2002,
+
+    -2002,-2002,-2002,-2002,-2002
+    },
+
+    {
+       27,-2003, 2370, 2370,-2003,-2003,-2003,-2003,-2003,-2003,
+    -2003,-2003, 2371,-2003,-2003,-2003,-2003,-2003,-2003,-2003,
+    -2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,
+    -2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,
+    -2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,
+    -2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,-2003,
+    -2003,-2003,-2003,-2003,-2003
+    },
+
+    {
+       27,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,
+    -2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,
+
+    -2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,
+    -2004,-2004,-2004, 2372,-2004,-2004,-2004,-2004,-2004,-2004,
+    -2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004,
+    -2004,-2004,-2004,-2004,-2004,-2004,-2004,-2004, 2372,-2004,
+    -2004,-2004,-2004,-2004,-2004
+    },
+
+    {
+       27,-2005, 2373, 2373,-2005,-2005,-2005,-2005,-2005,-2005,
+    -2005,-2005, 2374,-2005,-2005,-2005,-2005,-2005,-2005,-2005,
+    -2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,
+    -2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,
+    -2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,
+
+    -2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,-2005,
+    -2005,-2005,-2005,-2005,-2005
+    },
+
+    {
+       27,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,
+    -2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,
+    -2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,
+    -2006,-2006,-2006, 2375,-2006,-2006,-2006,-2006,-2006,-2006,
+    -2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006,
+    -2006,-2006,-2006,-2006,-2006,-2006,-2006,-2006, 2375,-2006,
+    -2006,-2006,-2006,-2006,-2006
+    },
+
+    {
+       27,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,
+
+    -2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,
+    -2007,-2007,-2007,-2007,-2007,-2007,-2007, 2376,-2007,-2007,
+    -2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,
+    -2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,-2007,
+    -2007,-2007, 2376,-2007,-2007,-2007,-2007,-2007,-2007,-2007,
+    -2007,-2007,-2007,-2007,-2007
+    },
+
+    {
+       27,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,  800,
+    -2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,
+    -2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,
+    -2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,
+
+    -2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,
+    -2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,-2008,
+    -2008,-2008,-2008,-2008,-2008
+    },
+
+    {
+       27,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,
+    -2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,
+    -2009,-2009,-2009,-2009,-2009,-2009,-2009, 2377,-2009,-2009,
+    -2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,
+    -2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,-2009,
+    -2009,-2009, 2377,-2009,-2009,-2009,-2009,-2009,-2009,-2009,
+    -2009,-2009,-2009,-2009,-2009
+
+    },
+
+    {
+       27,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,  803,
+    -2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,
+    -2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,
+    -2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,
+    -2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,
+    -2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,-2010,
+    -2010,-2010,-2010,-2010,-2010
+    },
+
+    {
+       27,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,
+    -2011,-2011,-2011, 2378,-2011,-2011,-2011,-2011,-2011,-2011,
+    -2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,
+
+    -2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,
+    -2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,
+    -2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,-2011,
+    -2011,-2011,-2011,-2011,-2011
+    },
+
+    {
+       27,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,
+    -2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,
+    -2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,
+    -2012,-2012, 2379,-2012,-2012,-2012,-2012,-2012,-2012,-2012,
+    -2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,-2012,
+    -2012,-2012,-2012,-2012,-2012,-2012,-2012, 2379,-2012,-2012,
+
+    -2012,-2012,-2012,-2012,-2012
+    },
+
+    {
+       27,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,
+    -2013,-2013,-2013, 2380,-2013,-2013,-2013,-2013,-2013,-2013,
+    -2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,
+    -2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,
+    -2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,
+    -2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,-2013,
+    -2013,-2013,-2013,-2013,-2013
+    },
+
+    {
+       27,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,
+    -2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,
+
+    -2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,
+    -2014,-2014, 2381,-2014,-2014,-2014,-2014,-2014,-2014,-2014,
+    -2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,-2014,
+    -2014,-2014,-2014,-2014,-2014,-2014,-2014, 2381,-2014,-2014,
+    -2014,-2014,-2014,-2014,-2014
+    },
+
+    {
+       27,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,
+    -2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015, 2382,-2015,
+    -2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,
+    -2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,
+    -2015,-2015,-2015,-2015, 2382,-2015,-2015,-2015,-2015,-2015,
+
+    -2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,-2015,
+    -2015,-2015,-2015,-2015,-2015
+    },
+
+    {
+       27,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,
+    -2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,
+    -2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,
+    -2016, 2383,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,
+    -2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,-2016,
+    -2016,-2016,-2016,-2016,-2016,-2016, 2383,-2016,-2016,-2016,
+    -2016,-2016,-2016,-2016,-2016
+    },
+
+    {
+       27,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,  807,
+
+    -2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,
+    -2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,
+    -2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,
+    -2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,
+    -2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,-2017,
+    -2017,-2017,-2017,-2017,-2017
+    },
+
+    {
+       27,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,
+    -2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,
+    -2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018, 2384,-2018,
+    -2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,
+
+    -2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,-2018,
+    -2018,-2018,-2018, 2384,-2018,-2018,-2018,-2018,-2018,-2018,
+    -2018,-2018,-2018,-2018,-2018
+    },
+
+    {
+       27,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,
+    -2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,
+    -2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,
+    -2019, 2385,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,
+    -2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,-2019,
+    -2019,-2019,-2019,-2019,-2019,-2019, 2385,-2019,-2019,-2019,
+    -2019,-2019,-2019,-2019,-2019
+
+    },
+
+    {
+       27,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020, 2386,
+    -2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,
+    -2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,
+    -2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020, 2387,
+    -2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,
+    -2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,-2020,
+    -2020,-2020,-2020,-2020,-2020
+    },
+
+    {
+       27,-2021, 2021, 2021,-2021,-2021,-2021,-2021,-2021,-2021,
+    -2021,-2021, 2022,-2021,-2021,-2021,-2021,-2021,-2021,-2021,
+    -2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,
+
+    -2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,
+    -2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,
+    -2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,-2021,
+    -2021,-2021,-2021,-2021,-2021
+    },
+
+    {
+       27,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,
+    -2022,-2022,-2022,-2022,-2022,-2022, 2388,-2022,-2022,-2022,
+    -2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,
+    -2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,
+    -2022,-2022, 2388,-2022,-2022,-2022,-2022,-2022,-2022,-2022,
+    -2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,-2022,
+
+    -2022,-2022,-2022,-2022,-2022
+    },
+
+    {
+       27,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,
+    -2023,-2023,-2023,-2023, 2389,-2023,-2023,-2023,-2023,-2023,
+    -2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,
+    -2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,
+     2389,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,
+    -2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,-2023,
+    -2023,-2023,-2023,-2023,-2023
+    },
+
+    {
+       27,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,
+    -2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,
+
+    -2024,-2024,-2024,-2024,-2024,-2024,-2024, 2390,-2024,-2024,
+    -2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,
+    -2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,-2024,
+    -2024,-2024, 2390,-2024,-2024,-2024,-2024,-2024,-2024,-2024,
+    -2024,-2024,-2024,-2024,-2024
+    },
+
+    {
+       27,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,
+    -2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,
+    -2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,
+    -2025, 2391,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,
+    -2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,-2025,
+
+    -2025,-2025,-2025,-2025,-2025,-2025, 2391,-2025,-2025,-2025,
+    -2025,-2025,-2025,-2025,-2025
+    },
+
+    {
+       27,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,  812,
+    -2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,
+    -2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,
+    -2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,
+    -2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,
+    -2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,-2026,
+    -2026,-2026,-2026,-2026,-2026
+    },
+
+    {
+       27,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,
+
+    -2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,
+    -2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,
+    -2027,-2027,-2027, 2392,-2027,-2027,-2027,-2027,-2027,-2027,
+    -2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027,
+    -2027,-2027,-2027,-2027,-2027,-2027,-2027,-2027, 2392,-2027,
+    -2027,-2027,-2027,-2027,-2027
+    },
+
+    {
+       27,-2028, 2393, 2393,-2028,-2028,-2028,-2028,-2028,-2028,
+    -2028,-2028, 2394,-2028,-2028,-2028,-2028,-2028,-2028,-2028,
+    -2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,
+    -2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,
+
+    -2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,
+    -2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,-2028,
+    -2028,-2028,-2028,-2028,-2028
+    },
+
+    {
+       27,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,
+    -2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,
+    -2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,
+    -2029,-2029,-2029, 2395,-2029,-2029,-2029,-2029,-2029,-2029,
+    -2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029,
+    -2029,-2029,-2029,-2029,-2029,-2029,-2029,-2029, 2395,-2029,
+    -2029,-2029,-2029,-2029,-2029
+
+    },
+
+    {
+       27,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,
+    -2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,
+    -2030,-2030,-2030,-2030,-2030,-2030,-2030, 2396,-2030,-2030,
+    -2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,
+    -2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,-2030,
+    -2030,-2030, 2396,-2030,-2030,-2030,-2030,-2030,-2030,-2030,
+    -2030,-2030,-2030,-2030,-2030
+    },
+
+    {
+       27,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,
+    -2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,
+    -2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,
+
+    -2031,-2031,-2031, 2397,-2031,-2031,-2031,-2031,-2031,-2031,
+    -2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031,
+    -2031,-2031,-2031,-2031,-2031,-2031,-2031,-2031, 2397,-2031,
+    -2031,-2031,-2031,-2031,-2031
+    },
+
+    {
+       27,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,
+    -2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,
+    -2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,
+    -2032,-2032, 2398,-2032,-2032,-2032,-2032,-2032,-2032,-2032,
+    -2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,-2032,
+    -2032,-2032,-2032,-2032,-2032,-2032,-2032, 2398,-2032,-2032,
+
+    -2032,-2032,-2032,-2032,-2032
+    },
+
+    {
+       27,-2033, 2033, 2033,-2033,-2033,-2033,-2033,-2033,-2033,
+    -2033,-2033, 2034,-2033,-2033,-2033,-2033,-2033,-2033,-2033,
+    -2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,
+    -2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,
+    -2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,
+    -2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,-2033,
+    -2033,-2033,-2033,-2033,-2033
+    },
+
+    {
+       27,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,
+    -2034,-2034,-2034,-2034,-2034,-2034, 2399,-2034,-2034,-2034,
+
+    -2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,
+    -2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,
+    -2034,-2034, 2399,-2034,-2034,-2034,-2034,-2034,-2034,-2034,
+    -2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,-2034,
+    -2034,-2034,-2034,-2034,-2034
+    },
+
+    {
+       27,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,
+    -2035,-2035,-2035,-2035, 2400,-2035,-2035,-2035,-2035,-2035,
+    -2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,
+    -2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,
+     2400,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,
+
+    -2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,-2035,
+    -2035,-2035,-2035,-2035,-2035
+    },
+
+    {
+       27,-2036, 2036, 2036,-2036,-2036,-2036,-2036,-2036,-2036,
+    -2036,-2036, 2037,-2036,-2036,-2036,-2036,-2036,-2036,-2036,
+    -2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,
+    -2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,
+    -2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,
+    -2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,-2036,
+    -2036,-2036,-2036,-2036,-2036
+    },
+
+    {
+       27,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,
+
+    -2037,-2037,-2037,-2037,-2037,-2037, 2401,-2037,-2037,-2037,
+    -2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,
+    -2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,
+    -2037,-2037, 2401,-2037,-2037,-2037,-2037,-2037,-2037,-2037,
+    -2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,-2037,
+    -2037,-2037,-2037,-2037,-2037
+    },
+
+    {
+       27,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,
+    -2038,-2038,-2038,-2038, 2402,-2038,-2038,-2038,-2038,-2038,
+    -2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,
+    -2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,
+
+     2402,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,
+    -2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,-2038,
+    -2038,-2038,-2038,-2038,-2038
+    },
+
+    {
+       27,-2039, 2039, 2039,-2039,-2039,-2039,-2039,-2039,-2039,
+    -2039,-2039, 2040,-2039,-2039,-2039,-2039,-2039,-2039,-2039,
+    -2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,
+    -2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,
+    -2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,
+    -2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,-2039,
+    -2039,-2039,-2039,-2039,-2039
+
+    },
+
+    {
+       27,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,
+    -2040,-2040,-2040,-2040,-2040,-2040, 2403,-2040,-2040,-2040,
+    -2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,
+    -2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,
+    -2040,-2040, 2403,-2040,-2040,-2040,-2040,-2040,-2040,-2040,
+    -2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,-2040,
+    -2040,-2040,-2040,-2040,-2040
+    },
+
+    {
+       27,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,
+    -2041,-2041,-2041,-2041, 2404,-2041,-2041,-2041,-2041,-2041,
+    -2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,
+
+    -2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,
+     2404,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,
+    -2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,-2041,
+    -2041,-2041,-2041,-2041,-2041
+    },
+
+    {
+       27,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,
+    -2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,
+    -2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042, 2405,-2042,
+    -2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,
+    -2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,-2042,
+    -2042,-2042,-2042, 2405,-2042,-2042,-2042,-2042,-2042,-2042,
+
+    -2042,-2042,-2042,-2042,-2042
+    },
+
+    {
+       27,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,
+    -2043,-2043,-2043,-2043, 2406,-2043,-2043,-2043,-2043,-2043,
+    -2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,
+    -2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,
+     2406,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,
+    -2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,-2043,
+    -2043,-2043,-2043,-2043,-2043
+    },
+
+    {
+       27,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,
+    -2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,
+
+    -2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,
+    -2044, 2407,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,
+    -2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,-2044,
+    -2044,-2044,-2044,-2044,-2044,-2044, 2407,-2044,-2044,-2044,
+    -2044,-2044,-2044,-2044,-2044
+    },
+
+    {
+       27,-2045,-2045,-2045,-2045,-2045,-2045,-2045, 2408,-2045,
+    -2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,
+    -2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,
+    -2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,
+    -2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,
+
+    -2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,-2045,
+    -2045,-2045,-2045,-2045,-2045
+    },
+
+    {
+       27,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,
+    -2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,
+    -2046,-2046,-2046,-2046,-2046,-2046,-2046, 2409,-2046,-2046,
+    -2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,
+    -2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,-2046,
+    -2046,-2046, 2409,-2046,-2046,-2046,-2046,-2046,-2046,-2046,
+    -2046,-2046,-2046,-2046,-2046
+    },
+
+    {
+       27,-2047, 2410, 2410,-2047,-2047,-2047,-2047,-2047,-2047,
+
+    -2047,-2047, 2411,-2047,-2047,-2047,-2047,-2047,-2047,-2047,
+    -2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,
+    -2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,
+    -2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,
+    -2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,-2047,
+    -2047,-2047,-2047,-2047,-2047
+    },
+
+    {
+       27,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,
+    -2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,
+    -2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,
+    -2048,-2048,-2048, 2412,-2048,-2048,-2048,-2048,-2048,-2048,
+
+    -2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048,
+    -2048,-2048,-2048,-2048,-2048,-2048,-2048,-2048, 2412,-2048,
+    -2048,-2048,-2048,-2048,-2048
+    },
+
+    {
+       27,-2049, 2413, 2413,-2049,-2049,-2049,-2049,-2049,-2049,
+    -2049,-2049, 2414,-2049,-2049,-2049,-2049,-2049,-2049,-2049,
+    -2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,
+    -2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,
+    -2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,
+    -2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,-2049,
+    -2049,-2049,-2049,-2049,-2049
+
+    },
+
+    {
+       27,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,
+    -2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,
+    -2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,
+    -2050,-2050,-2050, 2415,-2050,-2050,-2050,-2050,-2050,-2050,
+    -2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050,
+    -2050,-2050,-2050,-2050,-2050,-2050,-2050,-2050, 2415,-2050,
+    -2050,-2050,-2050,-2050,-2050
+    },
+
+    {
+       27,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,
+    -2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,
+    -2051,-2051,-2051,-2051,-2051,-2051,-2051, 2416,-2051,-2051,
+
+    -2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,
+    -2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,-2051,
+    -2051,-2051, 2416,-2051,-2051,-2051,-2051,-2051,-2051,-2051,
+    -2051,-2051,-2051,-2051,-2051
+    },
+
+    {
+       27,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,  829,
+    -2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,
+    -2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,
+    -2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,
+    -2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,
+    -2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,-2052,
+
+    -2052,-2052,-2052,-2052,-2052
+    },
+
+    {
+       27,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,
+    -2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,
+    -2053,-2053,-2053,-2053,-2053,-2053,-2053, 2417,-2053,-2053,
+    -2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,
+    -2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,-2053,
+    -2053,-2053, 2417,-2053,-2053,-2053,-2053,-2053,-2053,-2053,
+    -2053,-2053,-2053,-2053,-2053
+    },
+
+    {
+       27,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,  832,
+    -2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,
+
+    -2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,
+    -2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,
+    -2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,
+    -2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,-2054,
+    -2054,-2054,-2054,-2054,-2054
+    },
+
+    {
+       27,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,
+    -2055,-2055,-2055, 2418,-2055,-2055,-2055,-2055,-2055,-2055,
+    -2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,
+    -2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,
+    -2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,
+
+    -2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,-2055,
+    -2055,-2055,-2055,-2055,-2055
+    },
+
+    {
+       27,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,
+    -2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,
+    -2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,
+    -2056,-2056, 2419,-2056,-2056,-2056,-2056,-2056,-2056,-2056,
+    -2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,-2056,
+    -2056,-2056,-2056,-2056,-2056,-2056,-2056, 2419,-2056,-2056,
+    -2056,-2056,-2056,-2056,-2056
+    },
+
+    {
+       27,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,
+
+    -2057,-2057,-2057, 2420,-2057,-2057,-2057,-2057,-2057,-2057,
+    -2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,
+    -2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,
+    -2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,
+    -2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,-2057,
+    -2057,-2057,-2057,-2057,-2057
+    },
+
+    {
+       27,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,
+    -2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,
+    -2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,
+    -2058,-2058, 2421,-2058,-2058,-2058,-2058,-2058,-2058,-2058,
+
+    -2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,-2058,
+    -2058,-2058,-2058,-2058,-2058,-2058,-2058, 2421,-2058,-2058,
+    -2058,-2058,-2058,-2058,-2058
+    },
+
+    {
+       27,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,
+    -2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059, 2422,-2059,
+    -2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,
+    -2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,
+    -2059,-2059,-2059,-2059, 2422,-2059,-2059,-2059,-2059,-2059,
+    -2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,-2059,
+    -2059,-2059,-2059,-2059,-2059
+
+    },
+
+    {
+       27,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,
+    -2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,
+    -2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,
+    -2060, 2423,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,
+    -2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,-2060,
+    -2060,-2060,-2060,-2060,-2060,-2060, 2423,-2060,-2060,-2060,
+    -2060,-2060,-2060,-2060,-2060
+    },
+
+    {
+       27,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,  836,
+    -2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,
+    -2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,
+
+    -2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,
+    -2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,
+    -2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,-2061,
+    -2061,-2061,-2061,-2061,-2061
+    },
+
+    {
+       27,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,
+    -2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,
+    -2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062, 2424,-2062,
+    -2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,
+    -2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,-2062,
+    -2062,-2062,-2062, 2424,-2062,-2062,-2062,-2062,-2062,-2062,
+
+    -2062,-2062,-2062,-2062,-2062
+    },
+
+    {
+       27,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,
+    -2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,
+    -2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,
+    -2063, 2425,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,
+    -2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,-2063,
+    -2063,-2063,-2063,-2063,-2063,-2063, 2425,-2063,-2063,-2063,
+    -2063,-2063,-2063,-2063,-2063
+    },
+
+    {
+       27,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064, 2426,
+    -2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,
+
+    -2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,
+    -2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064, 2427,
+    -2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,
+    -2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,-2064,
+    -2064,-2064,-2064,-2064,-2064
+    },
+
+    {
+       27,-2065, 2065, 2065,-2065,-2065,-2065,-2065,-2065,-2065,
+    -2065,-2065, 2066,-2065,-2065,-2065,-2065,-2065,-2065,-2065,
+    -2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,
+    -2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,
+    -2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,
+
+    -2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,-2065,
+    -2065,-2065,-2065,-2065,-2065
+    },
+
+    {
+       27,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,
+    -2066,-2066,-2066,-2066,-2066,-2066, 2428,-2066,-2066,-2066,
+    -2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,
+    -2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,
+    -2066,-2066, 2428,-2066,-2066,-2066,-2066,-2066,-2066,-2066,
+    -2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,-2066,
+    -2066,-2066,-2066,-2066,-2066
+    },
+
+    {
+       27,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,
+
+    -2067,-2067,-2067,-2067, 2429,-2067,-2067,-2067,-2067,-2067,
+    -2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,
+    -2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,
+     2429,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,
+    -2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,-2067,
+    -2067,-2067,-2067,-2067,-2067
+    },
+
+    {
+       27,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,
+    -2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,
+    -2068,-2068,-2068,-2068,-2068,-2068,-2068, 2430,-2068,-2068,
+    -2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,
+
+    -2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,-2068,
+    -2068,-2068, 2430,-2068,-2068,-2068,-2068,-2068,-2068,-2068,
+    -2068,-2068,-2068,-2068,-2068
+    },
+
+    {
+       27,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,
+    -2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,
+    -2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,
+    -2069, 2431,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,
+    -2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,-2069,
+    -2069,-2069,-2069,-2069,-2069,-2069, 2431,-2069,-2069,-2069,
+    -2069,-2069,-2069,-2069,-2069
+
+    },
+
+    {
+       27,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,  841,
+    -2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,
+    -2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,
+    -2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,
+    -2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,
+    -2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,-2070,
+    -2070,-2070,-2070,-2070,-2070
+    },
+
+    {
+       27,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,
+    -2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,
+    -2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,
+
+    -2071,-2071,-2071, 2432,-2071,-2071,-2071,-2071,-2071,-2071,
+    -2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071,
+    -2071,-2071,-2071,-2071,-2071,-2071,-2071,-2071, 2432,-2071,
+    -2071,-2071,-2071,-2071,-2071
+    },
+
+    {
+       27,-2072, 2433, 2433,-2072,-2072,-2072,-2072,-2072,-2072,
+    -2072,-2072, 2434,-2072,-2072,-2072,-2072,-2072,-2072,-2072,
+    -2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,
+    -2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,
+    -2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,
+    -2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,-2072,
+
+    -2072,-2072,-2072,-2072,-2072
+    },
+
+    {
+       27,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,
+    -2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,
+    -2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,
+    -2073,-2073,-2073, 2435,-2073,-2073,-2073,-2073,-2073,-2073,
+    -2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073,
+    -2073,-2073,-2073,-2073,-2073,-2073,-2073,-2073, 2435,-2073,
+    -2073,-2073,-2073,-2073,-2073
+    },
+
+    {
+       27,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,
+    -2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,
+
+    -2074,-2074,-2074,-2074,-2074,-2074,-2074, 2436,-2074,-2074,
+    -2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,
+    -2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,-2074,
+    -2074,-2074, 2436,-2074,-2074,-2074,-2074,-2074,-2074,-2074,
+    -2074,-2074,-2074,-2074,-2074
+    },
+
+    {
+       27,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,
+    -2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,
+    -2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,
+    -2075,-2075,-2075, 2437,-2075,-2075,-2075,-2075,-2075,-2075,
+    -2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075,
+
+    -2075,-2075,-2075,-2075,-2075,-2075,-2075,-2075, 2437,-2075,
+    -2075,-2075,-2075,-2075,-2075
+    },
+
+    {
+       27,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,
+    -2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,
+    -2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,
+    -2076,-2076, 2438,-2076,-2076,-2076,-2076,-2076,-2076,-2076,
+    -2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,-2076,
+    -2076,-2076,-2076,-2076,-2076,-2076,-2076, 2438,-2076,-2076,
+    -2076,-2076,-2076,-2076,-2076
+    },
+
+    {
+       27,-2077, 2077, 2077,-2077,-2077,-2077,-2077,-2077,-2077,
+
+    -2077,-2077, 2078,-2077,-2077,-2077,-2077,-2077,-2077,-2077,
+    -2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,
+    -2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,
+    -2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,
+    -2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,-2077,
+    -2077,-2077,-2077,-2077,-2077
+    },
+
+    {
+       27,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,
+    -2078,-2078,-2078,-2078,-2078,-2078, 2439,-2078,-2078,-2078,
+    -2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,
+    -2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,
+
+    -2078,-2078, 2439,-2078,-2078,-2078,-2078,-2078,-2078,-2078,
+    -2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,-2078,
+    -2078,-2078,-2078,-2078,-2078
+    },
+
+    {
+       27,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,
+    -2079,-2079,-2079,-2079, 2440,-2079,-2079,-2079,-2079,-2079,
+    -2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,
+    -2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,
+     2440,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,
+    -2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,-2079,
+    -2079,-2079,-2079,-2079,-2079
+
+    },
+
+    {
+       27,-2080, 2080, 2080,-2080,-2080,-2080,-2080,-2080,-2080,
+    -2080,-2080, 2081,-2080,-2080,-2080,-2080,-2080,-2080,-2080,
+    -2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,
+    -2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,
+    -2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,
+    -2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,-2080,
+    -2080,-2080,-2080,-2080,-2080
+    },
+
+    {
+       27,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,
+    -2081,-2081,-2081,-2081,-2081,-2081, 2441,-2081,-2081,-2081,
+    -2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,
+
+    -2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,
+    -2081,-2081, 2441,-2081,-2081,-2081,-2081,-2081,-2081,-2081,
+    -2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,-2081,
+    -2081,-2081,-2081,-2081,-2081
+    },
+
+    {
+       27,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,
+    -2082,-2082,-2082,-2082, 2442,-2082,-2082,-2082,-2082,-2082,
+    -2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,
+    -2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,
+     2442,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,
+    -2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,-2082,
+
+    -2082,-2082,-2082,-2082,-2082
+    },
+
+    {
+       27,-2083, 2083, 2083,-2083,-2083,-2083,-2083,-2083,-2083,
+    -2083,-2083, 2084,-2083,-2083,-2083,-2083,-2083,-2083,-2083,
+    -2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,
+    -2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,
+    -2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,
+    -2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,-2083,
+    -2083,-2083,-2083,-2083,-2083
+    },
+
+    {
+       27,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,
+    -2084,-2084,-2084,-2084,-2084,-2084, 2443,-2084,-2084,-2084,
+
+    -2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,
+    -2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,
+    -2084,-2084, 2443,-2084,-2084,-2084,-2084,-2084,-2084,-2084,
+    -2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,-2084,
+    -2084,-2084,-2084,-2084,-2084
+    },
+
+    {
+       27,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,
+    -2085,-2085,-2085,-2085, 2444,-2085,-2085,-2085,-2085,-2085,
+    -2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,
+    -2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,
+     2444,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,
+
+    -2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,-2085,
+    -2085,-2085,-2085,-2085,-2085
+    },
+
+    {
+       27,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,
+    -2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,
+    -2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086, 2445,-2086,
+    -2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,
+    -2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,-2086,
+    -2086,-2086,-2086, 2445,-2086,-2086,-2086,-2086,-2086,-2086,
+    -2086,-2086,-2086,-2086,-2086
+    },
+
+    {
+       27,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,
+
+    -2087,-2087,-2087,-2087, 2446,-2087,-2087,-2087,-2087,-2087,
+    -2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,
+    -2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,
+     2446,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,
+    -2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,-2087,
+    -2087,-2087,-2087,-2087,-2087
+    },
+
+    {
+       27,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,
+    -2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,
+    -2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,
+    -2088, 2447,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,
+
+    -2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,-2088,
+    -2088,-2088,-2088,-2088,-2088,-2088, 2447,-2088,-2088,-2088,
+    -2088,-2088,-2088,-2088,-2088
+    },
+
+    {
+       27,-2089,-2089,-2089,-2089,-2089,-2089,-2089, 2448,-2089,
+    -2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,
+    -2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,
+    -2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,
+    -2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,
+    -2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,-2089,
+    -2089,-2089,-2089,-2089,-2089
+
+    },
+
+    {
+       27,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,
+    -2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,
+    -2090,-2090,-2090,-2090,-2090, 2449,-2090,-2090,-2090,-2090,
+    -2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,
+    -2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,
+     2449,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,-2090,
+    -2090,-2090,-2090,-2090,-2090
+    },
+
+    {
+       27,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,
+    -2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,
+    -2091,-2091,-2091,-2091,-2091,-2091,-2091, 2450,-2091,-2091,
+
+    -2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,
+    -2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,-2091,
+    -2091,-2091, 2450,-2091,-2091,-2091,-2091,-2091,-2091,-2091,
+    -2091,-2091,-2091,-2091,-2091
+    },
+
+    {
+       27,-2092, 2451, 2451,-2092,-2092,-2092,-2092,-2092,-2092,
+    -2092,-2092, 2452,-2092,-2092,-2092,-2092,-2092,-2092,-2092,
+    -2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,
+    -2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,
+    -2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,
+    -2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,-2092,
+
+    -2092,-2092,-2092,-2092,-2092
+    },
+
+    {
+       27,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,
+    -2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,
+    -2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,
+    -2093,-2093,-2093, 2453,-2093,-2093,-2093,-2093,-2093,-2093,
+    -2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093,
+    -2093,-2093,-2093,-2093,-2093,-2093,-2093,-2093, 2453,-2093,
+    -2093,-2093,-2093,-2093,-2093
+    },
+
+    {
+       27,-2094, 2454, 2454,-2094,-2094,-2094,-2094,-2094,-2094,
+    -2094,-2094, 2455,-2094,-2094,-2094,-2094,-2094,-2094,-2094,
+
+    -2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,
+    -2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,
+    -2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,
+    -2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,-2094,
+    -2094,-2094,-2094,-2094,-2094
+    },
+
+    {
+       27,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,
+    -2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,
+    -2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,
+    -2095,-2095,-2095, 2456,-2095,-2095,-2095,-2095,-2095,-2095,
+    -2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095,
+
+    -2095,-2095,-2095,-2095,-2095,-2095,-2095,-2095, 2456,-2095,
+    -2095,-2095,-2095,-2095,-2095
+    },
+
+    {
+       27,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,
+    -2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,
+    -2096,-2096,-2096,-2096,-2096,-2096,-2096, 2457,-2096,-2096,
+    -2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,
+    -2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,-2096,
+    -2096,-2096, 2457,-2096,-2096,-2096,-2096,-2096,-2096,-2096,
+    -2096,-2096,-2096,-2096,-2096
+    },
+
+    {
+       27,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,  858,
+
+    -2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,
+    -2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,
+    -2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,
+    -2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,
+    -2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,-2097,
+    -2097,-2097,-2097,-2097,-2097
+    },
+
+    {
+       27,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,
+    -2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,
+    -2098,-2098,-2098,-2098,-2098,-2098,-2098, 2458,-2098,-2098,
+    -2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,
+
+    -2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,-2098,
+    -2098,-2098, 2458,-2098,-2098,-2098,-2098,-2098,-2098,-2098,
+    -2098,-2098,-2098,-2098,-2098
+    },
+
+    {
+       27,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,  861,
+    -2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,
+    -2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,
+    -2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,
+    -2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,
+    -2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,-2099,
+    -2099,-2099,-2099,-2099,-2099
+
+    },
+
+    {
+       27,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,
+    -2100,-2100,-2100, 2459,-2100,-2100,-2100,-2100,-2100,-2100,
+    -2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,
+    -2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,
+    -2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,
+    -2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,-2100,
+    -2100,-2100,-2100,-2100,-2100
+    },
+
+    {
+       27,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,
+    -2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,
+    -2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,
+
+    -2101,-2101, 2460,-2101,-2101,-2101,-2101,-2101,-2101,-2101,
+    -2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,-2101,
+    -2101,-2101,-2101,-2101,-2101,-2101,-2101, 2460,-2101,-2101,
+    -2101,-2101,-2101,-2101,-2101
+    },
+
+    {
+       27,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,
+    -2102,-2102,-2102, 2461,-2102,-2102,-2102,-2102,-2102,-2102,
+    -2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,
+    -2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,
+    -2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,
+    -2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,-2102,
+
+    -2102,-2102,-2102,-2102,-2102
+    },
+
+    {
+       27,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,
+    -2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,
+    -2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,
+    -2103,-2103, 2462,-2103,-2103,-2103,-2103,-2103,-2103,-2103,
+    -2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,-2103,
+    -2103,-2103,-2103,-2103,-2103,-2103,-2103, 2462,-2103,-2103,
+    -2103,-2103,-2103,-2103,-2103
+    },
+
+    {
+       27,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,
+    -2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104, 2463,-2104,
+
+    -2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,
+    -2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,
+    -2104,-2104,-2104,-2104, 2463,-2104,-2104,-2104,-2104,-2104,
+    -2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,-2104,
+    -2104,-2104,-2104,-2104,-2104
+    },
+
+    {
+       27,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,
+    -2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,
+    -2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,
+    -2105, 2464,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,
+    -2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,-2105,
+
+    -2105,-2105,-2105,-2105,-2105,-2105, 2464,-2105,-2105,-2105,
+    -2105,-2105,-2105,-2105,-2105
+    },
+
+    {
+       27,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,  865,
+    -2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,
+    -2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,
+    -2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,
+    -2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,
+    -2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,-2106,
+    -2106,-2106,-2106,-2106,-2106
+    },
+
+    {
+       27,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,
+
+    -2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,
+    -2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107, 2465,-2107,
+    -2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,
+    -2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,-2107,
+    -2107,-2107,-2107, 2465,-2107,-2107,-2107,-2107,-2107,-2107,
+    -2107,-2107,-2107,-2107,-2107
+    },
+
+    {
+       27,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,
+    -2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,
+    -2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,
+    -2108, 2466,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,
+
+    -2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,-2108,
+    -2108,-2108,-2108,-2108,-2108,-2108, 2466,-2108,-2108,-2108,
+    -2108,-2108,-2108,-2108,-2108
+    },
+
+    {
+       27,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109, 2467,
+    -2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,
+    -2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,
+    -2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109, 2468,
+    -2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,
+    -2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,-2109,
+    -2109,-2109,-2109,-2109,-2109
+
+    },
+
+    {
+       27,-2110, 2110, 2110,-2110,-2110,-2110,-2110,-2110,-2110,
+    -2110,-2110, 2111,-2110,-2110,-2110,-2110,-2110,-2110,-2110,
+    -2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,
+    -2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,
+    -2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,
+    -2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,-2110,
+    -2110,-2110,-2110,-2110,-2110
+    },
+
+    {
+       27,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,
+    -2111,-2111,-2111,-2111,-2111,-2111, 2469,-2111,-2111,-2111,
+    -2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,
+
+    -2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,
+    -2111,-2111, 2469,-2111,-2111,-2111,-2111,-2111,-2111,-2111,
+    -2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,-2111,
+    -2111,-2111,-2111,-2111,-2111
+    },
+
+    {
+       27,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,
+    -2112,-2112,-2112,-2112, 2470,-2112,-2112,-2112,-2112,-2112,
+    -2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,
+    -2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,
+     2470,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,
+    -2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,-2112,
+
+    -2112,-2112,-2112,-2112,-2112
+    },
+
+    {
+       27,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,
+    -2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,
+    -2113,-2113,-2113,-2113,-2113,-2113,-2113, 2471,-2113,-2113,
+    -2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,
+    -2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,-2113,
+    -2113,-2113, 2471,-2113,-2113,-2113,-2113,-2113,-2113,-2113,
+    -2113,-2113,-2113,-2113,-2113
+    },
+
+    {
+       27,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,
+    -2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,
+
+    -2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,
+    -2114, 2472,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,
+    -2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,-2114,
+    -2114,-2114,-2114,-2114,-2114,-2114, 2472,-2114,-2114,-2114,
+    -2114,-2114,-2114,-2114,-2114
+    },
+
+    {
+       27,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,  870,
+    -2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,
+    -2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,
+    -2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,
+    -2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,
+
+    -2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,-2115,
+    -2115,-2115,-2115,-2115,-2115
+    },
+
+    {
+       27,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,
+    -2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,
+    -2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,
+    -2116,-2116,-2116, 2473,-2116,-2116,-2116,-2116,-2116,-2116,
+    -2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116,
+    -2116,-2116,-2116,-2116,-2116,-2116,-2116,-2116, 2473,-2116,
+    -2116,-2116,-2116,-2116,-2116
+    },
+
+    {
+       27,-2117, 2474, 2474,-2117,-2117,-2117,-2117,-2117,-2117,
+
+    -2117,-2117, 2475,-2117,-2117,-2117,-2117,-2117,-2117,-2117,
+    -2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,
+    -2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,
+    -2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,
+    -2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,-2117,
+    -2117,-2117,-2117,-2117,-2117
+    },
+
+    {
+       27,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,
+    -2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,
+    -2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,
+    -2118,-2118,-2118, 2476,-2118,-2118,-2118,-2118,-2118,-2118,
+
+    -2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118,
+    -2118,-2118,-2118,-2118,-2118,-2118,-2118,-2118, 2476,-2118,
+    -2118,-2118,-2118,-2118,-2118
+    },
+
+    {
+       27,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,
+    -2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,
+    -2119,-2119,-2119,-2119,-2119,-2119,-2119, 2477,-2119,-2119,
+    -2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,
+    -2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,-2119,
+    -2119,-2119, 2477,-2119,-2119,-2119,-2119,-2119,-2119,-2119,
+    -2119,-2119,-2119,-2119,-2119
+
+    },
+
+    {
+       27,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,
+    -2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,
+    -2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,
+    -2120,-2120,-2120, 2478,-2120,-2120,-2120,-2120,-2120,-2120,
+    -2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120,
+    -2120,-2120,-2120,-2120,-2120,-2120,-2120,-2120, 2478,-2120,
+    -2120,-2120,-2120,-2120,-2120
+    },
+
+    {
+       27,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,
+    -2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,
+    -2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,
+
+    -2121,-2121, 2479,-2121,-2121,-2121,-2121,-2121,-2121,-2121,
+    -2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,-2121,
+    -2121,-2121,-2121,-2121,-2121,-2121,-2121, 2479,-2121,-2121,
+    -2121,-2121,-2121,-2121,-2121
+    },
+
+    {
+       27,-2122, 2122, 2122,-2122,-2122,-2122,-2122,-2122,-2122,
+    -2122,-2122, 2123,-2122,-2122,-2122,-2122,-2122,-2122,-2122,
+    -2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,
+    -2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,
+    -2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,
+    -2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,-2122,
+
+    -2122,-2122,-2122,-2122,-2122
+    },
+
+    {
+       27,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,
+    -2123,-2123,-2123,-2123,-2123,-2123, 2480,-2123,-2123,-2123,
+    -2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,
+    -2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,
+    -2123,-2123, 2480,-2123,-2123,-2123,-2123,-2123,-2123,-2123,
+    -2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,-2123,
+    -2123,-2123,-2123,-2123,-2123
+    },
+
+    {
+       27,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,
+    -2124,-2124,-2124,-2124, 2481,-2124,-2124,-2124,-2124,-2124,
+
+    -2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,
+    -2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,
+     2481,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,
+    -2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,-2124,
+    -2124,-2124,-2124,-2124,-2124
+    },
+
+    {
+       27,-2125, 2125, 2125,-2125,-2125,-2125,-2125,-2125,-2125,
+    -2125,-2125, 2126,-2125,-2125,-2125,-2125,-2125,-2125,-2125,
+    -2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,
+    -2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,
+    -2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,
+
+    -2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,-2125,
+    -2125,-2125,-2125,-2125,-2125
+    },
+
+    {
+       27,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,
+    -2126,-2126,-2126,-2126,-2126,-2126, 2482,-2126,-2126,-2126,
+    -2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,
+    -2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,
+    -2126,-2126, 2482,-2126,-2126,-2126,-2126,-2126,-2126,-2126,
+    -2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,-2126,
+    -2126,-2126,-2126,-2126,-2126
+    },
+
+    {
+       27,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,
+
+    -2127,-2127,-2127,-2127, 2483,-2127,-2127,-2127,-2127,-2127,
+    -2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,
+    -2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,
+     2483,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,
+    -2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,-2127,
+    -2127,-2127,-2127,-2127,-2127
+    },
+
+    {
+       27,-2128, 2128, 2128,-2128,-2128,-2128,-2128,-2128,-2128,
+    -2128,-2128, 2129,-2128,-2128,-2128,-2128,-2128,-2128,-2128,
+    -2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,
+    -2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,
+
+    -2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,
+    -2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,-2128,
+    -2128,-2128,-2128,-2128,-2128
+    },
+
+    {
+       27,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,
+    -2129,-2129,-2129,-2129,-2129,-2129, 2484,-2129,-2129,-2129,
+    -2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,
+    -2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,
+    -2129,-2129, 2484,-2129,-2129,-2129,-2129,-2129,-2129,-2129,
+    -2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,-2129,
+    -2129,-2129,-2129,-2129,-2129
+
+    },
+
+    {
+       27,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,
+    -2130,-2130,-2130,-2130, 2485,-2130,-2130,-2130,-2130,-2130,
+    -2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,
+    -2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,
+     2485,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,
+    -2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,-2130,
+    -2130,-2130,-2130,-2130,-2130
+    },
+
+    {
+       27,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,
+    -2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,
+    -2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131, 2486,-2131,
+
+    -2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,
+    -2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,-2131,
+    -2131,-2131,-2131, 2486,-2131,-2131,-2131,-2131,-2131,-2131,
+    -2131,-2131,-2131,-2131,-2131
+    },
+
+    {
+       27,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,
+    -2132,-2132,-2132,-2132, 2487,-2132,-2132,-2132,-2132,-2132,
+    -2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,
+    -2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,
+     2487,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,
+    -2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,-2132,
+
+    -2132,-2132,-2132,-2132,-2132
+    },
+
+    {
+       27,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,
+    -2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,
+    -2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,
+    -2133, 2488,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,
+    -2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,-2133,
+    -2133,-2133,-2133,-2133,-2133,-2133, 2488,-2133,-2133,-2133,
+    -2133,-2133,-2133,-2133,-2133
+    },
+
+    {
+       27,-2134,-2134,-2134,-2134,-2134,-2134,-2134, 2489,-2134,
+    -2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,
+
+    -2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,
+    -2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,
+    -2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,
+    -2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,-2134,
+    -2134,-2134,-2134,-2134,-2134
+    },
+
+    {
+       27,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,
+    -2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,
+    -2135,-2135,-2135,-2135,-2135, 2490,-2135,-2135,-2135,-2135,
+    -2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,
+    -2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,
+
+     2490,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,-2135,
+    -2135,-2135,-2135,-2135,-2135
+    },
+
+    {
+       27,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,
+    -2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,
+    -2136,-2136,-2136,-2136,-2136,-2136,-2136, 2491,-2136,-2136,
+    -2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,
+    -2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,-2136,
+    -2136,-2136, 2491,-2136,-2136,-2136,-2136,-2136,-2136,-2136,
+    -2136,-2136,-2136,-2136,-2136
+    },
+
+    {
+       27,-2137, 2492, 2492,-2137,-2137,-2137,-2137,-2137,-2137,
+
+    -2137,-2137, 2493,-2137,-2137,-2137,-2137,-2137,-2137,-2137,
+    -2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,
+    -2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,
+    -2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,
+    -2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,-2137,
+    -2137,-2137,-2137,-2137,-2137
+    },
+
+    {
+       27,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,
+    -2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,
+    -2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,
+    -2138,-2138,-2138, 2494,-2138,-2138,-2138,-2138,-2138,-2138,
+
+    -2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138,
+    -2138,-2138,-2138,-2138,-2138,-2138,-2138,-2138, 2494,-2138,
+    -2138,-2138,-2138,-2138,-2138
+    },
+
+    {
+       27,-2139, 2495, 2495,-2139,-2139,-2139,-2139,-2139,-2139,
+    -2139,-2139, 2496,-2139,-2139,-2139,-2139,-2139,-2139,-2139,
+    -2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,
+    -2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,
+    -2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,
+    -2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,-2139,
+    -2139,-2139,-2139,-2139,-2139
+
+    },
+
+    {
+       27,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,
+    -2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,
+    -2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,
+    -2140,-2140,-2140, 2497,-2140,-2140,-2140,-2140,-2140,-2140,
+    -2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140,
+    -2140,-2140,-2140,-2140,-2140,-2140,-2140,-2140, 2497,-2140,
+    -2140,-2140,-2140,-2140,-2140
+    },
+
+    {
+       27,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,
+    -2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,
+    -2141,-2141,-2141,-2141,-2141,-2141,-2141, 2498,-2141,-2141,
+
+    -2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,
+    -2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,-2141,
+    -2141,-2141, 2498,-2141,-2141,-2141,-2141,-2141,-2141,-2141,
+    -2141,-2141,-2141,-2141,-2141
+    },
+
+    {
+       27,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,  887,
+    -2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,
+    -2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,
+    -2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,
+    -2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,
+    -2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,-2142,
+
+    -2142,-2142,-2142,-2142,-2142
+    },
+
+    {
+       27,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,
+    -2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,
+    -2143,-2143,-2143,-2143,-2143,-2143,-2143, 2499,-2143,-2143,
+    -2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,
+    -2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,-2143,
+    -2143,-2143, 2499,-2143,-2143,-2143,-2143,-2143,-2143,-2143,
+    -2143,-2143,-2143,-2143,-2143
+    },
+
+    {
+       27,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,  890,
+    -2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,
+
+    -2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,
+    -2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,
+    -2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,
+    -2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,-2144,
+    -2144,-2144,-2144,-2144,-2144
+    },
+
+    {
+       27,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,
+    -2145,-2145,-2145, 2500,-2145,-2145,-2145,-2145,-2145,-2145,
+    -2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,
+    -2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,
+    -2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,
+
+    -2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,-2145,
+    -2145,-2145,-2145,-2145,-2145
+    },
+
+    {
+       27,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,
+    -2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,
+    -2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,
+    -2146,-2146, 2501,-2146,-2146,-2146,-2146,-2146,-2146,-2146,
+    -2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,-2146,
+    -2146,-2146,-2146,-2146,-2146,-2146,-2146, 2501,-2146,-2146,
+    -2146,-2146,-2146,-2146,-2146
+    },
+
+    {
+       27,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,
+
+    -2147,-2147,-2147, 2502,-2147,-2147,-2147,-2147,-2147,-2147,
+    -2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,
+    -2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,
+    -2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,
+    -2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,-2147,
+    -2147,-2147,-2147,-2147,-2147
+    },
+
+    {
+       27,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,
+    -2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,
+    -2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,
+    -2148,-2148, 2503,-2148,-2148,-2148,-2148,-2148,-2148,-2148,
+
+    -2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,-2148,
+    -2148,-2148,-2148,-2148,-2148,-2148,-2148, 2503,-2148,-2148,
+    -2148,-2148,-2148,-2148,-2148
+    },
+
+    {
+       27,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,
+    -2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149, 2504,-2149,
+    -2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,
+    -2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,
+    -2149,-2149,-2149,-2149, 2504,-2149,-2149,-2149,-2149,-2149,
+    -2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,-2149,
+    -2149,-2149,-2149,-2149,-2149
+
+    },
+
+    {
+       27,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,
+    -2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,
+    -2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,
+    -2150, 2505,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,
+    -2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,-2150,
+    -2150,-2150,-2150,-2150,-2150,-2150, 2505,-2150,-2150,-2150,
+    -2150,-2150,-2150,-2150,-2150
+    },
+
+    {
+       27,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,  894,
+    -2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,
+    -2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,
+
+    -2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,
+    -2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,
+    -2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,-2151,
+    -2151,-2151,-2151,-2151,-2151
+    },
+
+    {
+       27,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,
+    -2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,
+    -2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152, 2506,-2152,
+    -2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,
+    -2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,-2152,
+    -2152,-2152,-2152, 2506,-2152,-2152,-2152,-2152,-2152,-2152,
+
+    -2152,-2152,-2152,-2152,-2152
+    },
+
+    {
+       27,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,
+    -2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,
+    -2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,
+    -2153, 2507,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,
+    -2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,-2153,
+    -2153,-2153,-2153,-2153,-2153,-2153, 2507,-2153,-2153,-2153,
+    -2153,-2153,-2153,-2153,-2153
+    },
+
+    {
+       27,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154, 2508,
+    -2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,
+
+    -2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,
+    -2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154, 2509,
+    -2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,
+    -2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,-2154,
+    -2154,-2154,-2154,-2154,-2154
+    },
+
+    {
+       27,-2155, 2155, 2155,-2155,-2155,-2155,-2155,-2155,-2155,
+    -2155,-2155, 2156,-2155,-2155,-2155,-2155,-2155,-2155,-2155,
+    -2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,
+    -2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,
+    -2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,
+
+    -2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,-2155,
+    -2155,-2155,-2155,-2155,-2155
+    },
+
+    {
+       27,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,
+    -2156,-2156,-2156,-2156,-2156,-2156, 2510,-2156,-2156,-2156,
+    -2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,
+    -2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,
+    -2156,-2156, 2510,-2156,-2156,-2156,-2156,-2156,-2156,-2156,
+    -2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,-2156,
+    -2156,-2156,-2156,-2156,-2156
+    },
+
+    {
+       27,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,
+
+    -2157,-2157,-2157,-2157, 2511,-2157,-2157,-2157,-2157,-2157,
+    -2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,
+    -2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,
+     2511,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,
+    -2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,-2157,
+    -2157,-2157,-2157,-2157,-2157
+    },
+
+    {
+       27,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,
+    -2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,
+    -2158,-2158,-2158,-2158,-2158,-2158,-2158, 2512,-2158,-2158,
+    -2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,
+
+    -2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,-2158,
+    -2158,-2158, 2512,-2158,-2158,-2158,-2158,-2158,-2158,-2158,
+    -2158,-2158,-2158,-2158,-2158
+    },
+
+    {
+       27,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,
+    -2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,
+    -2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,
+    -2159, 2513,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,
+    -2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,-2159,
+    -2159,-2159,-2159,-2159,-2159,-2159, 2513,-2159,-2159,-2159,
+    -2159,-2159,-2159,-2159,-2159
+
+    },
+
+    {
+       27,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,  899,
+    -2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,
+    -2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,
+    -2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,
+    -2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,
+    -2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,-2160,
+    -2160,-2160,-2160,-2160,-2160
+    },
+
+    {
+       27,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,
+    -2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,
+    -2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,
+
+    -2161,-2161,-2161, 2514,-2161,-2161,-2161,-2161,-2161,-2161,
+    -2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161,
+    -2161,-2161,-2161,-2161,-2161,-2161,-2161,-2161, 2514,-2161,
+    -2161,-2161,-2161,-2161,-2161
+    },
+
+    {
+       27,-2162, 2515, 2515,-2162,-2162,-2162,-2162,-2162,-2162,
+    -2162,-2162, 2516,-2162,-2162,-2162,-2162,-2162,-2162,-2162,
+    -2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,
+    -2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,
+    -2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,
+    -2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,-2162,
+
+    -2162,-2162,-2162,-2162,-2162
+    },
+
+    {
+       27,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,
+    -2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,
+    -2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,
+    -2163,-2163,-2163, 2517,-2163,-2163,-2163,-2163,-2163,-2163,
+    -2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163,
+    -2163,-2163,-2163,-2163,-2163,-2163,-2163,-2163, 2517,-2163,
+    -2163,-2163,-2163,-2163,-2163
+    },
+
+    {
+       27,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,
+    -2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,
+
+    -2164,-2164,-2164,-2164,-2164,-2164,-2164, 2518,-2164,-2164,
+    -2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,
+    -2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,-2164,
+    -2164,-2164, 2518,-2164,-2164,-2164,-2164,-2164,-2164,-2164,
+    -2164,-2164,-2164,-2164,-2164
+    },
+
+    {
+       27,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,
+    -2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,
+    -2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,
+    -2165,-2165,-2165, 2519,-2165,-2165,-2165,-2165,-2165,-2165,
+    -2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165,
+
+    -2165,-2165,-2165,-2165,-2165,-2165,-2165,-2165, 2519,-2165,
+    -2165,-2165,-2165,-2165,-2165
+    },
+
+    {
+       27,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,
+    -2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,
+    -2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,
+    -2166,-2166, 2520,-2166,-2166,-2166,-2166,-2166,-2166,-2166,
+    -2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,-2166,
+    -2166,-2166,-2166,-2166,-2166,-2166,-2166, 2520,-2166,-2166,
+    -2166,-2166,-2166,-2166,-2166
+    },
+
+    {
+       27,-2167, 2167, 2167,-2167,-2167,-2167,-2167,-2167,-2167,
+
+    -2167,-2167, 2168,-2167,-2167,-2167,-2167,-2167,-2167,-2167,
+    -2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,
+    -2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,
+    -2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,
+    -2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,-2167,
+    -2167,-2167,-2167,-2167,-2167
+    },
+
+    {
+       27,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,
+    -2168,-2168,-2168,-2168,-2168,-2168, 2521,-2168,-2168,-2168,
+    -2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,
+    -2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,
+
+    -2168,-2168, 2521,-2168,-2168,-2168,-2168,-2168,-2168,-2168,
+    -2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,-2168,
+    -2168,-2168,-2168,-2168,-2168
+    },
+
+    {
+       27,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,
+    -2169,-2169,-2169,-2169, 2522,-2169,-2169,-2169,-2169,-2169,
+    -2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,
+    -2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,
+     2522,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,
+    -2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,-2169,
+    -2169,-2169,-2169,-2169,-2169
+
+    },
+
+    {
+       27,-2170, 2170, 2170,-2170,-2170,-2170,-2170,-2170,-2170,
+    -2170,-2170, 2171,-2170,-2170,-2170,-2170,-2170,-2170,-2170,
+    -2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,
+    -2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,
+    -2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,
+    -2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,-2170,
+    -2170,-2170,-2170,-2170,-2170
+    },
+
+    {
+       27,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,
+    -2171,-2171,-2171,-2171,-2171,-2171, 2523,-2171,-2171,-2171,
+    -2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,
+
+    -2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,
+    -2171,-2171, 2523,-2171,-2171,-2171,-2171,-2171,-2171,-2171,
+    -2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,-2171,
+    -2171,-2171,-2171,-2171,-2171
+    },
+
+    {
+       27,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,
+    -2172,-2172,-2172,-2172, 2524,-2172,-2172,-2172,-2172,-2172,
+    -2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,
+    -2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,
+     2524,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,
+    -2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,-2172,
+
+    -2172,-2172,-2172,-2172,-2172
+    },
+
+    {
+       27,-2173, 2173, 2173,-2173,-2173,-2173,-2173,-2173,-2173,
+    -2173,-2173, 2174,-2173,-2173,-2173,-2173,-2173,-2173,-2173,
+    -2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,
+    -2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,
+    -2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,
+    -2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,-2173,
+    -2173,-2173,-2173,-2173,-2173
+    },
+
+    {
+       27,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,
+    -2174,-2174,-2174,-2174,-2174,-2174, 2525,-2174,-2174,-2174,
+
+    -2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,
+    -2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,
+    -2174,-2174, 2525,-2174,-2174,-2174,-2174,-2174,-2174,-2174,
+    -2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,-2174,
+    -2174,-2174,-2174,-2174,-2174
+    },
+
+    {
+       27,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,
+    -2175,-2175,-2175,-2175, 2526,-2175,-2175,-2175,-2175,-2175,
+    -2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,
+    -2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,
+     2526,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,
+
+    -2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,-2175,
+    -2175,-2175,-2175,-2175,-2175
+    },
+
+    {
+       27,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,
+    -2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,
+    -2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176, 2527,-2176,
+    -2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,
+    -2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,-2176,
+    -2176,-2176,-2176, 2527,-2176,-2176,-2176,-2176,-2176,-2176,
+    -2176,-2176,-2176,-2176,-2176
+    },
+
+    {
+       27,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,
+
+    -2177,-2177,-2177,-2177, 2528,-2177,-2177,-2177,-2177,-2177,
+    -2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,
+    -2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,
+     2528,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,
+    -2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,-2177,
+    -2177,-2177,-2177,-2177,-2177
+    },
+
+    {
+       27,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,
+    -2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,
+    -2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,
+    -2178, 2529,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,
+
+    -2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,-2178,
+    -2178,-2178,-2178,-2178,-2178,-2178, 2529,-2178,-2178,-2178,
+    -2178,-2178,-2178,-2178,-2178
+    },
+
+    {
+       27,-2179,-2179,-2179,-2179,-2179,-2179,-2179, 2530,-2179,
+    -2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,
+    -2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,
+    -2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,
+    -2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,
+    -2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,-2179,
+    -2179,-2179,-2179,-2179,-2179
+
+    },
+
+    {
+       27,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,
+    -2180,-2180,-2180, 2531,-2180,-2180,-2180,-2180,-2180,-2180,
+    -2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,
+    -2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180, 2532,
+    -2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,
+    -2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,-2180,
+    -2180,-2180,-2180,-2180,-2180
+    },
+
+    {
+       27,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,
+    -2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,
+    -2181,-2181,-2181,-2181,-2181,-2181,-2181, 2533,-2181,-2181,
+
+    -2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,
+    -2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,-2181,
+    -2181,-2181, 2533,-2181,-2181,-2181,-2181,-2181,-2181,-2181,
+    -2181,-2181,-2181,-2181,-2181
+    },
+
+    {
+       27,-2182, 2534, 2534,-2182,-2182,-2182,-2182,-2182,-2182,
+    -2182,-2182, 2535,-2182,-2182,-2182,-2182,-2182,-2182,-2182,
+    -2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,
+    -2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,
+    -2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,
+    -2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,-2182,
+
+    -2182,-2182,-2182,-2182,-2182
+    },
+
+    {
+       27,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,
+    -2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,
+    -2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,
+    -2183,-2183,-2183, 2536,-2183,-2183,-2183,-2183,-2183,-2183,
+    -2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183,
+    -2183,-2183,-2183,-2183,-2183,-2183,-2183,-2183, 2536,-2183,
+    -2183,-2183,-2183,-2183,-2183
+    },
+
+    {
+       27,-2184, 2537, 2537,-2184,-2184,-2184,-2184,-2184,-2184,
+    -2184,-2184, 2538,-2184,-2184,-2184,-2184,-2184,-2184,-2184,
+
+    -2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,
+    -2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,
+    -2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,
+    -2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,-2184,
+    -2184,-2184,-2184,-2184,-2184
+    },
+
+    {
+       27,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,
+    -2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,
+    -2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,
+    -2185,-2185,-2185, 2539,-2185,-2185,-2185,-2185,-2185,-2185,
+    -2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185,
+
+    -2185,-2185,-2185,-2185,-2185,-2185,-2185,-2185, 2539,-2185,
+    -2185,-2185,-2185,-2185,-2185
+    },
+
+    {
+       27,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,
+    -2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,
+    -2186,-2186,-2186,-2186,-2186,-2186,-2186, 2540,-2186,-2186,
+    -2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,
+    -2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,-2186,
+    -2186,-2186, 2540,-2186,-2186,-2186,-2186,-2186,-2186,-2186,
+    -2186,-2186,-2186,-2186,-2186
+    },
+
+    {
+       27,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,  916,
+
+    -2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,
+    -2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,
+    -2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,
+    -2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,
+    -2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,-2187,
+    -2187,-2187,-2187,-2187,-2187
+    },
+
+    {
+       27,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,
+    -2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,
+    -2188,-2188,-2188,-2188,-2188,-2188,-2188, 2541,-2188,-2188,
+    -2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,
+
+    -2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,-2188,
+    -2188,-2188, 2541,-2188,-2188,-2188,-2188,-2188,-2188,-2188,
+    -2188,-2188,-2188,-2188,-2188
+    },
+
+    {
+       27,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,  919,
+    -2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,
+    -2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,
+    -2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,
+    -2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,
+    -2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,-2189,
+    -2189,-2189,-2189,-2189,-2189
+
+    },
+
+    {
+       27,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,
+    -2190,-2190,-2190, 2542,-2190,-2190,-2190,-2190,-2190,-2190,
+    -2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,
+    -2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,
+    -2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,
+    -2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,-2190,
+    -2190,-2190,-2190,-2190,-2190
+    },
+
+    {
+       27,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,
+    -2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,
+    -2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,
+
+    -2191,-2191, 2543,-2191,-2191,-2191,-2191,-2191,-2191,-2191,
+    -2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,-2191,
+    -2191,-2191,-2191,-2191,-2191,-2191,-2191, 2543,-2191,-2191,
+    -2191,-2191,-2191,-2191,-2191
+    },
+
+    {
+       27,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,
+    -2192,-2192,-2192, 2544,-2192,-2192,-2192,-2192,-2192,-2192,
+    -2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,
+    -2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,
+    -2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,
+    -2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,-2192,
+
+    -2192,-2192,-2192,-2192,-2192
+    },
+
+    {
+       27,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,
+    -2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,
+    -2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,
+    -2193,-2193, 2545,-2193,-2193,-2193,-2193,-2193,-2193,-2193,
+    -2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,-2193,
+    -2193,-2193,-2193,-2193,-2193,-2193,-2193, 2545,-2193,-2193,
+    -2193,-2193,-2193,-2193,-2193
+    },
+
+    {
+       27,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,
+    -2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194, 2546,-2194,
+
+    -2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,
+    -2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,
+    -2194,-2194,-2194,-2194, 2546,-2194,-2194,-2194,-2194,-2194,
+    -2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,-2194,
+    -2194,-2194,-2194,-2194,-2194
+    },
+
+    {
+       27,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,
+    -2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,
+    -2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,
+    -2195, 2547,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,
+    -2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,-2195,
+
+    -2195,-2195,-2195,-2195,-2195,-2195, 2547,-2195,-2195,-2195,
+    -2195,-2195,-2195,-2195,-2195
+    },
+
+    {
+       27,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,  923,
+    -2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,
+    -2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,
+    -2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,
+    -2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,
+    -2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,-2196,
+    -2196,-2196,-2196,-2196,-2196
+    },
+
+    {
+       27,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,
+
+    -2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,
+    -2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197, 2548,-2197,
+    -2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,
+    -2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,-2197,
+    -2197,-2197,-2197, 2548,-2197,-2197,-2197,-2197,-2197,-2197,
+    -2197,-2197,-2197,-2197,-2197
+    },
+
+    {
+       27,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,
+    -2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,
+    -2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,
+    -2198, 2549,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,
+
+    -2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,-2198,
+    -2198,-2198,-2198,-2198,-2198,-2198, 2549,-2198,-2198,-2198,
+    -2198,-2198,-2198,-2198,-2198
+    },
+
+    {
+       27,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199, 2550,
+    -2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,
+    -2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,
+    -2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199, 2551,
+    -2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,
+    -2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,-2199,
+    -2199,-2199,-2199,-2199,-2199
+
+    },
+
+    {
+       27,-2200, 2200, 2200,-2200,-2200,-2200,-2200,-2200,-2200,
+    -2200,-2200, 2201,-2200,-2200,-2200,-2200,-2200,-2200,-2200,
+    -2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,
+    -2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,
+    -2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,
+    -2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,-2200,
+    -2200,-2200,-2200,-2200,-2200
+    },
+
+    {
+       27,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,
+    -2201,-2201,-2201,-2201,-2201,-2201, 2552,-2201,-2201,-2201,
+    -2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,
+
+    -2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,
+    -2201,-2201, 2552,-2201,-2201,-2201,-2201,-2201,-2201,-2201,
+    -2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,-2201,
+    -2201,-2201,-2201,-2201,-2201
+    },
+
+    {
+       27,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,
+    -2202,-2202,-2202,-2202, 2553,-2202,-2202,-2202,-2202,-2202,
+    -2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,
+    -2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,
+     2553,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,
+    -2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,-2202,
+
+    -2202,-2202,-2202,-2202,-2202
+    },
+
+    {
+       27,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,
+    -2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,
+    -2203,-2203,-2203,-2203,-2203,-2203,-2203, 2554,-2203,-2203,
+    -2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,
+    -2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,-2203,
+    -2203,-2203, 2554,-2203,-2203,-2203,-2203,-2203,-2203,-2203,
+    -2203,-2203,-2203,-2203,-2203
+    },
+
+    {
+       27,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,
+    -2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,
+
+    -2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,
+    -2204, 2555,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,
+    -2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,-2204,
+    -2204,-2204,-2204,-2204,-2204,-2204, 2555,-2204,-2204,-2204,
+    -2204,-2204,-2204,-2204,-2204
+    },
+
+    {
+       27,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,  928,
+    -2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,
+    -2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,
+    -2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,
+    -2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,
+
+    -2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,-2205,
+    -2205,-2205,-2205,-2205,-2205
+    },
+
+    {
+       27,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,
+    -2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,
+    -2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,
+    -2206,-2206,-2206, 2556,-2206,-2206,-2206,-2206,-2206,-2206,
+    -2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206,
+    -2206,-2206,-2206,-2206,-2206,-2206,-2206,-2206, 2556,-2206,
+    -2206,-2206,-2206,-2206,-2206
+    },
+
+    {
+       27,-2207, 2557, 2557,-2207,-2207,-2207,-2207,-2207,-2207,
+
+    -2207,-2207, 2558,-2207,-2207,-2207,-2207,-2207,-2207,-2207,
+    -2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,
+    -2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,
+    -2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,
+    -2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,-2207,
+    -2207,-2207,-2207,-2207,-2207
+    },
+
+    {
+       27,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,
+    -2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,
+    -2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,
+    -2208,-2208,-2208, 2559,-2208,-2208,-2208,-2208,-2208,-2208,
+
+    -2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208,
+    -2208,-2208,-2208,-2208,-2208,-2208,-2208,-2208, 2559,-2208,
+    -2208,-2208,-2208,-2208,-2208
+    },
+
+    {
+       27,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,
+    -2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,
+    -2209,-2209,-2209,-2209,-2209,-2209,-2209, 2560,-2209,-2209,
+    -2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,
+    -2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,-2209,
+    -2209,-2209, 2560,-2209,-2209,-2209,-2209,-2209,-2209,-2209,
+    -2209,-2209,-2209,-2209,-2209
+
+    },
+
+    {
+       27,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,
+    -2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,
+    -2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,
+    -2210,-2210,-2210, 2561,-2210,-2210,-2210,-2210,-2210,-2210,
+    -2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210,
+    -2210,-2210,-2210,-2210,-2210,-2210,-2210,-2210, 2561,-2210,
+    -2210,-2210,-2210,-2210,-2210
+    },
+
+    {
+       27,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,
+    -2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,
+    -2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,
+
+    -2211,-2211, 2562,-2211,-2211,-2211,-2211,-2211,-2211,-2211,
+    -2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,-2211,
+    -2211,-2211,-2211,-2211,-2211,-2211,-2211, 2562,-2211,-2211,
+    -2211,-2211,-2211,-2211,-2211
+    },
+
+    {
+       27,-2212, 2212, 2212,-2212,-2212,-2212,-2212,-2212,-2212,
+    -2212,-2212, 2213,-2212,-2212,-2212,-2212,-2212,-2212,-2212,
+    -2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,
+    -2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,
+    -2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,
+    -2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,-2212,
+
+    -2212,-2212,-2212,-2212,-2212
+    },
+
+    {
+       27,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,
+    -2213,-2213,-2213,-2213,-2213,-2213, 2563,-2213,-2213,-2213,
+    -2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,
+    -2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,
+    -2213,-2213, 2563,-2213,-2213,-2213,-2213,-2213,-2213,-2213,
+    -2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,-2213,
+    -2213,-2213,-2213,-2213,-2213
+    },
+
+    {
+       27,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,
+    -2214,-2214,-2214,-2214, 2564,-2214,-2214,-2214,-2214,-2214,
+
+    -2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,
+    -2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,
+     2564,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,
+    -2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,-2214,
+    -2214,-2214,-2214,-2214,-2214
+    },
+
+    {
+       27,-2215, 2215, 2215,-2215,-2215,-2215,-2215,-2215,-2215,
+    -2215,-2215, 2216,-2215,-2215,-2215,-2215,-2215,-2215,-2215,
+    -2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,
+    -2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,
+    -2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,
+
+    -2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,-2215,
+    -2215,-2215,-2215,-2215,-2215
+    },
+
+    {
+       27,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,
+    -2216,-2216,-2216,-2216,-2216,-2216, 2565,-2216,-2216,-2216,
+    -2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,
+    -2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,
+    -2216,-2216, 2565,-2216,-2216,-2216,-2216,-2216,-2216,-2216,
+    -2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,-2216,
+    -2216,-2216,-2216,-2216,-2216
+    },
+
+    {
+       27,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,
+
+    -2217,-2217,-2217,-2217, 2566,-2217,-2217,-2217,-2217,-2217,
+    -2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,
+    -2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,
+     2566,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,
+    -2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,-2217,
+    -2217,-2217,-2217,-2217,-2217
+    },
+
+    {
+       27,-2218, 2218, 2218,-2218,-2218,-2218,-2218,-2218,-2218,
+    -2218,-2218, 2219,-2218,-2218,-2218,-2218,-2218,-2218,-2218,
+    -2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,
+    -2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,
+
+    -2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,
+    -2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,-2218,
+    -2218,-2218,-2218,-2218,-2218
+    },
+
+    {
+       27,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,
+    -2219,-2219,-2219,-2219,-2219,-2219, 2567,-2219,-2219,-2219,
+    -2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,
+    -2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,
+    -2219,-2219, 2567,-2219,-2219,-2219,-2219,-2219,-2219,-2219,
+    -2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,-2219,
+    -2219,-2219,-2219,-2219,-2219
+
+    },
+
+    {
+       27,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,
+    -2220,-2220,-2220,-2220, 2568,-2220,-2220,-2220,-2220,-2220,
+    -2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,
+    -2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,
+     2568,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,
+    -2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,-2220,
+    -2220,-2220,-2220,-2220,-2220
+    },
+
+    {
+       27,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,
+    -2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,
+    -2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221, 2569,-2221,
+
+    -2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,
+    -2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,-2221,
+    -2221,-2221,-2221, 2569,-2221,-2221,-2221,-2221,-2221,-2221,
+    -2221,-2221,-2221,-2221,-2221
+    },
+
+    {
+       27,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,
+    -2222,-2222,-2222,-2222, 2570,-2222,-2222,-2222,-2222,-2222,
+    -2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,
+    -2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,
+     2570,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,
+    -2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,-2222,
+
+    -2222,-2222,-2222,-2222,-2222
+    },
+
+    {
+       27,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,
+    -2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,
+    -2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,
+    -2223, 2571,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,
+    -2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,-2223,
+    -2223,-2223,-2223,-2223,-2223,-2223, 2571,-2223,-2223,-2223,
+    -2223,-2223,-2223,-2223,-2223
+    },
+
+    {
+       27,-2224,-2224,-2224,-2224,-2224,-2224,-2224, 2572,-2224,
+    -2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,
+
+    -2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,
+    -2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,
+    -2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,
+    -2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,-2224,
+    -2224,-2224,-2224,-2224,-2224
+    },
+
+    {
+       27,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,
+    -2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,
+    -2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225, 2573,-2225,
+    -2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,
+    -2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,-2225,
+
+    -2225,-2225,-2225, 2573,-2225,-2225,-2225,-2225,-2225,-2225,
+    -2225,-2225,-2225,-2225,-2225
+    },
+
+    {
+       27,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,
+    -2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,
+    -2226,-2226,-2226,-2226,-2226,-2226,-2226, 2574,-2226,-2226,
+    -2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,
+    -2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,-2226,
+    -2226,-2226, 2574,-2226,-2226,-2226,-2226,-2226,-2226,-2226,
+    -2226,-2226,-2226,-2226,-2226
+    },
+
+    {
+       27,-2227, 2575, 2575,-2227,-2227,-2227,-2227,-2227,-2227,
+
+    -2227,-2227, 2576,-2227,-2227,-2227,-2227,-2227,-2227,-2227,
+    -2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,
+    -2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,
+    -2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,
+    -2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,-2227,
+    -2227,-2227,-2227,-2227,-2227
+    },
+
+    {
+       27,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,
+    -2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,
+    -2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,
+    -2228,-2228,-2228, 2577,-2228,-2228,-2228,-2228,-2228,-2228,
+
+    -2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228,
+    -2228,-2228,-2228,-2228,-2228,-2228,-2228,-2228, 2577,-2228,
+    -2228,-2228,-2228,-2228,-2228
+    },
+
+    {
+       27,-2229, 2578, 2578,-2229,-2229,-2229,-2229,-2229,-2229,
+    -2229,-2229, 2579,-2229,-2229,-2229,-2229,-2229,-2229,-2229,
+    -2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,
+    -2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,
+    -2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,
+    -2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,-2229,
+    -2229,-2229,-2229,-2229,-2229
+
+    },
+
+    {
+       27,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,
+    -2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,
+    -2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,
+    -2230,-2230,-2230, 2580,-2230,-2230,-2230,-2230,-2230,-2230,
+    -2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230,
+    -2230,-2230,-2230,-2230,-2230,-2230,-2230,-2230, 2580,-2230,
+    -2230,-2230,-2230,-2230,-2230
+    },
+
+    {
+       27,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,
+    -2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,
+    -2231,-2231,-2231,-2231,-2231,-2231,-2231, 2581,-2231,-2231,
+
+    -2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,
+    -2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,-2231,
+    -2231,-2231, 2581,-2231,-2231,-2231,-2231,-2231,-2231,-2231,
+    -2231,-2231,-2231,-2231,-2231
+    },
+
+    {
+       27,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,  945,
+    -2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,
+    -2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,
+    -2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,
+    -2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,
+    -2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,-2232,
+
+    -2232,-2232,-2232,-2232,-2232
+    },
+
+    {
+       27,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,
+    -2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,
+    -2233,-2233,-2233,-2233,-2233,-2233,-2233, 2582,-2233,-2233,
+    -2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,
+    -2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,-2233,
+    -2233,-2233, 2582,-2233,-2233,-2233,-2233,-2233,-2233,-2233,
+    -2233,-2233,-2233,-2233,-2233
+    },
+
+    {
+       27,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,  948,
+    -2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,
+
+    -2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,
+    -2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,
+    -2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,
+    -2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,-2234,
+    -2234,-2234,-2234,-2234,-2234
+    },
+
+    {
+       27,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,
+    -2235,-2235,-2235, 2583,-2235,-2235,-2235,-2235,-2235,-2235,
+    -2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,
+    -2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,
+    -2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,
+
+    -2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,-2235,
+    -2235,-2235,-2235,-2235,-2235
+    },
+
+    {
+       27,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,
+    -2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,
+    -2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,
+    -2236,-2236, 2584,-2236,-2236,-2236,-2236,-2236,-2236,-2236,
+    -2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,-2236,
+    -2236,-2236,-2236,-2236,-2236,-2236,-2236, 2584,-2236,-2236,
+    -2236,-2236,-2236,-2236,-2236
+    },
+
+    {
+       27,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,
+
+    -2237,-2237,-2237, 2585,-2237,-2237,-2237,-2237,-2237,-2237,
+    -2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,
+    -2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,
+    -2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,
+    -2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,-2237,
+    -2237,-2237,-2237,-2237,-2237
+    },
+
+    {
+       27,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,
+    -2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,
+    -2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,
+    -2238,-2238, 2586,-2238,-2238,-2238,-2238,-2238,-2238,-2238,
+
+    -2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,-2238,
+    -2238,-2238,-2238,-2238,-2238,-2238,-2238, 2586,-2238,-2238,
+    -2238,-2238,-2238,-2238,-2238
+    },
+
+    {
+       27,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,
+    -2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239, 2587,-2239,
+    -2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,
+    -2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,
+    -2239,-2239,-2239,-2239, 2587,-2239,-2239,-2239,-2239,-2239,
+    -2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,-2239,
+    -2239,-2239,-2239,-2239,-2239
+
+    },
+
+    {
+       27,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,
+    -2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,
+    -2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,
+    -2240, 2588,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,
+    -2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,-2240,
+    -2240,-2240,-2240,-2240,-2240,-2240, 2588,-2240,-2240,-2240,
+    -2240,-2240,-2240,-2240,-2240
+    },
+
+    {
+       27,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,  952,
+    -2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,
+    -2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,
+
+    -2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,
+    -2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,
+    -2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,-2241,
+    -2241,-2241,-2241,-2241,-2241
+    },
+
+    {
+       27,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,
+    -2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,
+    -2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242, 2589,-2242,
+    -2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,
+    -2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,-2242,
+    -2242,-2242,-2242, 2589,-2242,-2242,-2242,-2242,-2242,-2242,
+
+    -2242,-2242,-2242,-2242,-2242
+    },
+
+    {
+       27,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,
+    -2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,
+    -2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,
+    -2243, 2590,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,
+    -2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,-2243,
+    -2243,-2243,-2243,-2243,-2243,-2243, 2590,-2243,-2243,-2243,
+    -2243,-2243,-2243,-2243,-2243
+    },
+
+    {
+       27,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244, 2591,
+    -2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,
+
+    -2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,
+    -2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244, 2592,
+    -2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,
+    -2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,-2244,
+    -2244,-2244,-2244,-2244,-2244
+    },
+
+    {
+       27,-2245, 2245, 2245,-2245,-2245,-2245,-2245,-2245,-2245,
+    -2245,-2245, 2246,-2245,-2245,-2245,-2245,-2245,-2245,-2245,
+    -2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,
+    -2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,
+    -2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,
+
+    -2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,-2245,
+    -2245,-2245,-2245,-2245,-2245
+    },
+
+    {
+       27,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,
+    -2246,-2246,-2246,-2246,-2246,-2246, 2593,-2246,-2246,-2246,
+    -2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,
+    -2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,
+    -2246,-2246, 2593,-2246,-2246,-2246,-2246,-2246,-2246,-2246,
+    -2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,-2246,
+    -2246,-2246,-2246,-2246,-2246
+    },
+
+    {
+       27,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,
+
+    -2247,-2247,-2247,-2247, 2594,-2247,-2247,-2247,-2247,-2247,
+    -2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,
+    -2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,
+     2594,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,
+    -2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,-2247,
+    -2247,-2247,-2247,-2247,-2247
+    },
+
+    {
+       27,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,
+    -2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,
+    -2248,-2248,-2248,-2248,-2248,-2248,-2248, 2595,-2248,-2248,
+    -2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,
+
+    -2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,-2248,
+    -2248,-2248, 2595,-2248,-2248,-2248,-2248,-2248,-2248,-2248,
+    -2248,-2248,-2248,-2248,-2248
+    },
+
+    {
+       27,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,
+    -2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,
+    -2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,
+    -2249, 2596,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,
+    -2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,-2249,
+    -2249,-2249,-2249,-2249,-2249,-2249, 2596,-2249,-2249,-2249,
+    -2249,-2249,-2249,-2249,-2249
+
+    },
+
+    {
+       27,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,  957,
+    -2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,
+    -2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,
+    -2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,
+    -2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,
+    -2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,-2250,
+    -2250,-2250,-2250,-2250,-2250
+    },
+
+    {
+       27,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,
+    -2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,
+    -2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,
+
+    -2251,-2251,-2251, 2597,-2251,-2251,-2251,-2251,-2251,-2251,
+    -2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251,
+    -2251,-2251,-2251,-2251,-2251,-2251,-2251,-2251, 2597,-2251,
+    -2251,-2251,-2251,-2251,-2251
+    },
+
+    {
+       27,-2252, 2598, 2598,-2252,-2252,-2252,-2252,-2252,-2252,
+    -2252,-2252, 2599,-2252,-2252,-2252,-2252,-2252,-2252,-2252,
+    -2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,
+    -2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,
+    -2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,
+    -2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,-2252,
+
+    -2252,-2252,-2252,-2252,-2252
+    },
+
+    {
+       27,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,
+    -2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,
+    -2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,
+    -2253,-2253,-2253, 2600,-2253,-2253,-2253,-2253,-2253,-2253,
+    -2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253,
+    -2253,-2253,-2253,-2253,-2253,-2253,-2253,-2253, 2600,-2253,
+    -2253,-2253,-2253,-2253,-2253
+    },
+
+    {
+       27,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,
+    -2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,
+
+    -2254,-2254,-2254,-2254,-2254,-2254,-2254, 2601,-2254,-2254,
+    -2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,
+    -2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,-2254,
+    -2254,-2254, 2601,-2254,-2254,-2254,-2254,-2254,-2254,-2254,
+    -2254,-2254,-2254,-2254,-2254
+    },
+
+    {
+       27,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,
+    -2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,
+    -2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,
+    -2255,-2255,-2255, 2602,-2255,-2255,-2255,-2255,-2255,-2255,
+    -2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255,
+
+    -2255,-2255,-2255,-2255,-2255,-2255,-2255,-2255, 2602,-2255,
+    -2255,-2255,-2255,-2255,-2255
+    },
+
+    {
+       27,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,
+    -2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,
+    -2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,
+    -2256,-2256, 2603,-2256,-2256,-2256,-2256,-2256,-2256,-2256,
+    -2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,-2256,
+    -2256,-2256,-2256,-2256,-2256,-2256,-2256, 2603,-2256,-2256,
+    -2256,-2256,-2256,-2256,-2256
+    },
+
+    {
+       27,-2257, 2257, 2257,-2257,-2257,-2257,-2257,-2257,-2257,
+
+    -2257,-2257, 2258,-2257,-2257,-2257,-2257,-2257,-2257,-2257,
+    -2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,
+    -2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,
+    -2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,
+    -2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,-2257,
+    -2257,-2257,-2257,-2257,-2257
+    },
+
+    {
+       27,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,
+    -2258,-2258,-2258,-2258,-2258,-2258, 2604,-2258,-2258,-2258,
+    -2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,
+    -2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,
+
+    -2258,-2258, 2604,-2258,-2258,-2258,-2258,-2258,-2258,-2258,
+    -2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,-2258,
+    -2258,-2258,-2258,-2258,-2258
+    },
+
+    {
+       27,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,
+    -2259,-2259,-2259,-2259, 2605,-2259,-2259,-2259,-2259,-2259,
+    -2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,
+    -2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,
+     2605,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,
+    -2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,-2259,
+    -2259,-2259,-2259,-2259,-2259
+
+    },
+
+    {
+       27,-2260, 2260, 2260,-2260,-2260,-2260,-2260,-2260,-2260,
+    -2260,-2260, 2261,-2260,-2260,-2260,-2260,-2260,-2260,-2260,
+    -2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,
+    -2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,
+    -2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,
+    -2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,-2260,
+    -2260,-2260,-2260,-2260,-2260
+    },
+
+    {
+       27,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,
+    -2261,-2261,-2261,-2261,-2261,-2261, 2606,-2261,-2261,-2261,
+    -2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,
+
+    -2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,
+    -2261,-2261, 2606,-2261,-2261,-2261,-2261,-2261,-2261,-2261,
+    -2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,-2261,
+    -2261,-2261,-2261,-2261,-2261
+    },
+
+    {
+       27,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,
+    -2262,-2262,-2262,-2262, 2607,-2262,-2262,-2262,-2262,-2262,
+    -2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,
+    -2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,
+     2607,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,
+    -2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,-2262,
+
+    -2262,-2262,-2262,-2262,-2262
+    },
+
+    {
+       27,-2263, 2263, 2263,-2263,-2263,-2263,-2263,-2263,-2263,
+    -2263,-2263, 2264,-2263,-2263,-2263,-2263,-2263,-2263,-2263,
+    -2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,
+    -2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,
+    -2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,
+    -2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,-2263,
+    -2263,-2263,-2263,-2263,-2263
+    },
+
+    {
+       27,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,
+    -2264,-2264,-2264,-2264,-2264,-2264, 2608,-2264,-2264,-2264,
+
+    -2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,
+    -2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,
+    -2264,-2264, 2608,-2264,-2264,-2264,-2264,-2264,-2264,-2264,
+    -2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,-2264,
+    -2264,-2264,-2264,-2264,-2264
+    },
+
+    {
+       27,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,
+    -2265,-2265,-2265,-2265, 2609,-2265,-2265,-2265,-2265,-2265,
+    -2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,
+    -2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,
+     2609,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,
+
+    -2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,-2265,
+    -2265,-2265,-2265,-2265,-2265
+    },
+
+    {
+       27,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,
+    -2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,
+    -2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266, 2610,-2266,
+    -2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,
+    -2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,-2266,
+    -2266,-2266,-2266, 2610,-2266,-2266,-2266,-2266,-2266,-2266,
+    -2266,-2266,-2266,-2266,-2266
+    },
+
+    {
+       27,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,
+
+    -2267,-2267,-2267,-2267, 2611,-2267,-2267,-2267,-2267,-2267,
+    -2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,
+    -2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,
+     2611,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,
+    -2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,-2267,
+    -2267,-2267,-2267,-2267,-2267
+    },
+
+    {
+       27,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,
+    -2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,
+    -2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,
+    -2268, 2612,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,
+
+    -2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,-2268,
+    -2268,-2268,-2268,-2268,-2268,-2268, 2612,-2268,-2268,-2268,
+    -2268,-2268,-2268,-2268,-2268
+    },
+
+    {
+       27,-2269,-2269,-2269,-2269,-2269,-2269,-2269, 2613,-2269,
+    -2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,
+    -2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,
+    -2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,
+    -2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,
+    -2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,-2269,
+    -2269,-2269,-2269,-2269,-2269
+
+    },
+
+    {
+       27,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,
+    -2270,-2270,-2270, 2614,-2270,-2270,-2270,-2270,-2270,-2270,
+    -2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,
+    -2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270, 2615,
+    -2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,
+    -2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,-2270,
+    -2270,-2270,-2270,-2270,-2270
+    },
+
+    {
+       27,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,
+    -2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,
+    -2271,-2271,-2271,-2271,-2271,-2271,-2271, 2616,-2271,-2271,
+
+    -2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,
+    -2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,-2271,
+    -2271,-2271, 2616,-2271,-2271,-2271,-2271,-2271,-2271,-2271,
+    -2271,-2271,-2271,-2271,-2271
+    },
+
+    {
+       27,-2272, 2617, 2617,-2272,-2272,-2272,-2272,-2272,-2272,
+    -2272,-2272, 2618,-2272,-2272,-2272,-2272,-2272,-2272,-2272,
+    -2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,
+    -2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,
+    -2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,
+    -2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,-2272,
+
+    -2272,-2272,-2272,-2272,-2272
+    },
+
+    {
+       27,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,
+    -2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,
+    -2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,
+    -2273,-2273,-2273, 2619,-2273,-2273,-2273,-2273,-2273,-2273,
+    -2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273,
+    -2273,-2273,-2273,-2273,-2273,-2273,-2273,-2273, 2619,-2273,
+    -2273,-2273,-2273,-2273,-2273
+    },
+
+    {
+       27,-2274, 2620, 2620,-2274,-2274,-2274,-2274,-2274,-2274,
+    -2274,-2274, 2621,-2274,-2274,-2274,-2274,-2274,-2274,-2274,
+
+    -2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,
+    -2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,
+    -2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,
+    -2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,-2274,
+    -2274,-2274,-2274,-2274,-2274
+    },
+
+    {
+       27,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,
+    -2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,
+    -2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,
+    -2275,-2275,-2275, 2622,-2275,-2275,-2275,-2275,-2275,-2275,
+    -2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275,
+
+    -2275,-2275,-2275,-2275,-2275,-2275,-2275,-2275, 2622,-2275,
+    -2275,-2275,-2275,-2275,-2275
+    },
+
+    {
+       27,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,
+    -2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,
+    -2276,-2276,-2276,-2276,-2276,-2276,-2276, 2623,-2276,-2276,
+    -2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,
+    -2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,-2276,
+    -2276,-2276, 2623,-2276,-2276,-2276,-2276,-2276,-2276,-2276,
+    -2276,-2276,-2276,-2276,-2276
+    },
+
+    {
+       27,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,  974,
+
+    -2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,
+    -2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,
+    -2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,
+    -2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,
+    -2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,-2277,
+    -2277,-2277,-2277,-2277,-2277
+    },
+
+    {
+       27,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,
+    -2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,
+    -2278,-2278,-2278,-2278,-2278,-2278,-2278, 2624,-2278,-2278,
+    -2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,
+
+    -2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,-2278,
+    -2278,-2278, 2624,-2278,-2278,-2278,-2278,-2278,-2278,-2278,
+    -2278,-2278,-2278,-2278,-2278
+    },
+
+    {
+       27,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,  977,
+    -2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,
+    -2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,
+    -2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,
+    -2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,
+    -2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,-2279,
+    -2279,-2279,-2279,-2279,-2279
+
+    },
+
+    {
+       27,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,
+    -2280,-2280,-2280, 2625,-2280,-2280,-2280,-2280,-2280,-2280,
+    -2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,
+    -2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,
+    -2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,
+    -2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,-2280,
+    -2280,-2280,-2280,-2280,-2280
+    },
+
+    {
+       27,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,
+    -2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,
+    -2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,
+
+    -2281,-2281, 2626,-2281,-2281,-2281,-2281,-2281,-2281,-2281,
+    -2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,-2281,
+    -2281,-2281,-2281,-2281,-2281,-2281,-2281, 2626,-2281,-2281,
+    -2281,-2281,-2281,-2281,-2281
+    },
+
+    {
+       27,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,
+    -2282,-2282,-2282, 2627,-2282,-2282,-2282,-2282,-2282,-2282,
+    -2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,
+    -2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,
+    -2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,
+    -2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,-2282,
+
+    -2282,-2282,-2282,-2282,-2282
+    },
+
+    {
+       27,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,
+    -2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,
+    -2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,
+    -2283,-2283, 2628,-2283,-2283,-2283,-2283,-2283,-2283,-2283,
+    -2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,-2283,
+    -2283,-2283,-2283,-2283,-2283,-2283,-2283, 2628,-2283,-2283,
+    -2283,-2283,-2283,-2283,-2283
+    },
+
+    {
+       27,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,
+    -2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284, 2629,-2284,
+
+    -2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,
+    -2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,
+    -2284,-2284,-2284,-2284, 2629,-2284,-2284,-2284,-2284,-2284,
+    -2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,-2284,
+    -2284,-2284,-2284,-2284,-2284
+    },
+
+    {
+       27,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,
+    -2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,
+    -2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,
+    -2285, 2630,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,
+    -2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,-2285,
+
+    -2285,-2285,-2285,-2285,-2285,-2285, 2630,-2285,-2285,-2285,
+    -2285,-2285,-2285,-2285,-2285
+    },
+
+    {
+       27,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,  981,
+    -2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,
+    -2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,
+    -2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,
+    -2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,
+    -2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,-2286,
+    -2286,-2286,-2286,-2286,-2286
+    },
+
+    {
+       27,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,
+
+    -2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,
+    -2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287, 2631,-2287,
+    -2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,
+    -2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,-2287,
+    -2287,-2287,-2287, 2631,-2287,-2287,-2287,-2287,-2287,-2287,
+    -2287,-2287,-2287,-2287,-2287
+    },
+
+    {
+       27,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,
+    -2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,
+    -2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,
+    -2288, 2632,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,
+
+    -2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,-2288,
+    -2288,-2288,-2288,-2288,-2288,-2288, 2632,-2288,-2288,-2288,
+    -2288,-2288,-2288,-2288,-2288
+    },
+
+    {
+       27,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289, 2633,
+    -2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,
+    -2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,
+    -2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289, 2634,
+    -2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,
+    -2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,-2289,
+    -2289,-2289,-2289,-2289,-2289
+
+    },
+
+    {
+       27,-2290, 2290, 2290,-2290,-2290,-2290,-2290,-2290,-2290,
+    -2290,-2290, 2291,-2290,-2290,-2290,-2290,-2290,-2290,-2290,
+    -2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,
+    -2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,
+    -2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,
+    -2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,-2290,
+    -2290,-2290,-2290,-2290,-2290
+    },
+
+    {
+       27,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,
+    -2291,-2291,-2291,-2291,-2291,-2291, 2635,-2291,-2291,-2291,
+    -2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,
+
+    -2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,
+    -2291,-2291, 2635,-2291,-2291,-2291,-2291,-2291,-2291,-2291,
+    -2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,-2291,
+    -2291,-2291,-2291,-2291,-2291
+    },
+
+    {
+       27,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,
+    -2292,-2292,-2292,-2292, 2636,-2292,-2292,-2292,-2292,-2292,
+    -2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,
+    -2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,
+     2636,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,
+    -2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,-2292,
+
+    -2292,-2292,-2292,-2292,-2292
+    },
+
+    {
+       27,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,
+    -2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,
+    -2293,-2293,-2293,-2293,-2293,-2293,-2293, 2637,-2293,-2293,
+    -2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,
+    -2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,-2293,
+    -2293,-2293, 2637,-2293,-2293,-2293,-2293,-2293,-2293,-2293,
+    -2293,-2293,-2293,-2293,-2293
+    },
+
+    {
+       27,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,
+    -2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,
+
+    -2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,
+    -2294, 2638,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,
+    -2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,-2294,
+    -2294,-2294,-2294,-2294,-2294,-2294, 2638,-2294,-2294,-2294,
+    -2294,-2294,-2294,-2294,-2294
+    },
+
+    {
+       27,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,  986,
+    -2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,
+    -2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,
+    -2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,
+    -2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,
+
+    -2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,-2295,
+    -2295,-2295,-2295,-2295,-2295
+    },
+
+    {
+       27,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,
+    -2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,
+    -2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,
+    -2296,-2296,-2296, 2639,-2296,-2296,-2296,-2296,-2296,-2296,
+    -2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296,
+    -2296,-2296,-2296,-2296,-2296,-2296,-2296,-2296, 2639,-2296,
+    -2296,-2296,-2296,-2296,-2296
+    },
+
+    {
+       27,-2297, 2640, 2640,-2297,-2297,-2297,-2297,-2297,-2297,
+
+    -2297,-2297, 2641,-2297,-2297,-2297,-2297,-2297,-2297,-2297,
+    -2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,
+    -2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,
+    -2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,
+    -2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,-2297,
+    -2297,-2297,-2297,-2297,-2297
+    },
+
+    {
+       27,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,
+    -2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,
+    -2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,
+    -2298,-2298,-2298, 2642,-2298,-2298,-2298,-2298,-2298,-2298,
+
+    -2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298,
+    -2298,-2298,-2298,-2298,-2298,-2298,-2298,-2298, 2642,-2298,
+    -2298,-2298,-2298,-2298,-2298
+    },
+
+    {
+       27,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,
+    -2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,
+    -2299,-2299,-2299,-2299,-2299,-2299,-2299, 2643,-2299,-2299,
+    -2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,
+    -2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,-2299,
+    -2299,-2299, 2643,-2299,-2299,-2299,-2299,-2299,-2299,-2299,
+    -2299,-2299,-2299,-2299,-2299
+
+    },
+
+    {
+       27,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,
+    -2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,
+    -2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,
+    -2300,-2300,-2300, 2644,-2300,-2300,-2300,-2300,-2300,-2300,
+    -2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300,
+    -2300,-2300,-2300,-2300,-2300,-2300,-2300,-2300, 2644,-2300,
+    -2300,-2300,-2300,-2300,-2300
+    },
+
+    {
+       27,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,
+    -2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,
+    -2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,
+
+    -2301,-2301, 2645,-2301,-2301,-2301,-2301,-2301,-2301,-2301,
+    -2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,-2301,
+    -2301,-2301,-2301,-2301,-2301,-2301,-2301, 2645,-2301,-2301,
+    -2301,-2301,-2301,-2301,-2301
+    },
+
+    {
+       27,-2302, 2302, 2302,-2302,-2302,-2302,-2302,-2302,-2302,
+    -2302,-2302, 2303,-2302,-2302,-2302,-2302,-2302,-2302,-2302,
+    -2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,
+    -2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,
+    -2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,
+    -2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,-2302,
+
+    -2302,-2302,-2302,-2302,-2302
+    },
+
+    {
+       27,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,
+    -2303,-2303,-2303,-2303,-2303,-2303, 2646,-2303,-2303,-2303,
+    -2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,
+    -2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,
+    -2303,-2303, 2646,-2303,-2303,-2303,-2303,-2303,-2303,-2303,
+    -2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,-2303,
+    -2303,-2303,-2303,-2303,-2303
+    },
+
+    {
+       27,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,
+    -2304,-2304,-2304,-2304, 2647,-2304,-2304,-2304,-2304,-2304,
+
+    -2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,
+    -2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,
+     2647,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,
+    -2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,-2304,
+    -2304,-2304,-2304,-2304,-2304
+    },
+
+    {
+       27,-2305, 2305, 2305,-2305,-2305,-2305,-2305,-2305,-2305,
+    -2305,-2305, 2306,-2305,-2305,-2305,-2305,-2305,-2305,-2305,
+    -2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,
+    -2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,
+    -2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,
+
+    -2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,-2305,
+    -2305,-2305,-2305,-2305,-2305
+    },
+
+    {
+       27,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,
+    -2306,-2306,-2306,-2306,-2306,-2306, 2648,-2306,-2306,-2306,
+    -2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,
+    -2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,
+    -2306,-2306, 2648,-2306,-2306,-2306,-2306,-2306,-2306,-2306,
+    -2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,-2306,
+    -2306,-2306,-2306,-2306,-2306
+    },
+
+    {
+       27,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,
+
+    -2307,-2307,-2307,-2307, 2649,-2307,-2307,-2307,-2307,-2307,
+    -2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,
+    -2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,
+     2649,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,
+    -2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,-2307,
+    -2307,-2307,-2307,-2307,-2307
+    },
+
+    {
+       27,-2308, 2308, 2308,-2308,-2308,-2308,-2308,-2308,-2308,
+    -2308,-2308, 2309,-2308,-2308,-2308,-2308,-2308,-2308,-2308,
+    -2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,
+    -2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,
+
+    -2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,
+    -2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,-2308,
+    -2308,-2308,-2308,-2308,-2308
+    },
+
+    {
+       27,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,
+    -2309,-2309,-2309,-2309,-2309,-2309, 2650,-2309,-2309,-2309,
+    -2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,
+    -2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,
+    -2309,-2309, 2650,-2309,-2309,-2309,-2309,-2309,-2309,-2309,
+    -2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,-2309,
+    -2309,-2309,-2309,-2309,-2309
+
+    },
+
+    {
+       27,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,
+    -2310,-2310,-2310,-2310, 2651,-2310,-2310,-2310,-2310,-2310,
+    -2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,
+    -2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,
+     2651,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,
+    -2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,-2310,
+    -2310,-2310,-2310,-2310,-2310
+    },
+
+    {
+       27,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,
+    -2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,
+    -2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311, 2652,-2311,
+
+    -2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,
+    -2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,-2311,
+    -2311,-2311,-2311, 2652,-2311,-2311,-2311,-2311,-2311,-2311,
+    -2311,-2311,-2311,-2311,-2311
+    },
+
+    {
+       27,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,
+    -2312,-2312,-2312,-2312, 2653,-2312,-2312,-2312,-2312,-2312,
+    -2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,
+    -2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,
+     2653,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,
+    -2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,-2312,
+
+    -2312,-2312,-2312,-2312,-2312
+    },
+
+    {
+       27,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,
+    -2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,
+    -2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,
+    -2313, 2654,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,
+    -2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,-2313,
+    -2313,-2313,-2313,-2313,-2313,-2313, 2654,-2313,-2313,-2313,
+    -2313,-2313,-2313,-2313,-2313
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366, 2655,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366, 2655,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,
+    -2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,
+    -2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,
+    -2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,
+    -2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,
+
+    -2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,-2315,
+    -2315,-2315,-2315,-2315,-2315
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 2656,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, 2656,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,
+
+    -2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,
+    -2317,-2317,-2317,-2317,-2317,-2317,-2317, 2657,-2317,-2317,
+    -2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,
+    -2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,-2317,
+    -2317,-2317, 2657,-2317,-2317,-2317,-2317,-2317,-2317,-2317,
+    -2317,-2317,-2317,-2317,-2317
+    },
+
+    {
+       27,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,
+    -2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,
+    -2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,
+    -2318,-2318,-2318, 2658,-2318,-2318,-2318,-2318,-2318,-2318,
+
+    -2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318,
+    -2318,-2318,-2318,-2318,-2318,-2318,-2318,-2318, 2658,-2318,
+    -2318,-2318,-2318,-2318,-2318
+    },
+
+    {
+       27,-2319, 2319, 2319,-2319,-2319,-2319,-2319,-2319,-2319,
+    -2319,-2319, 2320,-2319,-2319,-2319,-2319,-2319,-2319,-2319,
+    -2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,
+    -2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,
+    -2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,
+    -2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,-2319,
+    -2319,-2319,-2319,-2319,-2319
+
+    },
+
+    {
+       27,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,
+    -2320,-2320,-2320,-2320,-2320,-2320, 2659,-2320,-2320,-2320,
+    -2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,
+    -2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,
+    -2320,-2320, 2659,-2320,-2320,-2320,-2320,-2320,-2320,-2320,
+    -2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,-2320,
+    -2320,-2320,-2320,-2320,-2320
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 2660,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2660,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2322, 2322, 2322,-2322,-2322,-2322,-2322,-2322,-2322,
+    -2322,-2322, 2323,-2322,-2322,-2322,-2322,-2322,-2322,-2322,
+    -2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,
+    -2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,
+    -2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,
+    -2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,-2322,
+
+    -2322,-2322,-2322,-2322,-2322
+    },
+
+    {
+       27,-2323,-2323,-2323,-2323,-2323,-2323,-2323,-2323,-2323,
+    -2323,-2323,-2323,-2323,-2323,-2323, 2661,-2323,-2323,-2323,
+    -2323,-2323,-2323,-2323,-2323,-2323,-2323,-2323,-2323, 2662,
+    -2323,-2323,-2323,-2323,-2323,-2323,-2323,-2323,-2323,-2323,
+    -2323,-2323, 2661,-2323,-2323,-2323,-2323,-2323,-2323,-2323,
+    -2323,-2323,-2323,-2323, 2662,-2323,-2323,-2323,-2323,-2323,
+    -2323,-2323,-2323,-2323,-2323
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 2663,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2663,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,
+    -2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,
+    -2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,
+    -2325,-2325,-2325, 2664,-2325,-2325,-2325,-2325,-2325,-2325,
+    -2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325,
+
+    -2325,-2325,-2325,-2325,-2325,-2325,-2325,-2325, 2664,-2325,
+    -2325,-2325,-2325,-2325,-2325
+    },
+
+    {
+       27,-2326, 2326, 2326,-2326,-2326,-2326,-2326,-2326,-2326,
+    -2326,-2326, 2327,-2326,-2326,-2326,-2326,-2326,-2326,-2326,
+    -2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,
+    -2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,
+    -2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,
+    -2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,-2326,
+    -2326,-2326,-2326,-2326,-2326
+    },
+
+    {
+       27,-2327,-2327,-2327,-2327,-2327,-2327,-2327,-2327,-2327,
+
+    -2327,-2327,-2327,-2327,-2327, 2665,-2327,-2327, 2666,-2327,
+    -2327,-2327,-2327,-2327,-2327,-2327,-2327,-2327,-2327,-2327,
+    -2327,-2327, 2667,-2327,-2327,-2327,-2327,-2327,-2327,-2327,
+    -2327, 2665,-2327,-2327, 2666,-2327,-2327,-2327,-2327,-2327,
+    -2327,-2327,-2327,-2327,-2327,-2327,-2327, 2667,-2327,-2327,
+    -2327,-2327,-2327,-2327,-2327
+    },
+
+    {
+       27,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,
+    -2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,
+    -2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,
+    -2328,-2328,-2328, 2668,-2328,-2328,-2328,-2328,-2328,-2328,
+
+    -2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328,
+    -2328,-2328,-2328,-2328,-2328,-2328,-2328,-2328, 2668,-2328,
+    -2328,-2328,-2328,-2328,-2328
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2669,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2669,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2670,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2670,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2331, 2671, 2671,-2331,-2331,-2331,-2331,-2331,-2331,
+    -2331,-2331, 2672,-2331,-2331,-2331,-2331,-2331,-2331,-2331,
+    -2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,
+
+    -2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,
+    -2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,
+    -2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,-2331,
+    -2331,-2331,-2331,-2331,-2331
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2673,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2673,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2333, 2674, 2674,-2333,-2333,-2333,-2333,-2333,-2333,
+    -2333,-2333, 2675,-2333,-2333,-2333,-2333,-2333,-2333,-2333,
+    -2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,
+    -2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,
+    -2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,
+    -2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,-2333,
+    -2333,-2333,-2333,-2333,-2333
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2676,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2676,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 2677,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 2678,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,
+    -2336,-2336,-2336,-2336, 2679,-2336,-2336,-2336,-2336,-2336,
+    -2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,
+    -2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,
+     2679,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,
+    -2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,-2336,
+    -2336,-2336,-2336,-2336,-2336
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185, 2680,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2680,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2681,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 2682,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2682,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,
+    -2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,
+    -2340,-2340,-2340,-2340,-2340,-2340,-2340, 2683,-2340,-2340,
+    -2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,
+    -2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,-2340,
+    -2340,-2340, 2683,-2340,-2340,-2340,-2340,-2340,-2340,-2340,
+    -2340,-2340,-2340,-2340,-2340
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1021,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 2684,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 2685,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 2685,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,
+    -2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,
+
+    -2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344, 2686,-2344,
+    -2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,
+    -2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,-2344,
+    -2344,-2344,-2344, 2686,-2344,-2344,-2344,-2344,-2344,-2344,
+    -2344,-2344,-2344,-2344,-2344
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 2687,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184, 2687,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,
+    -2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,
+    -2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,
+    -2346,-2346,-2346, 2688,-2346,-2346,-2346,-2346,-2346,-2346,
+    -2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346,
+    -2346,-2346,-2346,-2346,-2346,-2346,-2346,-2346, 2688,-2346,
+    -2346,-2346,-2346,-2346,-2346
+    },
+
+    {
+       27,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,
+
+    -2347,-2347,-2347,-2347, 2689,-2347,-2347,-2347,-2347,-2347,
+    -2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,
+    -2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,
+     2689,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,
+    -2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,-2347,
+    -2347,-2347,-2347,-2347,-2347
+    },
+
+    {
+       27,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,
+    -2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348, 2690,-2348,
+    -2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,
+    -2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,
+
+    -2348,-2348,-2348,-2348, 2690,-2348,-2348,-2348,-2348,-2348,
+    -2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,-2348,
+    -2348,-2348,-2348,-2348,-2348
+    },
+
+    {
+       27,-2349, 2349, 2349,-2349,-2349,-2349,-2349,-2349,-2349,
+    -2349,-2349, 2350,-2349,-2349,-2349,-2349,-2349,-2349,-2349,
+    -2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,
+    -2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,
+    -2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,
+    -2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,-2349,
+    -2349,-2349,-2349,-2349,-2349
+
+    },
+
+    {
+       27,-2350,-2350,-2350,-2350,-2350,-2350,-2350,-2350,-2350,
+    -2350,-2350,-2350,-2350,-2350,-2350, 2691,-2350,-2350,-2350,
+    -2350,-2350,-2350,-2350,-2350,-2350,-2350,-2350,-2350, 2692,
+    -2350,-2350,-2350,-2350,-2350,-2350,-2350,-2350,-2350,-2350,
+    -2350,-2350, 2691,-2350,-2350,-2350,-2350,-2350,-2350,-2350,
+    -2350,-2350,-2350,-2350, 2692,-2350,-2350,-2350,-2350,-2350,
+    -2350,-2350,-2350,-2350,-2350
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 2693,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     2693,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 2694,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 2695,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184, 2696,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 2696,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184, 2697,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 2698,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 2697,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 2698,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,
+    -2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,
+    -2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355, 2699,-2355,
+    -2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,
+    -2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,-2355,
+
+    -2355,-2355,-2355, 2699,-2355,-2355,-2355,-2355,-2355,-2355,
+    -2355,-2355,-2355,-2355,-2355
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 2700,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2700,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,
+
+    -2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,
+    -2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357, 2701,-2357,
+    -2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,
+    -2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,-2357,
+    -2357,-2357,-2357, 2701,-2357,-2357,-2357,-2357,-2357,-2357,
+    -2357,-2357,-2357,-2357,-2357
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 2702,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2702,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,
+    -2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,
+    -2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359, 2703,-2359,
+    -2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,
+    -2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,-2359,
+    -2359,-2359,-2359, 2703,-2359,-2359,-2359,-2359,-2359,-2359,
+    -2359,-2359,-2359,-2359,-2359
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 2704,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2704,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184, 2705,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 2705,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,
+    -2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,
+    -2362,-2362,-2362,-2362,-2362,-2362,-2362, 2706,-2362,-2362,
+    -2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,
+    -2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,-2362,
+    -2362,-2362, 2706,-2362,-2362,-2362,-2362,-2362,-2362,-2362,
+
+    -2362,-2362,-2362,-2362,-2362
+    },
+
+    {
+       27,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,
+    -2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,
+    -2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,
+    -2363, 2707,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,
+    -2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,-2363,
+    -2363,-2363,-2363,-2363,-2363,-2363, 2707,-2363,-2363,-2363,
+    -2363,-2363,-2363,-2363,-2363
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1038,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,
+    -2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,
+    -2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,
+    -2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,
+    -2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,
+
+    -2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,-2365,
+    -2365,-2365,-2365,-2365,-2365
+    },
+
+    {
+       27,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,
+    -2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,
+    -2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,
+    -2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,
+    -2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,
+    -2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,-2366,
+    -2366,-2366,-2366,-2366,-2366
+    },
+
+    {
+       27,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,
+
+    -2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,
+    -2367,-2367,-2367,-2367,-2367,-2367,-2367, 2708,-2367,-2367,
+    -2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,
+    -2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,-2367,
+    -2367,-2367, 2708,-2367,-2367,-2367,-2367,-2367,-2367,-2367,
+    -2367,-2367,-2367,-2367,-2367
+    },
+
+    {
+       27,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,
+    -2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,
+    -2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,
+    -2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,
+
+    -2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,
+    -2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,-2368,
+    -2368,-2368,-2368,-2368,-2368
+    },
+
+    {
+       27,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,
+    -2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,
+    -2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,
+    -2369,-2369,-2369, 2709,-2369,-2369,-2369,-2369,-2369,-2369,
+    -2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369,
+    -2369,-2369,-2369,-2369,-2369,-2369,-2369,-2369, 2709,-2369,
+    -2369,-2369,-2369,-2369,-2369
+
+    },
+
+    {
+       27,-2370, 2370, 2370,-2370,-2370,-2370,-2370,-2370,-2370,
+    -2370,-2370, 2371,-2370,-2370,-2370,-2370,-2370,-2370,-2370,
+    -2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,
+    -2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,
+    -2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,
+    -2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,-2370,
+    -2370,-2370,-2370,-2370,-2370
+    },
+
+    {
+       27,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,
+    -2371,-2371,-2371,-2371,-2371,-2371, 2710,-2371,-2371,-2371,
+    -2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,
+
+    -2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,
+    -2371,-2371, 2710,-2371,-2371,-2371,-2371,-2371,-2371,-2371,
+    -2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,-2371,
+    -2371,-2371,-2371,-2371,-2371
+    },
+
+    {
+       27,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,
+    -2372,-2372,-2372,-2372, 2711,-2372,-2372,-2372,-2372,-2372,
+    -2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,
+    -2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,
+     2711,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,
+    -2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,-2372,
+
+    -2372,-2372,-2372,-2372,-2372
+    },
+
+    {
+       27,-2373, 2373, 2373,-2373,-2373,-2373,-2373,-2373,-2373,
+    -2373,-2373, 2374,-2373,-2373,-2373,-2373,-2373,-2373,-2373,
+    -2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,
+    -2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,
+    -2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,
+    -2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,-2373,
+    -2373,-2373,-2373,-2373,-2373
+    },
+
+    {
+       27,-2374,-2374,-2374,-2374,-2374,-2374,-2374,-2374,-2374,
+    -2374,-2374,-2374,-2374,-2374,-2374, 2712,-2374,-2374,-2374,
+
+    -2374,-2374,-2374,-2374,-2374,-2374,-2374,-2374,-2374, 2713,
+    -2374,-2374,-2374,-2374,-2374,-2374,-2374,-2374,-2374,-2374,
+    -2374,-2374, 2712,-2374,-2374,-2374,-2374,-2374,-2374,-2374,
+    -2374,-2374,-2374,-2374, 2713,-2374,-2374,-2374,-2374,-2374,
+    -2374,-2374,-2374,-2374,-2374
+    },
+
+    {
+       27,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,
+    -2375,-2375,-2375,-2375, 2714,-2375,-2375,-2375,-2375,-2375,
+    -2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,
+    -2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,
+     2714,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,
+
+    -2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,-2375,
+    -2375,-2375,-2375,-2375,-2375
+    },
+
+    {
+       27,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,
+    -2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,
+    -2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,
+    -2376,-2376,-2376, 2715,-2376,-2376,-2376,-2376,-2376,-2376,
+    -2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376,
+    -2376,-2376,-2376,-2376,-2376,-2376,-2376,-2376, 2715,-2376,
+    -2376,-2376,-2376,-2376,-2376
+    },
+
+    {
+       27,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,
+
+    -2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,
+    -2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,
+    -2377,-2377,-2377, 2716,-2377,-2377,-2377,-2377,-2377,-2377,
+    -2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377,
+    -2377,-2377,-2377,-2377,-2377,-2377,-2377,-2377, 2716,-2377,
+    -2377,-2377,-2377,-2377,-2377
+    },
+
+    {
+       27,-2378, 2717, 2717,-2378,-2378,-2378,-2378,-2378,-2378,
+    -2378,-2378, 2718,-2378,-2378,-2378,-2378,-2378,-2378,-2378,
+    -2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,
+    -2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,
+
+    -2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,
+    -2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,-2378,
+    -2378,-2378,-2378,-2378,-2378
+    },
+
+    {
+       27,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,
+    -2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,
+    -2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,
+    -2379,-2379,-2379, 2719,-2379,-2379,-2379,-2379,-2379,-2379,
+    -2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379,
+    -2379,-2379,-2379,-2379,-2379,-2379,-2379,-2379, 2719,-2379,
+    -2379,-2379,-2379,-2379,-2379
+
+    },
+
+    {
+       27,-2380, 2720, 2720,-2380,-2380,-2380,-2380,-2380,-2380,
+    -2380,-2380, 2721,-2380,-2380,-2380,-2380,-2380,-2380,-2380,
+    -2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,
+    -2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,
+    -2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,
+    -2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,-2380,
+    -2380,-2380,-2380,-2380,-2380
+    },
+
+    {
+       27,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,
+    -2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,
+    -2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,
+
+    -2381,-2381,-2381, 2722,-2381,-2381,-2381,-2381,-2381,-2381,
+    -2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381,
+    -2381,-2381,-2381,-2381,-2381,-2381,-2381,-2381, 2722,-2381,
+    -2381,-2381,-2381,-2381,-2381
+    },
+
+    {
+       27,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382, 2723,
+    -2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,
+    -2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,
+    -2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382, 2724,
+    -2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,
+    -2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,-2382,
+
+    -2382,-2382,-2382,-2382,-2382
+    },
+
+    {
+       27,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,
+    -2383,-2383,-2383,-2383, 2725,-2383,-2383,-2383,-2383,-2383,
+    -2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,
+    -2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,
+     2725,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,
+    -2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,-2383,
+    -2383,-2383,-2383,-2383,-2383
+    },
+
+    {
+       27,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,
+    -2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,
+
+    -2384,-2384,-2384,-2384,-2384,-2384,-2384, 2726,-2384,-2384,
+    -2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,
+    -2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,-2384,
+    -2384,-2384, 2726,-2384,-2384,-2384,-2384,-2384,-2384,-2384,
+    -2384,-2384,-2384,-2384,-2384
+    },
+
+    {
+       27,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385, 1060,
+    -2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,
+    -2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,
+    -2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,
+    -2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,
+
+    -2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,-2385,
+    -2385,-2385,-2385,-2385,-2385
+    },
+
+    {
+       27,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,
+    -2386,-2386,-2386, 2727,-2386,-2386,-2386,-2386,-2386,-2386,
+    -2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,
+    -2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,
+    -2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,
+    -2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,-2386,
+    -2386,-2386,-2386,-2386,-2386
+    },
+
+    {
+       27,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,
+
+    -2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,
+    -2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,
+    -2387,-2387, 2728,-2387,-2387,-2387,-2387,-2387,-2387,-2387,
+    -2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,-2387,
+    -2387,-2387,-2387,-2387,-2387,-2387,-2387, 2728,-2387,-2387,
+    -2387,-2387,-2387,-2387,-2387
+    },
+
+    {
+       27,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,
+    -2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,
+    -2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388, 2729,-2388,
+    -2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,
+
+    -2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,-2388,
+    -2388,-2388,-2388, 2729,-2388,-2388,-2388,-2388,-2388,-2388,
+    -2388,-2388,-2388,-2388,-2388
+    },
+
+    {
+       27,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,
+    -2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,
+    -2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,
+    -2389, 2730,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,
+    -2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,-2389,
+    -2389,-2389,-2389,-2389,-2389,-2389, 2730,-2389,-2389,-2389,
+    -2389,-2389,-2389,-2389,-2389
+
+    },
+
+    {
+       27,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,
+    -2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,
+    -2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,
+    -2390,-2390,-2390, 2731,-2390,-2390,-2390,-2390,-2390,-2390,
+    -2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390,
+    -2390,-2390,-2390,-2390,-2390,-2390,-2390,-2390, 2731,-2390,
+    -2390,-2390,-2390,-2390,-2390
+    },
+
+    {
+       27,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,
+    -2391,-2391,-2391,-2391, 2732,-2391,-2391,-2391,-2391,-2391,
+    -2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,
+
+    -2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,
+     2732,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,
+    -2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,-2391,
+    -2391,-2391,-2391,-2391,-2391
+    },
+
+    {
+       27,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,
+    -2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392, 2733,-2392,
+    -2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,
+    -2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,
+    -2392,-2392,-2392,-2392, 2733,-2392,-2392,-2392,-2392,-2392,
+    -2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,-2392,
+
+    -2392,-2392,-2392,-2392,-2392
+    },
+
+    {
+       27,-2393, 2393, 2393,-2393,-2393,-2393,-2393,-2393,-2393,
+    -2393,-2393, 2394,-2393,-2393,-2393,-2393,-2393,-2393,-2393,
+    -2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,
+    -2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,
+    -2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,
+    -2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,-2393,
+    -2393,-2393,-2393,-2393,-2393
+    },
+
+    {
+       27,-2394,-2394,-2394,-2394,-2394,-2394,-2394,-2394,-2394,
+    -2394,-2394,-2394,-2394,-2394,-2394, 2734,-2394,-2394,-2394,
+
+    -2394,-2394,-2394,-2394,-2394,-2394,-2394,-2394,-2394, 2735,
+    -2394,-2394,-2394,-2394,-2394,-2394,-2394,-2394,-2394,-2394,
+    -2394,-2394, 2734,-2394,-2394,-2394,-2394,-2394,-2394,-2394,
+    -2394,-2394,-2394,-2394, 2735,-2394,-2394,-2394,-2394,-2394,
+    -2394,-2394,-2394,-2394,-2394
+    },
+
+    {
+       27,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,
+    -2395,-2395,-2395,-2395, 2736,-2395,-2395,-2395,-2395,-2395,
+    -2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,
+    -2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,
+     2736,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,
+
+    -2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,-2395,
+    -2395,-2395,-2395,-2395,-2395
+    },
+
+    {
+       27,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396, 2737,
+    -2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,
+    -2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,
+    -2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396, 2738,
+    -2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,
+    -2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,-2396,
+    -2396,-2396,-2396,-2396,-2396
+    },
+
+    {
+       27,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,
+
+    -2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,
+    -2397,-2397, 2739,-2397,-2397,-2397,-2397,-2397,-2397,-2397,
+    -2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,
+    -2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397, 2739,-2397,
+    -2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,-2397,
+    -2397,-2397,-2397,-2397,-2397
+    },
+
+    {
+       27,-2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398,
+    -2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398, 2740,-2398,
+    -2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398,
+    -2398,-2398,-2398,-2398, 2741,-2398,-2398,-2398,-2398,-2398,
+
+    -2398,-2398,-2398,-2398, 2740,-2398,-2398,-2398,-2398,-2398,
+    -2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398,-2398, 2741,
+    -2398,-2398,-2398,-2398,-2398
+    },
+
+    {
+       27,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,
+    -2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,
+    -2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399, 2742,-2399,
+    -2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,
+    -2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,-2399,
+    -2399,-2399,-2399, 2742,-2399,-2399,-2399,-2399,-2399,-2399,
+    -2399,-2399,-2399,-2399,-2399
+
+    },
+
+    {
+       27,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,
+    -2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,
+    -2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,
+    -2400, 2743,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,
+    -2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,-2400,
+    -2400,-2400,-2400,-2400,-2400,-2400, 2743,-2400,-2400,-2400,
+    -2400,-2400,-2400,-2400,-2400
+    },
+
+    {
+       27,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,
+    -2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,
+    -2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401, 2744,-2401,
+
+    -2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,
+    -2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,-2401,
+    -2401,-2401,-2401, 2744,-2401,-2401,-2401,-2401,-2401,-2401,
+    -2401,-2401,-2401,-2401,-2401
+    },
+
+    {
+       27,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,
+    -2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,
+    -2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,
+    -2402, 2745,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,
+    -2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,-2402,
+    -2402,-2402,-2402,-2402,-2402,-2402, 2745,-2402,-2402,-2402,
+
+    -2402,-2402,-2402,-2402,-2402
+    },
+
+    {
+       27,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,
+    -2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,
+    -2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403, 2746,-2403,
+    -2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,
+    -2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,-2403,
+    -2403,-2403,-2403, 2746,-2403,-2403,-2403,-2403,-2403,-2403,
+    -2403,-2403,-2403,-2403,-2403
+    },
+
+    {
+       27,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,
+    -2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,
+
+    -2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,
+    -2404, 2747,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,
+    -2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,-2404,
+    -2404,-2404,-2404,-2404,-2404,-2404, 2747,-2404,-2404,-2404,
+    -2404,-2404,-2404,-2404,-2404
+    },
+
+    {
+       27,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,
+    -2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,
+    -2405,-2405,-2405,-2405,-2405,-2405,-2405, 2748,-2405,-2405,
+    -2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,
+    -2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,-2405,
+
+    -2405,-2405, 2748,-2405,-2405,-2405,-2405,-2405,-2405,-2405,
+    -2405,-2405,-2405,-2405,-2405
+    },
+
+    {
+       27,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,
+    -2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,
+    -2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,
+    -2406, 2749,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,
+    -2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,-2406,
+    -2406,-2406,-2406,-2406,-2406,-2406, 2749,-2406,-2406,-2406,
+    -2406,-2406,-2406,-2406,-2406
+    },
+
+    {
+       27,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407, 1075,
+
+    -2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,
+    -2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,
+    -2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,
+    -2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,
+    -2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,-2407,
+    -2407,-2407,-2407,-2407,-2407
+    },
+
+    {
+       27,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,
+    -2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,
+    -2408,-2408,-2408,-2408,-2408,-2408,-2408, 2750,-2408,-2408,
+    -2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,
+
+    -2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,-2408,
+    -2408,-2408, 2750,-2408,-2408,-2408,-2408,-2408,-2408,-2408,
+    -2408,-2408,-2408,-2408,-2408
+    },
+
+    {
+       27,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,
+    -2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,
+    -2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,
+    -2409,-2409,-2409, 2751,-2409,-2409,-2409,-2409,-2409,-2409,
+    -2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409,
+    -2409,-2409,-2409,-2409,-2409,-2409,-2409,-2409, 2751,-2409,
+    -2409,-2409,-2409,-2409,-2409
+
+    },
+
+    {
+       27,-2410, 2410, 2410,-2410,-2410,-2410,-2410,-2410,-2410,
+    -2410,-2410, 2411,-2410,-2410,-2410,-2410,-2410,-2410,-2410,
+    -2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,
+    -2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,
+    -2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,
+    -2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,-2410,
+    -2410,-2410,-2410,-2410,-2410
+    },
+
+    {
+       27,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,
+    -2411,-2411,-2411,-2411,-2411,-2411, 2752,-2411,-2411,-2411,
+    -2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,
+
+    -2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,
+    -2411,-2411, 2752,-2411,-2411,-2411,-2411,-2411,-2411,-2411,
+    -2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,-2411,
+    -2411,-2411,-2411,-2411,-2411
+    },
+
+    {
+       27,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,
+    -2412,-2412,-2412,-2412, 2753,-2412,-2412,-2412,-2412,-2412,
+    -2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,
+    -2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,
+     2753,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,
+    -2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,-2412,
+
+    -2412,-2412,-2412,-2412,-2412
+    },
+
+    {
+       27,-2413, 2413, 2413,-2413,-2413,-2413,-2413,-2413,-2413,
+    -2413,-2413, 2414,-2413,-2413,-2413,-2413,-2413,-2413,-2413,
+    -2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,
+    -2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,
+    -2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,
+    -2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,-2413,
+    -2413,-2413,-2413,-2413,-2413
+    },
+
+    {
+       27,-2414,-2414,-2414,-2414,-2414,-2414,-2414,-2414,-2414,
+    -2414,-2414,-2414,-2414,-2414,-2414, 2754,-2414,-2414,-2414,
+
+    -2414,-2414,-2414,-2414,-2414,-2414,-2414,-2414,-2414, 2755,
+    -2414,-2414,-2414,-2414,-2414,-2414,-2414,-2414,-2414,-2414,
+    -2414,-2414, 2754,-2414,-2414,-2414,-2414,-2414,-2414,-2414,
+    -2414,-2414,-2414,-2414, 2755,-2414,-2414,-2414,-2414,-2414,
+    -2414,-2414,-2414,-2414,-2414
+    },
+
+    {
+       27,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,
+    -2415,-2415,-2415,-2415, 2756,-2415,-2415,-2415,-2415,-2415,
+    -2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,
+    -2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,
+     2756,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,
+
+    -2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,-2415,
+    -2415,-2415,-2415,-2415,-2415
+    },
+
+    {
+       27,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,
+    -2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,
+    -2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,
+    -2416,-2416,-2416, 2757,-2416,-2416,-2416,-2416,-2416,-2416,
+    -2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416,
+    -2416,-2416,-2416,-2416,-2416,-2416,-2416,-2416, 2757,-2416,
+    -2416,-2416,-2416,-2416,-2416
+    },
+
+    {
+       27,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,
+
+    -2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,
+    -2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,
+    -2417,-2417,-2417, 2758,-2417,-2417,-2417,-2417,-2417,-2417,
+    -2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417,
+    -2417,-2417,-2417,-2417,-2417,-2417,-2417,-2417, 2758,-2417,
+    -2417,-2417,-2417,-2417,-2417
+    },
+
+    {
+       27,-2418, 2759, 2759,-2418,-2418,-2418,-2418,-2418,-2418,
+    -2418,-2418, 2760,-2418,-2418,-2418,-2418,-2418,-2418,-2418,
+    -2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,
+    -2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,
+
+    -2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,
+    -2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,-2418,
+    -2418,-2418,-2418,-2418,-2418
+    },
+
+    {
+       27,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,
+    -2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,
+    -2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,
+    -2419,-2419,-2419, 2761,-2419,-2419,-2419,-2419,-2419,-2419,
+    -2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419,
+    -2419,-2419,-2419,-2419,-2419,-2419,-2419,-2419, 2761,-2419,
+    -2419,-2419,-2419,-2419,-2419
+
+    },
+
+    {
+       27,-2420, 2762, 2762,-2420,-2420,-2420,-2420,-2420,-2420,
+    -2420,-2420, 2763,-2420,-2420,-2420,-2420,-2420,-2420,-2420,
+    -2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,
+    -2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,
+    -2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,
+    -2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,-2420,
+    -2420,-2420,-2420,-2420,-2420
+    },
+
+    {
+       27,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,
+    -2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,
+    -2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,
+
+    -2421,-2421,-2421, 2764,-2421,-2421,-2421,-2421,-2421,-2421,
+    -2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421,
+    -2421,-2421,-2421,-2421,-2421,-2421,-2421,-2421, 2764,-2421,
+    -2421,-2421,-2421,-2421,-2421
+    },
+
+    {
+       27,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422, 2765,
+    -2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,
+    -2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,
+    -2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422, 2766,
+    -2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,
+    -2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,-2422,
+
+    -2422,-2422,-2422,-2422,-2422
+    },
+
+    {
+       27,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,
+    -2423,-2423,-2423,-2423, 2767,-2423,-2423,-2423,-2423,-2423,
+    -2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,
+    -2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,
+     2767,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,
+    -2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,-2423,
+    -2423,-2423,-2423,-2423,-2423
+    },
+
+    {
+       27,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,
+    -2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,
+
+    -2424,-2424,-2424,-2424,-2424,-2424,-2424, 2768,-2424,-2424,
+    -2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,
+    -2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,-2424,
+    -2424,-2424, 2768,-2424,-2424,-2424,-2424,-2424,-2424,-2424,
+    -2424,-2424,-2424,-2424,-2424
+    },
+
+    {
+       27,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425, 1092,
+    -2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,
+    -2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,
+    -2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,
+    -2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,
+
+    -2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,-2425,
+    -2425,-2425,-2425,-2425,-2425
+    },
+
+    {
+       27,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,
+    -2426,-2426,-2426, 2769,-2426,-2426,-2426,-2426,-2426,-2426,
+    -2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,
+    -2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,
+    -2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,
+    -2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,-2426,
+    -2426,-2426,-2426,-2426,-2426
+    },
+
+    {
+       27,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,
+
+    -2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,
+    -2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,
+    -2427,-2427, 2770,-2427,-2427,-2427,-2427,-2427,-2427,-2427,
+    -2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,-2427,
+    -2427,-2427,-2427,-2427,-2427,-2427,-2427, 2770,-2427,-2427,
+    -2427,-2427,-2427,-2427,-2427
+    },
+
+    {
+       27,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,
+    -2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,
+    -2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428, 2771,-2428,
+    -2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,
+
+    -2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,-2428,
+    -2428,-2428,-2428, 2771,-2428,-2428,-2428,-2428,-2428,-2428,
+    -2428,-2428,-2428,-2428,-2428
+    },
+
+    {
+       27,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,
+    -2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,
+    -2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,
+    -2429, 2772,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,
+    -2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,-2429,
+    -2429,-2429,-2429,-2429,-2429,-2429, 2772,-2429,-2429,-2429,
+    -2429,-2429,-2429,-2429,-2429
+
+    },
+
+    {
+       27,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,
+    -2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,
+    -2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,
+    -2430,-2430,-2430, 2773,-2430,-2430,-2430,-2430,-2430,-2430,
+    -2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430,
+    -2430,-2430,-2430,-2430,-2430,-2430,-2430,-2430, 2773,-2430,
+    -2430,-2430,-2430,-2430,-2430
+    },
+
+    {
+       27,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,
+    -2431,-2431,-2431,-2431, 2774,-2431,-2431,-2431,-2431,-2431,
+    -2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,
+
+    -2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,
+     2774,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,
+    -2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,-2431,
+    -2431,-2431,-2431,-2431,-2431
+    },
+
+    {
+       27,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,
+    -2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432, 2775,-2432,
+    -2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,
+    -2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,
+    -2432,-2432,-2432,-2432, 2775,-2432,-2432,-2432,-2432,-2432,
+    -2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,-2432,
+
+    -2432,-2432,-2432,-2432,-2432
+    },
+
+    {
+       27,-2433, 2433, 2433,-2433,-2433,-2433,-2433,-2433,-2433,
+    -2433,-2433, 2434,-2433,-2433,-2433,-2433,-2433,-2433,-2433,
+    -2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,
+    -2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,
+    -2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,
+    -2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,-2433,
+    -2433,-2433,-2433,-2433,-2433
+    },
+
+    {
+       27,-2434,-2434,-2434,-2434,-2434,-2434,-2434,-2434,-2434,
+    -2434,-2434,-2434,-2434,-2434,-2434, 2776,-2434,-2434,-2434,
+
+    -2434,-2434,-2434,-2434,-2434,-2434,-2434,-2434,-2434, 2777,
+    -2434,-2434,-2434,-2434,-2434,-2434,-2434,-2434,-2434,-2434,
+    -2434,-2434, 2776,-2434,-2434,-2434,-2434,-2434,-2434,-2434,
+    -2434,-2434,-2434,-2434, 2777,-2434,-2434,-2434,-2434,-2434,
+    -2434,-2434,-2434,-2434,-2434
+    },
+
+    {
+       27,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,
+    -2435,-2435,-2435,-2435, 2778,-2435,-2435,-2435,-2435,-2435,
+    -2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,
+    -2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,
+     2778,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,
+
+    -2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,-2435,
+    -2435,-2435,-2435,-2435,-2435
+    },
+
+    {
+       27,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436, 2779,
+    -2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,
+    -2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,
+    -2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436, 2780,
+    -2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,
+    -2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,-2436,
+    -2436,-2436,-2436,-2436,-2436
+    },
+
+    {
+       27,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,
+
+    -2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,
+    -2437,-2437, 2781,-2437,-2437,-2437,-2437,-2437,-2437,-2437,
+    -2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,
+    -2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437, 2781,-2437,
+    -2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,-2437,
+    -2437,-2437,-2437,-2437,-2437
+    },
+
+    {
+       27,-2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438,
+    -2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438, 2782,-2438,
+    -2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438,
+    -2438,-2438,-2438,-2438, 2783,-2438,-2438,-2438,-2438,-2438,
+
+    -2438,-2438,-2438,-2438, 2782,-2438,-2438,-2438,-2438,-2438,
+    -2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438,-2438, 2783,
+    -2438,-2438,-2438,-2438,-2438
+    },
+
+    {
+       27,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,
+    -2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,
+    -2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439, 2784,-2439,
+    -2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,
+    -2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,-2439,
+    -2439,-2439,-2439, 2784,-2439,-2439,-2439,-2439,-2439,-2439,
+    -2439,-2439,-2439,-2439,-2439
+
+    },
+
+    {
+       27,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,
+    -2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,
+    -2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,
+    -2440, 2785,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,
+    -2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,-2440,
+    -2440,-2440,-2440,-2440,-2440,-2440, 2785,-2440,-2440,-2440,
+    -2440,-2440,-2440,-2440,-2440
+    },
+
+    {
+       27,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,
+    -2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,
+    -2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441, 2786,-2441,
+
+    -2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,
+    -2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,-2441,
+    -2441,-2441,-2441, 2786,-2441,-2441,-2441,-2441,-2441,-2441,
+    -2441,-2441,-2441,-2441,-2441
+    },
+
+    {
+       27,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,
+    -2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,
+    -2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,
+    -2442, 2787,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,
+    -2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,-2442,
+    -2442,-2442,-2442,-2442,-2442,-2442, 2787,-2442,-2442,-2442,
+
+    -2442,-2442,-2442,-2442,-2442
+    },
+
+    {
+       27,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,
+    -2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,
+    -2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443, 2788,-2443,
+    -2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,
+    -2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,-2443,
+    -2443,-2443,-2443, 2788,-2443,-2443,-2443,-2443,-2443,-2443,
+    -2443,-2443,-2443,-2443,-2443
+    },
+
+    {
+       27,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,
+    -2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,
+
+    -2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,
+    -2444, 2789,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,
+    -2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,-2444,
+    -2444,-2444,-2444,-2444,-2444,-2444, 2789,-2444,-2444,-2444,
+    -2444,-2444,-2444,-2444,-2444
+    },
+
+    {
+       27,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,
+    -2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,
+    -2445,-2445,-2445,-2445,-2445,-2445,-2445, 2790,-2445,-2445,
+    -2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,
+    -2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,-2445,
+
+    -2445,-2445, 2790,-2445,-2445,-2445,-2445,-2445,-2445,-2445,
+    -2445,-2445,-2445,-2445,-2445
+    },
+
+    {
+       27,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,
+    -2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,
+    -2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,
+    -2446, 2791,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,
+    -2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,-2446,
+    -2446,-2446,-2446,-2446,-2446,-2446, 2791,-2446,-2446,-2446,
+    -2446,-2446,-2446,-2446,-2446
+    },
+
+    {
+       27,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447, 1107,
+
+    -2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,
+    -2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,
+    -2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,
+    -2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,
+    -2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,-2447,
+    -2447,-2447,-2447,-2447,-2447
+    },
+
+    {
+       27,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,
+    -2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,
+    -2448,-2448,-2448,-2448,-2448,-2448,-2448, 2792,-2448,-2448,
+    -2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,
+
+    -2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,-2448,
+    -2448,-2448, 2792,-2448,-2448,-2448,-2448,-2448,-2448,-2448,
+    -2448,-2448,-2448,-2448,-2448
+    },
+
+    {
+       27,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,
+    -2449,-2449,-2449,-2449, 2793,-2449,-2449,-2449,-2449,-2449,
+    -2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,
+    -2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,
+     2793,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,
+    -2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,-2449,
+    -2449,-2449,-2449,-2449,-2449
+
+    },
+
+    {
+       27,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,
+    -2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,
+    -2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,
+    -2450,-2450,-2450, 2794,-2450,-2450,-2450,-2450,-2450,-2450,
+    -2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450,
+    -2450,-2450,-2450,-2450,-2450,-2450,-2450,-2450, 2794,-2450,
+    -2450,-2450,-2450,-2450,-2450
+    },
+
+    {
+       27,-2451, 2451, 2451,-2451,-2451,-2451,-2451,-2451,-2451,
+    -2451,-2451, 2452,-2451,-2451,-2451,-2451,-2451,-2451,-2451,
+    -2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,
+
+    -2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,
+    -2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,
+    -2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,-2451,
+    -2451,-2451,-2451,-2451,-2451
+    },
+
+    {
+       27,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,
+    -2452,-2452,-2452,-2452,-2452,-2452, 2795,-2452,-2452,-2452,
+    -2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,
+    -2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,
+    -2452,-2452, 2795,-2452,-2452,-2452,-2452,-2452,-2452,-2452,
+    -2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,-2452,
+
+    -2452,-2452,-2452,-2452,-2452
+    },
+
+    {
+       27,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,
+    -2453,-2453,-2453,-2453, 2796,-2453,-2453,-2453,-2453,-2453,
+    -2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,
+    -2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,
+     2796,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,
+    -2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,-2453,
+    -2453,-2453,-2453,-2453,-2453
+    },
+
+    {
+       27,-2454, 2454, 2454,-2454,-2454,-2454,-2454,-2454,-2454,
+    -2454,-2454, 2455,-2454,-2454,-2454,-2454,-2454,-2454,-2454,
+
+    -2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,
+    -2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,
+    -2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,
+    -2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,-2454,
+    -2454,-2454,-2454,-2454,-2454
+    },
+
+    {
+       27,-2455,-2455,-2455,-2455,-2455,-2455,-2455,-2455,-2455,
+    -2455,-2455,-2455,-2455,-2455,-2455, 2797,-2455,-2455,-2455,
+    -2455,-2455,-2455,-2455,-2455,-2455,-2455,-2455,-2455, 2798,
+    -2455,-2455,-2455,-2455,-2455,-2455,-2455,-2455,-2455,-2455,
+    -2455,-2455, 2797,-2455,-2455,-2455,-2455,-2455,-2455,-2455,
+
+    -2455,-2455,-2455,-2455, 2798,-2455,-2455,-2455,-2455,-2455,
+    -2455,-2455,-2455,-2455,-2455
+    },
+
+    {
+       27,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,
+    -2456,-2456,-2456,-2456, 2799,-2456,-2456,-2456,-2456,-2456,
+    -2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,
+    -2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,
+     2799,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,
+    -2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,-2456,
+    -2456,-2456,-2456,-2456,-2456
+    },
+
+    {
+       27,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,
+
+    -2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,
+    -2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,
+    -2457,-2457,-2457, 2800,-2457,-2457,-2457,-2457,-2457,-2457,
+    -2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457,
+    -2457,-2457,-2457,-2457,-2457,-2457,-2457,-2457, 2800,-2457,
+    -2457,-2457,-2457,-2457,-2457
+    },
+
+    {
+       27,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,
+    -2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,
+    -2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,
+    -2458,-2458,-2458, 2801,-2458,-2458,-2458,-2458,-2458,-2458,
+
+    -2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458,
+    -2458,-2458,-2458,-2458,-2458,-2458,-2458,-2458, 2801,-2458,
+    -2458,-2458,-2458,-2458,-2458
+    },
+
+    {
+       27,-2459, 2802, 2802,-2459,-2459,-2459,-2459,-2459,-2459,
+    -2459,-2459, 2803,-2459,-2459,-2459,-2459,-2459,-2459,-2459,
+    -2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,
+    -2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,
+    -2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,
+    -2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,-2459,
+    -2459,-2459,-2459,-2459,-2459
+
+    },
+
+    {
+       27,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,
+    -2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,
+    -2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,
+    -2460,-2460,-2460, 2804,-2460,-2460,-2460,-2460,-2460,-2460,
+    -2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460,
+    -2460,-2460,-2460,-2460,-2460,-2460,-2460,-2460, 2804,-2460,
+    -2460,-2460,-2460,-2460,-2460
+    },
+
+    {
+       27,-2461, 2805, 2805,-2461,-2461,-2461,-2461,-2461,-2461,
+    -2461,-2461, 2806,-2461,-2461,-2461,-2461,-2461,-2461,-2461,
+    -2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,
+
+    -2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,
+    -2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,
+    -2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,-2461,
+    -2461,-2461,-2461,-2461,-2461
+    },
+
+    {
+       27,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,
+    -2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,
+    -2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,
+    -2462,-2462,-2462, 2807,-2462,-2462,-2462,-2462,-2462,-2462,
+    -2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462,
+    -2462,-2462,-2462,-2462,-2462,-2462,-2462,-2462, 2807,-2462,
+
+    -2462,-2462,-2462,-2462,-2462
+    },
+
+    {
+       27,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463, 2808,
+    -2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,
+    -2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,
+    -2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463, 2809,
+    -2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,
+    -2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,-2463,
+    -2463,-2463,-2463,-2463,-2463
+    },
+
+    {
+       27,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,
+    -2464,-2464,-2464,-2464, 2810,-2464,-2464,-2464,-2464,-2464,
+
+    -2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,
+    -2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,
+     2810,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,
+    -2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,-2464,
+    -2464,-2464,-2464,-2464,-2464
+    },
+
+    {
+       27,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,
+    -2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,
+    -2465,-2465,-2465,-2465,-2465,-2465,-2465, 2811,-2465,-2465,
+    -2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,
+    -2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,-2465,
+
+    -2465,-2465, 2811,-2465,-2465,-2465,-2465,-2465,-2465,-2465,
+    -2465,-2465,-2465,-2465,-2465
+    },
+
+    {
+       27,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466, 1124,
+    -2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,
+    -2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,
+    -2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,
+    -2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,
+    -2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,-2466,
+    -2466,-2466,-2466,-2466,-2466
+    },
+
+    {
+       27,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,
+
+    -2467,-2467,-2467, 2812,-2467,-2467,-2467,-2467,-2467,-2467,
+    -2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,
+    -2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,
+    -2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,
+    -2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,-2467,
+    -2467,-2467,-2467,-2467,-2467
+    },
+
+    {
+       27,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,
+    -2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,
+    -2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,
+    -2468,-2468, 2813,-2468,-2468,-2468,-2468,-2468,-2468,-2468,
+
+    -2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,-2468,
+    -2468,-2468,-2468,-2468,-2468,-2468,-2468, 2813,-2468,-2468,
+    -2468,-2468,-2468,-2468,-2468
+    },
+
+    {
+       27,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,
+    -2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,
+    -2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469, 2814,-2469,
+    -2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,
+    -2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,-2469,
+    -2469,-2469,-2469, 2814,-2469,-2469,-2469,-2469,-2469,-2469,
+    -2469,-2469,-2469,-2469,-2469
+
+    },
+
+    {
+       27,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,
+    -2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,
+    -2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,
+    -2470, 2815,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,
+    -2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,-2470,
+    -2470,-2470,-2470,-2470,-2470,-2470, 2815,-2470,-2470,-2470,
+    -2470,-2470,-2470,-2470,-2470
+    },
+
+    {
+       27,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,
+    -2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,
+    -2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,
+
+    -2471,-2471,-2471, 2816,-2471,-2471,-2471,-2471,-2471,-2471,
+    -2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471,
+    -2471,-2471,-2471,-2471,-2471,-2471,-2471,-2471, 2816,-2471,
+    -2471,-2471,-2471,-2471,-2471
+    },
+
+    {
+       27,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,
+    -2472,-2472,-2472,-2472, 2817,-2472,-2472,-2472,-2472,-2472,
+    -2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,
+    -2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,
+     2817,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,
+    -2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,-2472,
+
+    -2472,-2472,-2472,-2472,-2472
+    },
+
+    {
+       27,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,
+    -2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473, 2818,-2473,
+    -2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,
+    -2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,
+    -2473,-2473,-2473,-2473, 2818,-2473,-2473,-2473,-2473,-2473,
+    -2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,-2473,
+    -2473,-2473,-2473,-2473,-2473
+    },
+
+    {
+       27,-2474, 2474, 2474,-2474,-2474,-2474,-2474,-2474,-2474,
+    -2474,-2474, 2475,-2474,-2474,-2474,-2474,-2474,-2474,-2474,
+
+    -2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,
+    -2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,
+    -2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,
+    -2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,-2474,
+    -2474,-2474,-2474,-2474,-2474
+    },
+
+    {
+       27,-2475,-2475,-2475,-2475,-2475,-2475,-2475,-2475,-2475,
+    -2475,-2475,-2475,-2475,-2475,-2475, 2819,-2475,-2475,-2475,
+    -2475,-2475,-2475,-2475,-2475,-2475,-2475,-2475,-2475, 2820,
+    -2475,-2475,-2475,-2475,-2475,-2475,-2475,-2475,-2475,-2475,
+    -2475,-2475, 2819,-2475,-2475,-2475,-2475,-2475,-2475,-2475,
+
+    -2475,-2475,-2475,-2475, 2820,-2475,-2475,-2475,-2475,-2475,
+    -2475,-2475,-2475,-2475,-2475
+    },
+
+    {
+       27,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,
+    -2476,-2476,-2476,-2476, 2821,-2476,-2476,-2476,-2476,-2476,
+    -2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,
+    -2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,
+     2821,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,
+    -2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,-2476,
+    -2476,-2476,-2476,-2476,-2476
+    },
+
+    {
+       27,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477, 2822,
+
+    -2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,
+    -2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,
+    -2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477, 2823,
+    -2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,
+    -2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,-2477,
+    -2477,-2477,-2477,-2477,-2477
+    },
+
+    {
+       27,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,
+    -2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,
+    -2478,-2478, 2824,-2478,-2478,-2478,-2478,-2478,-2478,-2478,
+    -2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,
+
+    -2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478, 2824,-2478,
+    -2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,-2478,
+    -2478,-2478,-2478,-2478,-2478
+    },
+
+    {
+       27,-2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479,
+    -2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479, 2825,-2479,
+    -2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479,
+    -2479,-2479,-2479,-2479, 2826,-2479,-2479,-2479,-2479,-2479,
+    -2479,-2479,-2479,-2479, 2825,-2479,-2479,-2479,-2479,-2479,
+    -2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479,-2479, 2826,
+    -2479,-2479,-2479,-2479,-2479
+
+    },
+
+    {
+       27,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,
+    -2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,
+    -2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480, 2827,-2480,
+    -2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,
+    -2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,-2480,
+    -2480,-2480,-2480, 2827,-2480,-2480,-2480,-2480,-2480,-2480,
+    -2480,-2480,-2480,-2480,-2480
+    },
+
+    {
+       27,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,
+    -2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,
+    -2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,
+
+    -2481, 2828,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,
+    -2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,-2481,
+    -2481,-2481,-2481,-2481,-2481,-2481, 2828,-2481,-2481,-2481,
+    -2481,-2481,-2481,-2481,-2481
+    },
+
+    {
+       27,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,
+    -2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,
+    -2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482, 2829,-2482,
+    -2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,
+    -2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,-2482,
+    -2482,-2482,-2482, 2829,-2482,-2482,-2482,-2482,-2482,-2482,
+
+    -2482,-2482,-2482,-2482,-2482
+    },
+
+    {
+       27,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,
+    -2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,
+    -2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,
+    -2483, 2830,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,
+    -2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,-2483,
+    -2483,-2483,-2483,-2483,-2483,-2483, 2830,-2483,-2483,-2483,
+    -2483,-2483,-2483,-2483,-2483
+    },
+
+    {
+       27,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,
+    -2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,
+
+    -2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484, 2831,-2484,
+    -2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,
+    -2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,-2484,
+    -2484,-2484,-2484, 2831,-2484,-2484,-2484,-2484,-2484,-2484,
+    -2484,-2484,-2484,-2484,-2484
+    },
+
+    {
+       27,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,
+    -2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,
+    -2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,
+    -2485, 2832,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,
+    -2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,-2485,
+
+    -2485,-2485,-2485,-2485,-2485,-2485, 2832,-2485,-2485,-2485,
+    -2485,-2485,-2485,-2485,-2485
+    },
+
+    {
+       27,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,
+    -2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,
+    -2486,-2486,-2486,-2486,-2486,-2486,-2486, 2833,-2486,-2486,
+    -2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,
+    -2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,-2486,
+    -2486,-2486, 2833,-2486,-2486,-2486,-2486,-2486,-2486,-2486,
+    -2486,-2486,-2486,-2486,-2486
+    },
+
+    {
+       27,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,
+
+    -2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,
+    -2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,
+    -2487, 2834,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,
+    -2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,-2487,
+    -2487,-2487,-2487,-2487,-2487,-2487, 2834,-2487,-2487,-2487,
+    -2487,-2487,-2487,-2487,-2487
+    },
+
+    {
+       27,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488, 1139,
+    -2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,
+    -2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,
+    -2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,
+
+    -2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,
+    -2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,-2488,
+    -2488,-2488,-2488,-2488,-2488
+    },
+
+    {
+       27,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,
+    -2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,
+    -2489,-2489,-2489,-2489,-2489,-2489,-2489, 2835,-2489,-2489,
+    -2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,
+    -2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,-2489,
+    -2489,-2489, 2835,-2489,-2489,-2489,-2489,-2489,-2489,-2489,
+    -2489,-2489,-2489,-2489,-2489
+
+    },
+
+    {
+       27,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,
+    -2490,-2490,-2490,-2490, 2836,-2490,-2490,-2490,-2490,-2490,
+    -2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,
+    -2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,
+     2836,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,
+    -2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,-2490,
+    -2490,-2490,-2490,-2490,-2490
+    },
+
+    {
+       27,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,
+    -2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,
+    -2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,
+
+    -2491,-2491,-2491, 2837,-2491,-2491,-2491,-2491,-2491,-2491,
+    -2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491,
+    -2491,-2491,-2491,-2491,-2491,-2491,-2491,-2491, 2837,-2491,
+    -2491,-2491,-2491,-2491,-2491
+    },
+
+    {
+       27,-2492, 2492, 2492,-2492,-2492,-2492,-2492,-2492,-2492,
+    -2492,-2492, 2493,-2492,-2492,-2492,-2492,-2492,-2492,-2492,
+    -2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,
+    -2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,
+    -2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,
+    -2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,-2492,
+
+    -2492,-2492,-2492,-2492,-2492
+    },
+
+    {
+       27,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,
+    -2493,-2493,-2493,-2493,-2493,-2493, 2838,-2493,-2493,-2493,
+    -2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,
+    -2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,
+    -2493,-2493, 2838,-2493,-2493,-2493,-2493,-2493,-2493,-2493,
+    -2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,-2493,
+    -2493,-2493,-2493,-2493,-2493
+    },
+
+    {
+       27,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,
+    -2494,-2494,-2494,-2494, 2839,-2494,-2494,-2494,-2494,-2494,
+
+    -2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,
+    -2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,
+     2839,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,
+    -2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,-2494,
+    -2494,-2494,-2494,-2494,-2494
+    },
+
+    {
+       27,-2495, 2495, 2495,-2495,-2495,-2495,-2495,-2495,-2495,
+    -2495,-2495, 2496,-2495,-2495,-2495,-2495,-2495,-2495,-2495,
+    -2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,
+    -2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,
+    -2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,
+
+    -2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,-2495,
+    -2495,-2495,-2495,-2495,-2495
+    },
+
+    {
+       27,-2496,-2496,-2496,-2496,-2496,-2496,-2496,-2496,-2496,
+    -2496,-2496,-2496,-2496,-2496,-2496, 2840,-2496,-2496,-2496,
+    -2496,-2496,-2496,-2496,-2496,-2496,-2496,-2496,-2496, 2841,
+    -2496,-2496,-2496,-2496,-2496,-2496,-2496,-2496,-2496,-2496,
+    -2496,-2496, 2840,-2496,-2496,-2496,-2496,-2496,-2496,-2496,
+    -2496,-2496,-2496,-2496, 2841,-2496,-2496,-2496,-2496,-2496,
+    -2496,-2496,-2496,-2496,-2496
+    },
+
+    {
+       27,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,
+
+    -2497,-2497,-2497,-2497, 2842,-2497,-2497,-2497,-2497,-2497,
+    -2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,
+    -2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,
+     2842,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,
+    -2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,-2497,
+    -2497,-2497,-2497,-2497,-2497
+    },
+
+    {
+       27,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,
+    -2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,
+    -2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,
+    -2498,-2498,-2498, 2843,-2498,-2498,-2498,-2498,-2498,-2498,
+
+    -2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498,
+    -2498,-2498,-2498,-2498,-2498,-2498,-2498,-2498, 2843,-2498,
+    -2498,-2498,-2498,-2498,-2498
+    },
+
+    {
+       27,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,
+    -2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,
+    -2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,
+    -2499,-2499,-2499, 2844,-2499,-2499,-2499,-2499,-2499,-2499,
+    -2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499,
+    -2499,-2499,-2499,-2499,-2499,-2499,-2499,-2499, 2844,-2499,
+    -2499,-2499,-2499,-2499,-2499
+
+    },
+
+    {
+       27,-2500, 2845, 2845,-2500,-2500,-2500,-2500,-2500,-2500,
+    -2500,-2500, 2846,-2500,-2500,-2500,-2500,-2500,-2500,-2500,
+    -2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,
+    -2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,
+    -2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,
+    -2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,-2500,
+    -2500,-2500,-2500,-2500,-2500
+    },
+
+    {
+       27,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,
+    -2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,
+    -2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,
+
+    -2501,-2501,-2501, 2847,-2501,-2501,-2501,-2501,-2501,-2501,
+    -2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501,
+    -2501,-2501,-2501,-2501,-2501,-2501,-2501,-2501, 2847,-2501,
+    -2501,-2501,-2501,-2501,-2501
+    },
+
+    {
+       27,-2502, 2848, 2848,-2502,-2502,-2502,-2502,-2502,-2502,
+    -2502,-2502, 2849,-2502,-2502,-2502,-2502,-2502,-2502,-2502,
+    -2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,
+    -2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,
+    -2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,
+    -2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,-2502,
+
+    -2502,-2502,-2502,-2502,-2502
+    },
+
+    {
+       27,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,
+    -2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,
+    -2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,
+    -2503,-2503,-2503, 2850,-2503,-2503,-2503,-2503,-2503,-2503,
+    -2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503,
+    -2503,-2503,-2503,-2503,-2503,-2503,-2503,-2503, 2850,-2503,
+    -2503,-2503,-2503,-2503,-2503
+    },
+
+    {
+       27,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504, 2851,
+    -2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,
+
+    -2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,
+    -2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504, 2852,
+    -2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,
+    -2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,-2504,
+    -2504,-2504,-2504,-2504,-2504
+    },
+
+    {
+       27,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,
+    -2505,-2505,-2505,-2505, 2853,-2505,-2505,-2505,-2505,-2505,
+    -2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,
+    -2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,
+     2853,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,
+
+    -2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,-2505,
+    -2505,-2505,-2505,-2505,-2505
+    },
+
+    {
+       27,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,
+    -2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,
+    -2506,-2506,-2506,-2506,-2506,-2506,-2506, 2854,-2506,-2506,
+    -2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,
+    -2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,-2506,
+    -2506,-2506, 2854,-2506,-2506,-2506,-2506,-2506,-2506,-2506,
+    -2506,-2506,-2506,-2506,-2506
+    },
+
+    {
+       27,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507, 1156,
+
+    -2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,
+    -2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,
+    -2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,
+    -2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,
+    -2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,-2507,
+    -2507,-2507,-2507,-2507,-2507
+    },
+
+    {
+       27,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,
+    -2508,-2508,-2508, 2855,-2508,-2508,-2508,-2508,-2508,-2508,
+    -2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,
+    -2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,
+
+    -2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,
+    -2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,-2508,
+    -2508,-2508,-2508,-2508,-2508
+    },
+
+    {
+       27,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,
+    -2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,
+    -2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,
+    -2509,-2509, 2856,-2509,-2509,-2509,-2509,-2509,-2509,-2509,
+    -2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,-2509,
+    -2509,-2509,-2509,-2509,-2509,-2509,-2509, 2856,-2509,-2509,
+    -2509,-2509,-2509,-2509,-2509
+
+    },
+
+    {
+       27,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,
+    -2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,
+    -2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510, 2857,-2510,
+    -2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,
+    -2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,-2510,
+    -2510,-2510,-2510, 2857,-2510,-2510,-2510,-2510,-2510,-2510,
+    -2510,-2510,-2510,-2510,-2510
+    },
+
+    {
+       27,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,
+    -2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,
+    -2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,
+
+    -2511, 2858,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,
+    -2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,-2511,
+    -2511,-2511,-2511,-2511,-2511,-2511, 2858,-2511,-2511,-2511,
+    -2511,-2511,-2511,-2511,-2511
+    },
+
+    {
+       27,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,
+    -2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,
+    -2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,
+    -2512,-2512,-2512, 2859,-2512,-2512,-2512,-2512,-2512,-2512,
+    -2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512,
+    -2512,-2512,-2512,-2512,-2512,-2512,-2512,-2512, 2859,-2512,
+
+    -2512,-2512,-2512,-2512,-2512
+    },
+
+    {
+       27,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,
+    -2513,-2513,-2513,-2513, 2860,-2513,-2513,-2513,-2513,-2513,
+    -2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,
+    -2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,
+     2860,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,
+    -2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,-2513,
+    -2513,-2513,-2513,-2513,-2513
+    },
+
+    {
+       27,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,
+    -2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514, 2861,-2514,
+
+    -2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,
+    -2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,
+    -2514,-2514,-2514,-2514, 2861,-2514,-2514,-2514,-2514,-2514,
+    -2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,-2514,
+    -2514,-2514,-2514,-2514,-2514
+    },
+
+    {
+       27,-2515, 2515, 2515,-2515,-2515,-2515,-2515,-2515,-2515,
+    -2515,-2515, 2516,-2515,-2515,-2515,-2515,-2515,-2515,-2515,
+    -2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,
+    -2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,
+    -2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,
+
+    -2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,-2515,
+    -2515,-2515,-2515,-2515,-2515
+    },
+
+    {
+       27,-2516,-2516,-2516,-2516,-2516,-2516,-2516,-2516,-2516,
+    -2516,-2516,-2516,-2516,-2516,-2516, 2862,-2516,-2516,-2516,
+    -2516,-2516,-2516,-2516,-2516,-2516,-2516,-2516,-2516, 2863,
+    -2516,-2516,-2516,-2516,-2516,-2516,-2516,-2516,-2516,-2516,
+    -2516,-2516, 2862,-2516,-2516,-2516,-2516,-2516,-2516,-2516,
+    -2516,-2516,-2516,-2516, 2863,-2516,-2516,-2516,-2516,-2516,
+    -2516,-2516,-2516,-2516,-2516
+    },
+
+    {
+       27,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,
+
+    -2517,-2517,-2517,-2517, 2864,-2517,-2517,-2517,-2517,-2517,
+    -2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,
+    -2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,
+     2864,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,
+    -2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,-2517,
+    -2517,-2517,-2517,-2517,-2517
+    },
+
+    {
+       27,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518, 2865,
+    -2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,
+    -2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,
+    -2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518, 2866,
+
+    -2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,
+    -2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,-2518,
+    -2518,-2518,-2518,-2518,-2518
+    },
+
+    {
+       27,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,
+    -2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,
+    -2519,-2519, 2867,-2519,-2519,-2519,-2519,-2519,-2519,-2519,
+    -2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,
+    -2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519, 2867,-2519,
+    -2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,-2519,
+    -2519,-2519,-2519,-2519,-2519
+
+    },
+
+    {
+       27,-2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520,
+    -2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520, 2868,-2520,
+    -2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520,
+    -2520,-2520,-2520,-2520, 2869,-2520,-2520,-2520,-2520,-2520,
+    -2520,-2520,-2520,-2520, 2868,-2520,-2520,-2520,-2520,-2520,
+    -2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520,-2520, 2869,
+    -2520,-2520,-2520,-2520,-2520
+    },
+
+    {
+       27,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,
+    -2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,
+    -2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521, 2870,-2521,
+
+    -2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,
+    -2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,-2521,
+    -2521,-2521,-2521, 2870,-2521,-2521,-2521,-2521,-2521,-2521,
+    -2521,-2521,-2521,-2521,-2521
+    },
+
+    {
+       27,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,
+    -2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,
+    -2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,
+    -2522, 2871,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,
+    -2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,-2522,
+    -2522,-2522,-2522,-2522,-2522,-2522, 2871,-2522,-2522,-2522,
+
+    -2522,-2522,-2522,-2522,-2522
+    },
+
+    {
+       27,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,
+    -2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,
+    -2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523, 2872,-2523,
+    -2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,
+    -2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,-2523,
+    -2523,-2523,-2523, 2872,-2523,-2523,-2523,-2523,-2523,-2523,
+    -2523,-2523,-2523,-2523,-2523
+    },
+
+    {
+       27,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,
+    -2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,
+
+    -2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,
+    -2524, 2873,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,
+    -2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,-2524,
+    -2524,-2524,-2524,-2524,-2524,-2524, 2873,-2524,-2524,-2524,
+    -2524,-2524,-2524,-2524,-2524
+    },
+
+    {
+       27,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,
+    -2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,
+    -2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525, 2874,-2525,
+    -2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,
+    -2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,-2525,
+
+    -2525,-2525,-2525, 2874,-2525,-2525,-2525,-2525,-2525,-2525,
+    -2525,-2525,-2525,-2525,-2525
+    },
+
+    {
+       27,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,
+    -2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,
+    -2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,
+    -2526, 2875,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,
+    -2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,-2526,
+    -2526,-2526,-2526,-2526,-2526,-2526, 2875,-2526,-2526,-2526,
+    -2526,-2526,-2526,-2526,-2526
+    },
+
+    {
+       27,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,
+
+    -2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,
+    -2527,-2527,-2527,-2527,-2527,-2527,-2527, 2876,-2527,-2527,
+    -2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,
+    -2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,-2527,
+    -2527,-2527, 2876,-2527,-2527,-2527,-2527,-2527,-2527,-2527,
+    -2527,-2527,-2527,-2527,-2527
+    },
+
+    {
+       27,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,
+    -2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,
+    -2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,
+    -2528, 2877,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,
+
+    -2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,-2528,
+    -2528,-2528,-2528,-2528,-2528,-2528, 2877,-2528,-2528,-2528,
+    -2528,-2528,-2528,-2528,-2528
+    },
+
+    {
+       27,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529, 1171,
+    -2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,
+    -2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,
+    -2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,
+    -2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,
+    -2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,-2529,
+    -2529,-2529,-2529,-2529,-2529
+
+    },
+
+    {
+       27,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,
+    -2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,
+    -2530,-2530,-2530,-2530,-2530,-2530,-2530, 2878,-2530,-2530,
+    -2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,
+    -2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,-2530,
+    -2530,-2530, 2878,-2530,-2530,-2530,-2530,-2530,-2530,-2530,
+    -2530,-2530,-2530,-2530,-2530
+    },
+
+    {
+       27,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,
+    -2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,
+    -2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,
+
+    -2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,
+    -2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,
+    -2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,-2531,
+    -2531,-2531,-2531,-2531,-2531
+    },
+
+    {
+       27,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,
+    -2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,
+    -2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,
+    -2532,-2532, 2879,-2532,-2532,-2532,-2532,-2532,-2532,-2532,
+    -2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,-2532,
+    -2532,-2532,-2532,-2532,-2532,-2532,-2532, 2879,-2532,-2532,
+
+    -2532,-2532,-2532,-2532,-2532
+    },
+
+    {
+       27,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,
+    -2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,
+    -2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,
+    -2533,-2533,-2533, 2880,-2533,-2533,-2533,-2533,-2533,-2533,
+    -2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533,
+    -2533,-2533,-2533,-2533,-2533,-2533,-2533,-2533, 2880,-2533,
+    -2533,-2533,-2533,-2533,-2533
+    },
+
+    {
+       27,-2534, 2534, 2534,-2534,-2534,-2534,-2534,-2534,-2534,
+    -2534,-2534, 2535,-2534,-2534,-2534,-2534,-2534,-2534,-2534,
+
+    -2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,
+    -2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,
+    -2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,
+    -2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,-2534,
+    -2534,-2534,-2534,-2534,-2534
+    },
+
+    {
+       27,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,
+    -2535,-2535,-2535,-2535,-2535,-2535, 2881,-2535,-2535,-2535,
+    -2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,
+    -2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,
+    -2535,-2535, 2881,-2535,-2535,-2535,-2535,-2535,-2535,-2535,
+
+    -2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,-2535,
+    -2535,-2535,-2535,-2535,-2535
+    },
+
+    {
+       27,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,
+    -2536,-2536,-2536,-2536, 2882,-2536,-2536,-2536,-2536,-2536,
+    -2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,
+    -2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,
+     2882,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,
+    -2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,-2536,
+    -2536,-2536,-2536,-2536,-2536
+    },
+
+    {
+       27,-2537, 2537, 2537,-2537,-2537,-2537,-2537,-2537,-2537,
+
+    -2537,-2537, 2538,-2537,-2537,-2537,-2537,-2537,-2537,-2537,
+    -2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,
+    -2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,
+    -2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,
+    -2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,-2537,
+    -2537,-2537,-2537,-2537,-2537
+    },
+
+    {
+       27,-2538,-2538,-2538,-2538,-2538,-2538,-2538,-2538,-2538,
+    -2538,-2538,-2538,-2538,-2538,-2538, 2883,-2538,-2538,-2538,
+    -2538,-2538,-2538,-2538,-2538,-2538,-2538,-2538,-2538, 2884,
+    -2538,-2538,-2538,-2538,-2538,-2538,-2538,-2538,-2538,-2538,
+
+    -2538,-2538, 2883,-2538,-2538,-2538,-2538,-2538,-2538,-2538,
+    -2538,-2538,-2538,-2538, 2884,-2538,-2538,-2538,-2538,-2538,
+    -2538,-2538,-2538,-2538,-2538
+    },
+
+    {
+       27,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,
+    -2539,-2539,-2539,-2539, 2885,-2539,-2539,-2539,-2539,-2539,
+    -2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,
+    -2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,
+     2885,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,
+    -2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,-2539,
+    -2539,-2539,-2539,-2539,-2539
+
+    },
+
+    {
+       27,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,
+    -2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,
+    -2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,
+    -2540,-2540,-2540, 2886,-2540,-2540,-2540,-2540,-2540,-2540,
+    -2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540,
+    -2540,-2540,-2540,-2540,-2540,-2540,-2540,-2540, 2886,-2540,
+    -2540,-2540,-2540,-2540,-2540
+    },
+
+    {
+       27,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,
+    -2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,
+    -2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,
+
+    -2541,-2541,-2541, 2887,-2541,-2541,-2541,-2541,-2541,-2541,
+    -2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541,
+    -2541,-2541,-2541,-2541,-2541,-2541,-2541,-2541, 2887,-2541,
+    -2541,-2541,-2541,-2541,-2541
+    },
+
+    {
+       27,-2542, 2888, 2888,-2542,-2542,-2542,-2542,-2542,-2542,
+    -2542,-2542, 2889,-2542,-2542,-2542,-2542,-2542,-2542,-2542,
+    -2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,
+    -2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,
+    -2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,
+    -2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,-2542,
+
+    -2542,-2542,-2542,-2542,-2542
+    },
+
+    {
+       27,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,
+    -2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,
+    -2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,
+    -2543,-2543,-2543, 2890,-2543,-2543,-2543,-2543,-2543,-2543,
+    -2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543,
+    -2543,-2543,-2543,-2543,-2543,-2543,-2543,-2543, 2890,-2543,
+    -2543,-2543,-2543,-2543,-2543
+    },
+
+    {
+       27,-2544, 2891, 2891,-2544,-2544,-2544,-2544,-2544,-2544,
+    -2544,-2544, 2892,-2544,-2544,-2544,-2544,-2544,-2544,-2544,
+
+    -2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,
+    -2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,
+    -2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,
+    -2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,-2544,
+    -2544,-2544,-2544,-2544,-2544
+    },
+
+    {
+       27,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,
+    -2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,
+    -2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,
+    -2545,-2545,-2545, 2893,-2545,-2545,-2545,-2545,-2545,-2545,
+    -2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545,
+
+    -2545,-2545,-2545,-2545,-2545,-2545,-2545,-2545, 2893,-2545,
+    -2545,-2545,-2545,-2545,-2545
+    },
+
+    {
+       27,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546, 2894,
+    -2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,
+    -2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,
+    -2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546, 2895,
+    -2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,
+    -2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,-2546,
+    -2546,-2546,-2546,-2546,-2546
+    },
+
+    {
+       27,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,
+
+    -2547,-2547,-2547,-2547, 2896,-2547,-2547,-2547,-2547,-2547,
+    -2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,
+    -2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,
+     2896,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,
+    -2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,-2547,
+    -2547,-2547,-2547,-2547,-2547
+    },
+
+    {
+       27,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,
+    -2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,
+    -2548,-2548,-2548,-2548,-2548,-2548,-2548, 2897,-2548,-2548,
+    -2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,
+
+    -2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,-2548,
+    -2548,-2548, 2897,-2548,-2548,-2548,-2548,-2548,-2548,-2548,
+    -2548,-2548,-2548,-2548,-2548
+    },
+
+    {
+       27,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549, 1188,
+    -2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,
+    -2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,
+    -2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,
+    -2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,
+    -2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,-2549,
+    -2549,-2549,-2549,-2549,-2549
+
+    },
+
+    {
+       27,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,
+    -2550,-2550,-2550, 2898,-2550,-2550,-2550,-2550,-2550,-2550,
+    -2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,
+    -2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,
+    -2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,
+    -2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,-2550,
+    -2550,-2550,-2550,-2550,-2550
+    },
+
+    {
+       27,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,
+    -2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,
+    -2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,
+
+    -2551,-2551, 2899,-2551,-2551,-2551,-2551,-2551,-2551,-2551,
+    -2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,-2551,
+    -2551,-2551,-2551,-2551,-2551,-2551,-2551, 2899,-2551,-2551,
+    -2551,-2551,-2551,-2551,-2551
+    },
+
+    {
+       27,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,
+    -2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,
+    -2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552, 2900,-2552,
+    -2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,
+    -2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,-2552,
+    -2552,-2552,-2552, 2900,-2552,-2552,-2552,-2552,-2552,-2552,
+
+    -2552,-2552,-2552,-2552,-2552
+    },
+
+    {
+       27,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,
+    -2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,
+    -2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,
+    -2553, 2901,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,
+    -2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,-2553,
+    -2553,-2553,-2553,-2553,-2553,-2553, 2901,-2553,-2553,-2553,
+    -2553,-2553,-2553,-2553,-2553
+    },
+
+    {
+       27,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,
+    -2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,
+
+    -2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,
+    -2554,-2554,-2554, 2902,-2554,-2554,-2554,-2554,-2554,-2554,
+    -2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554,
+    -2554,-2554,-2554,-2554,-2554,-2554,-2554,-2554, 2902,-2554,
+    -2554,-2554,-2554,-2554,-2554
+    },
+
+    {
+       27,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,
+    -2555,-2555,-2555,-2555, 2903,-2555,-2555,-2555,-2555,-2555,
+    -2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,
+    -2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,
+     2903,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,
+
+    -2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,-2555,
+    -2555,-2555,-2555,-2555,-2555
+    },
+
+    {
+       27,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,
+    -2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556, 2904,-2556,
+    -2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,
+    -2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,
+    -2556,-2556,-2556,-2556, 2904,-2556,-2556,-2556,-2556,-2556,
+    -2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,-2556,
+    -2556,-2556,-2556,-2556,-2556
+    },
+
+    {
+       27,-2557, 2557, 2557,-2557,-2557,-2557,-2557,-2557,-2557,
+
+    -2557,-2557, 2558,-2557,-2557,-2557,-2557,-2557,-2557,-2557,
+    -2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,
+    -2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,
+    -2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,
+    -2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,-2557,
+    -2557,-2557,-2557,-2557,-2557
+    },
+
+    {
+       27,-2558,-2558,-2558,-2558,-2558,-2558,-2558,-2558,-2558,
+    -2558,-2558,-2558,-2558,-2558,-2558, 2905,-2558,-2558,-2558,
+    -2558,-2558,-2558,-2558,-2558,-2558,-2558,-2558,-2558, 2906,
+    -2558,-2558,-2558,-2558,-2558,-2558,-2558,-2558,-2558,-2558,
+
+    -2558,-2558, 2905,-2558,-2558,-2558,-2558,-2558,-2558,-2558,
+    -2558,-2558,-2558,-2558, 2906,-2558,-2558,-2558,-2558,-2558,
+    -2558,-2558,-2558,-2558,-2558
+    },
+
+    {
+       27,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,
+    -2559,-2559,-2559,-2559, 2907,-2559,-2559,-2559,-2559,-2559,
+    -2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,
+    -2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,
+     2907,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,
+    -2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,-2559,
+    -2559,-2559,-2559,-2559,-2559
+
+    },
+
+    {
+       27,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560, 2908,
+    -2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,
+    -2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,
+    -2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560, 2909,
+    -2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,
+    -2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,-2560,
+    -2560,-2560,-2560,-2560,-2560
+    },
+
+    {
+       27,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,
+    -2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,
+    -2561,-2561, 2910,-2561,-2561,-2561,-2561,-2561,-2561,-2561,
+
+    -2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,
+    -2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561, 2910,-2561,
+    -2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,-2561,
+    -2561,-2561,-2561,-2561,-2561
+    },
+
+    {
+       27,-2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562,
+    -2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562, 2911,-2562,
+    -2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562,
+    -2562,-2562,-2562,-2562, 2912,-2562,-2562,-2562,-2562,-2562,
+    -2562,-2562,-2562,-2562, 2911,-2562,-2562,-2562,-2562,-2562,
+    -2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562,-2562, 2912,
+
+    -2562,-2562,-2562,-2562,-2562
+    },
+
+    {
+       27,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,
+    -2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,
+    -2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563, 2913,-2563,
+    -2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,
+    -2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,-2563,
+    -2563,-2563,-2563, 2913,-2563,-2563,-2563,-2563,-2563,-2563,
+    -2563,-2563,-2563,-2563,-2563
+    },
+
+    {
+       27,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,
+    -2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,
+
+    -2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,
+    -2564, 2914,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,
+    -2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,-2564,
+    -2564,-2564,-2564,-2564,-2564,-2564, 2914,-2564,-2564,-2564,
+    -2564,-2564,-2564,-2564,-2564
+    },
+
+    {
+       27,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,
+    -2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,
+    -2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565, 2915,-2565,
+    -2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,
+    -2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,-2565,
+
+    -2565,-2565,-2565, 2915,-2565,-2565,-2565,-2565,-2565,-2565,
+    -2565,-2565,-2565,-2565,-2565
+    },
+
+    {
+       27,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,
+    -2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,
+    -2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,
+    -2566, 2916,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,
+    -2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,-2566,
+    -2566,-2566,-2566,-2566,-2566,-2566, 2916,-2566,-2566,-2566,
+    -2566,-2566,-2566,-2566,-2566
+    },
+
+    {
+       27,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,
+
+    -2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,
+    -2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567, 2917,-2567,
+    -2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,
+    -2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,-2567,
+    -2567,-2567,-2567, 2917,-2567,-2567,-2567,-2567,-2567,-2567,
+    -2567,-2567,-2567,-2567,-2567
+    },
+
+    {
+       27,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,
+    -2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,
+    -2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,
+    -2568, 2918,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,
+
+    -2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,-2568,
+    -2568,-2568,-2568,-2568,-2568,-2568, 2918,-2568,-2568,-2568,
+    -2568,-2568,-2568,-2568,-2568
+    },
+
+    {
+       27,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,
+    -2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,
+    -2569,-2569,-2569,-2569,-2569,-2569,-2569, 2919,-2569,-2569,
+    -2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,
+    -2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,-2569,
+    -2569,-2569, 2919,-2569,-2569,-2569,-2569,-2569,-2569,-2569,
+    -2569,-2569,-2569,-2569,-2569
+
+    },
+
+    {
+       27,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,
+    -2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,
+    -2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,
+    -2570, 2920,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,
+    -2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,-2570,
+    -2570,-2570,-2570,-2570,-2570,-2570, 2920,-2570,-2570,-2570,
+    -2570,-2570,-2570,-2570,-2570
+    },
+
+    {
+       27,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571, 1203,
+    -2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,
+    -2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,
+
+    -2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,
+    -2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,
+    -2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,-2571,
+    -2571,-2571,-2571,-2571,-2571
+    },
+
+    {
+       27,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,
+    -2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,
+    -2572,-2572,-2572,-2572,-2572,-2572,-2572, 2921,-2572,-2572,
+    -2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,
+    -2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,-2572,
+    -2572,-2572, 2921,-2572,-2572,-2572,-2572,-2572,-2572,-2572,
+
+    -2572,-2572,-2572,-2572,-2572
+    },
+
+    {
+       27,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,
+    -2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,
+     2922,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,
+    -2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,
+    -2573,-2573,-2573,-2573,-2573,-2573, 2922,-2573,-2573,-2573,
+    -2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,-2573,
+    -2573,-2573,-2573,-2573,-2573
+    },
+
+    {
+       27,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,
+    -2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,
+
+    -2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,
+    -2574,-2574,-2574, 2923,-2574,-2574,-2574,-2574,-2574,-2574,
+    -2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574,
+    -2574,-2574,-2574,-2574,-2574,-2574,-2574,-2574, 2923,-2574,
+    -2574,-2574,-2574,-2574,-2574
+    },
+
+    {
+       27,-2575, 2575, 2575,-2575,-2575,-2575,-2575,-2575,-2575,
+    -2575,-2575, 2576,-2575,-2575,-2575,-2575,-2575,-2575,-2575,
+    -2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,
+    -2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,
+    -2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,
+
+    -2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,-2575,
+    -2575,-2575,-2575,-2575,-2575
+    },
+
+    {
+       27,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,
+    -2576,-2576,-2576,-2576,-2576,-2576, 2924,-2576,-2576,-2576,
+    -2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,
+    -2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,
+    -2576,-2576, 2924,-2576,-2576,-2576,-2576,-2576,-2576,-2576,
+    -2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,-2576,
+    -2576,-2576,-2576,-2576,-2576
+    },
+
+    {
+       27,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,
+
+    -2577,-2577,-2577,-2577, 2925,-2577,-2577,-2577,-2577,-2577,
+    -2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,
+    -2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,
+     2925,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,
+    -2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,-2577,
+    -2577,-2577,-2577,-2577,-2577
+    },
+
+    {
+       27,-2578, 2578, 2578,-2578,-2578,-2578,-2578,-2578,-2578,
+    -2578,-2578, 2579,-2578,-2578,-2578,-2578,-2578,-2578,-2578,
+    -2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,
+    -2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,
+
+    -2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,
+    -2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,-2578,
+    -2578,-2578,-2578,-2578,-2578
+    },
+
+    {
+       27,-2579,-2579,-2579,-2579,-2579,-2579,-2579,-2579,-2579,
+    -2579,-2579,-2579,-2579,-2579,-2579, 2926,-2579,-2579,-2579,
+    -2579,-2579,-2579,-2579,-2579,-2579,-2579,-2579,-2579, 2927,
+    -2579,-2579,-2579,-2579,-2579,-2579,-2579,-2579,-2579,-2579,
+    -2579,-2579, 2926,-2579,-2579,-2579,-2579,-2579,-2579,-2579,
+    -2579,-2579,-2579,-2579, 2927,-2579,-2579,-2579,-2579,-2579,
+    -2579,-2579,-2579,-2579,-2579
+
+    },
+
+    {
+       27,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,
+    -2580,-2580,-2580,-2580, 2928,-2580,-2580,-2580,-2580,-2580,
+    -2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,
+    -2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,
+     2928,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,
+    -2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,-2580,
+    -2580,-2580,-2580,-2580,-2580
+    },
+
+    {
+       27,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,
+    -2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,
+    -2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,
+
+    -2581,-2581,-2581, 2929,-2581,-2581,-2581,-2581,-2581,-2581,
+    -2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581,
+    -2581,-2581,-2581,-2581,-2581,-2581,-2581,-2581, 2929,-2581,
+    -2581,-2581,-2581,-2581,-2581
+    },
+
+    {
+       27,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,
+    -2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,
+    -2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,
+    -2582,-2582,-2582, 2930,-2582,-2582,-2582,-2582,-2582,-2582,
+    -2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582,
+    -2582,-2582,-2582,-2582,-2582,-2582,-2582,-2582, 2930,-2582,
+
+    -2582,-2582,-2582,-2582,-2582
+    },
+
+    {
+       27,-2583, 2931, 2931,-2583,-2583,-2583,-2583,-2583,-2583,
+    -2583,-2583, 2932,-2583,-2583,-2583,-2583,-2583,-2583,-2583,
+    -2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,
+    -2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,
+    -2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,
+    -2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,-2583,
+    -2583,-2583,-2583,-2583,-2583
+    },
+
+    {
+       27,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,
+    -2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,
+
+    -2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,
+    -2584,-2584,-2584, 2933,-2584,-2584,-2584,-2584,-2584,-2584,
+    -2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584,
+    -2584,-2584,-2584,-2584,-2584,-2584,-2584,-2584, 2933,-2584,
+    -2584,-2584,-2584,-2584,-2584
+    },
+
+    {
+       27,-2585, 2934, 2934,-2585,-2585,-2585,-2585,-2585,-2585,
+    -2585,-2585, 2935,-2585,-2585,-2585,-2585,-2585,-2585,-2585,
+    -2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,
+    -2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,
+    -2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,
+
+    -2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,-2585,
+    -2585,-2585,-2585,-2585,-2585
+    },
+
+    {
+       27,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,
+    -2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,
+    -2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,
+    -2586,-2586,-2586, 2936,-2586,-2586,-2586,-2586,-2586,-2586,
+    -2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586,
+    -2586,-2586,-2586,-2586,-2586,-2586,-2586,-2586, 2936,-2586,
+    -2586,-2586,-2586,-2586,-2586
+    },
+
+    {
+       27,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587, 2937,
+
+    -2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,
+    -2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,
+    -2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587, 2938,
+    -2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,
+    -2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,-2587,
+    -2587,-2587,-2587,-2587,-2587
+    },
+
+    {
+       27,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,
+    -2588,-2588,-2588,-2588, 2939,-2588,-2588,-2588,-2588,-2588,
+    -2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,
+    -2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,
+
+     2939,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,
+    -2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,-2588,
+    -2588,-2588,-2588,-2588,-2588
+    },
+
+    {
+       27,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,
+    -2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,
+    -2589,-2589,-2589,-2589,-2589,-2589,-2589, 2940,-2589,-2589,
+    -2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,
+    -2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,-2589,
+    -2589,-2589, 2940,-2589,-2589,-2589,-2589,-2589,-2589,-2589,
+    -2589,-2589,-2589,-2589,-2589
+
+    },
+
+    {
+       27,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590, 1220,
+    -2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,
+    -2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,
+    -2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,
+    -2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,
+    -2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,-2590,
+    -2590,-2590,-2590,-2590,-2590
+    },
+
+    {
+       27,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,
+    -2591,-2591,-2591, 2941,-2591,-2591,-2591,-2591,-2591,-2591,
+    -2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,
+
+    -2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,
+    -2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,
+    -2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,-2591,
+    -2591,-2591,-2591,-2591,-2591
+    },
+
+    {
+       27,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,
+    -2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,
+    -2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,
+    -2592,-2592, 2942,-2592,-2592,-2592,-2592,-2592,-2592,-2592,
+    -2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,-2592,
+    -2592,-2592,-2592,-2592,-2592,-2592,-2592, 2942,-2592,-2592,
+
+    -2592,-2592,-2592,-2592,-2592
+    },
+
+    {
+       27,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,
+    -2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,
+    -2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593, 2943,-2593,
+    -2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,
+    -2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,-2593,
+    -2593,-2593,-2593, 2943,-2593,-2593,-2593,-2593,-2593,-2593,
+    -2593,-2593,-2593,-2593,-2593
+    },
+
+    {
+       27,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,
+    -2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,
+
+    -2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,
+    -2594, 2944,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,
+    -2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,-2594,
+    -2594,-2594,-2594,-2594,-2594,-2594, 2944,-2594,-2594,-2594,
+    -2594,-2594,-2594,-2594,-2594
+    },
+
+    {
+       27,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,
+    -2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,
+    -2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,
+    -2595,-2595,-2595, 2945,-2595,-2595,-2595,-2595,-2595,-2595,
+    -2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595,
+
+    -2595,-2595,-2595,-2595,-2595,-2595,-2595,-2595, 2945,-2595,
+    -2595,-2595,-2595,-2595,-2595
+    },
+
+    {
+       27,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,
+    -2596,-2596,-2596,-2596, 2946,-2596,-2596,-2596,-2596,-2596,
+    -2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,
+    -2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,
+     2946,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,
+    -2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,-2596,
+    -2596,-2596,-2596,-2596,-2596
+    },
+
+    {
+       27,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,
+
+    -2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597, 2947,-2597,
+    -2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,
+    -2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,
+    -2597,-2597,-2597,-2597, 2947,-2597,-2597,-2597,-2597,-2597,
+    -2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,-2597,
+    -2597,-2597,-2597,-2597,-2597
+    },
+
+    {
+       27,-2598, 2598, 2598,-2598,-2598,-2598,-2598,-2598,-2598,
+    -2598,-2598, 2599,-2598,-2598,-2598,-2598,-2598,-2598,-2598,
+    -2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,
+    -2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,
+
+    -2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,
+    -2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,-2598,
+    -2598,-2598,-2598,-2598,-2598
+    },
+
+    {
+       27,-2599,-2599,-2599,-2599,-2599,-2599,-2599,-2599,-2599,
+    -2599,-2599,-2599,-2599,-2599,-2599, 2948,-2599,-2599,-2599,
+    -2599,-2599,-2599,-2599,-2599,-2599,-2599,-2599,-2599, 2949,
+    -2599,-2599,-2599,-2599,-2599,-2599,-2599,-2599,-2599,-2599,
+    -2599,-2599, 2948,-2599,-2599,-2599,-2599,-2599,-2599,-2599,
+    -2599,-2599,-2599,-2599, 2949,-2599,-2599,-2599,-2599,-2599,
+    -2599,-2599,-2599,-2599,-2599
+
+    },
+
+    {
+       27,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,
+    -2600,-2600,-2600,-2600, 2950,-2600,-2600,-2600,-2600,-2600,
+    -2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,
+    -2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,
+     2950,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,
+    -2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,-2600,
+    -2600,-2600,-2600,-2600,-2600
+    },
+
+    {
+       27,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601, 2951,
+    -2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,
+    -2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,
+
+    -2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601, 2952,
+    -2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,
+    -2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,-2601,
+    -2601,-2601,-2601,-2601,-2601
+    },
+
+    {
+       27,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,
+    -2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,
+    -2602,-2602, 2953,-2602,-2602,-2602,-2602,-2602,-2602,-2602,
+    -2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,
+    -2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602, 2953,-2602,
+    -2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,-2602,
+
+    -2602,-2602,-2602,-2602,-2602
+    },
+
+    {
+       27,-2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603,
+    -2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603, 2954,-2603,
+    -2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603,
+    -2603,-2603,-2603,-2603, 2955,-2603,-2603,-2603,-2603,-2603,
+    -2603,-2603,-2603,-2603, 2954,-2603,-2603,-2603,-2603,-2603,
+    -2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603,-2603, 2955,
+    -2603,-2603,-2603,-2603,-2603
+    },
+
+    {
+       27,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,
+    -2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,
+
+    -2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604, 2956,-2604,
+    -2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,
+    -2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,-2604,
+    -2604,-2604,-2604, 2956,-2604,-2604,-2604,-2604,-2604,-2604,
+    -2604,-2604,-2604,-2604,-2604
+    },
+
+    {
+       27,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,
+    -2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,
+    -2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,
+    -2605, 2957,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,
+    -2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,-2605,
+
+    -2605,-2605,-2605,-2605,-2605,-2605, 2957,-2605,-2605,-2605,
+    -2605,-2605,-2605,-2605,-2605
+    },
+
+    {
+       27,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,
+    -2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,
+    -2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606, 2958,-2606,
+    -2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,
+    -2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,-2606,
+    -2606,-2606,-2606, 2958,-2606,-2606,-2606,-2606,-2606,-2606,
+    -2606,-2606,-2606,-2606,-2606
+    },
+
+    {
+       27,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,
+
+    -2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,
+    -2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,
+    -2607, 2959,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,
+    -2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,-2607,
+    -2607,-2607,-2607,-2607,-2607,-2607, 2959,-2607,-2607,-2607,
+    -2607,-2607,-2607,-2607,-2607
+    },
+
+    {
+       27,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,
+    -2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,
+    -2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608, 2960,-2608,
+    -2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,
+
+    -2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,-2608,
+    -2608,-2608,-2608, 2960,-2608,-2608,-2608,-2608,-2608,-2608,
+    -2608,-2608,-2608,-2608,-2608
+    },
+
+    {
+       27,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,
+    -2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,
+    -2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,
+    -2609, 2961,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,
+    -2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,-2609,
+    -2609,-2609,-2609,-2609,-2609,-2609, 2961,-2609,-2609,-2609,
+    -2609,-2609,-2609,-2609,-2609
+
+    },
+
+    {
+       27,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,
+    -2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,
+    -2610,-2610,-2610,-2610,-2610,-2610,-2610, 2962,-2610,-2610,
+    -2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,
+    -2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,-2610,
+    -2610,-2610, 2962,-2610,-2610,-2610,-2610,-2610,-2610,-2610,
+    -2610,-2610,-2610,-2610,-2610
+    },
+
+    {
+       27,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,
+    -2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,
+    -2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,
+
+    -2611, 2963,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,
+    -2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,-2611,
+    -2611,-2611,-2611,-2611,-2611,-2611, 2963,-2611,-2611,-2611,
+    -2611,-2611,-2611,-2611,-2611
+    },
+
+    {
+       27,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612, 1235,
+    -2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,
+    -2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,
+    -2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,
+    -2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,
+    -2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,-2612,
+
+    -2612,-2612,-2612,-2612,-2612
+    },
+
+    {
+       27,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,
+    -2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,
+    -2613,-2613,-2613,-2613,-2613,-2613,-2613, 2964,-2613,-2613,
+    -2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,
+    -2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,-2613,
+    -2613,-2613, 2964,-2613,-2613,-2613,-2613,-2613,-2613,-2613,
+    -2613,-2613,-2613,-2613,-2613
+    },
+
+    {
+       27,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,
+    -2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,
+
+    -2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,
+    -2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,
+    -2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,
+    -2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,-2614,
+    -2614,-2614,-2614,-2614,-2614
+    },
+
+    {
+       27,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,
+    -2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,
+    -2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,
+    -2615,-2615, 2965,-2615,-2615,-2615,-2615,-2615,-2615,-2615,
+    -2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,-2615,
+
+    -2615,-2615,-2615,-2615,-2615,-2615,-2615, 2965,-2615,-2615,
+    -2615,-2615,-2615,-2615,-2615
+    },
+
+    {
+       27,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,
+    -2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,
+    -2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,
+    -2616,-2616,-2616, 2966,-2616,-2616,-2616,-2616,-2616,-2616,
+    -2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616,
+    -2616,-2616,-2616,-2616,-2616,-2616,-2616,-2616, 2966,-2616,
+    -2616,-2616,-2616,-2616,-2616
+    },
+
+    {
+       27,-2617, 2617, 2617,-2617,-2617,-2617,-2617,-2617,-2617,
+
+    -2617,-2617, 2618,-2617,-2617,-2617,-2617,-2617,-2617,-2617,
+    -2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,
+    -2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,
+    -2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,
+    -2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,-2617,
+    -2617,-2617,-2617,-2617,-2617
+    },
+
+    {
+       27,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,
+    -2618,-2618,-2618,-2618,-2618,-2618, 2967,-2618,-2618,-2618,
+    -2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,
+    -2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,
+
+    -2618,-2618, 2967,-2618,-2618,-2618,-2618,-2618,-2618,-2618,
+    -2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,-2618,
+    -2618,-2618,-2618,-2618,-2618
+    },
+
+    {
+       27,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,
+    -2619,-2619,-2619,-2619, 2968,-2619,-2619,-2619,-2619,-2619,
+    -2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,
+    -2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,
+     2968,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,
+    -2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,-2619,
+    -2619,-2619,-2619,-2619,-2619
+
+    },
+
+    {
+       27,-2620, 2620, 2620,-2620,-2620,-2620,-2620,-2620,-2620,
+    -2620,-2620, 2621,-2620,-2620,-2620,-2620,-2620,-2620,-2620,
+    -2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,
+    -2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,
+    -2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,
+    -2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,-2620,
+    -2620,-2620,-2620,-2620,-2620
+    },
+
+    {
+       27,-2621,-2621,-2621,-2621,-2621,-2621,-2621,-2621,-2621,
+    -2621,-2621,-2621,-2621,-2621,-2621, 2969,-2621,-2621,-2621,
+    -2621,-2621,-2621,-2621,-2621,-2621,-2621,-2621,-2621, 2970,
+
+    -2621,-2621,-2621,-2621,-2621,-2621,-2621,-2621,-2621,-2621,
+    -2621,-2621, 2969,-2621,-2621,-2621,-2621,-2621,-2621,-2621,
+    -2621,-2621,-2621,-2621, 2970,-2621,-2621,-2621,-2621,-2621,
+    -2621,-2621,-2621,-2621,-2621
+    },
+
+    {
+       27,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,
+    -2622,-2622,-2622,-2622, 2971,-2622,-2622,-2622,-2622,-2622,
+    -2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,
+    -2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,
+     2971,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,
+    -2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,-2622,
+
+    -2622,-2622,-2622,-2622,-2622
+    },
+
+    {
+       27,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,
+    -2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,
+    -2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,
+    -2623,-2623,-2623, 2972,-2623,-2623,-2623,-2623,-2623,-2623,
+    -2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623,
+    -2623,-2623,-2623,-2623,-2623,-2623,-2623,-2623, 2972,-2623,
+    -2623,-2623,-2623,-2623,-2623
+    },
+
+    {
+       27,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,
+    -2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,
+
+    -2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,
+    -2624,-2624,-2624, 2973,-2624,-2624,-2624,-2624,-2624,-2624,
+    -2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624,
+    -2624,-2624,-2624,-2624,-2624,-2624,-2624,-2624, 2973,-2624,
+    -2624,-2624,-2624,-2624,-2624
+    },
+
+    {
+       27,-2625, 2974, 2974,-2625,-2625,-2625,-2625,-2625,-2625,
+    -2625,-2625, 2975,-2625,-2625,-2625,-2625,-2625,-2625,-2625,
+    -2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,
+    -2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,
+    -2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,
+
+    -2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,-2625,
+    -2625,-2625,-2625,-2625,-2625
+    },
+
+    {
+       27,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,
+    -2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,
+    -2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,
+    -2626,-2626,-2626, 2976,-2626,-2626,-2626,-2626,-2626,-2626,
+    -2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626,
+    -2626,-2626,-2626,-2626,-2626,-2626,-2626,-2626, 2976,-2626,
+    -2626,-2626,-2626,-2626,-2626
+    },
+
+    {
+       27,-2627, 2977, 2977,-2627,-2627,-2627,-2627,-2627,-2627,
+
+    -2627,-2627, 2978,-2627,-2627,-2627,-2627,-2627,-2627,-2627,
+    -2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,
+    -2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,
+    -2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,
+    -2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,-2627,
+    -2627,-2627,-2627,-2627,-2627
+    },
+
+    {
+       27,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,
+    -2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,
+    -2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,
+    -2628,-2628,-2628, 2979,-2628,-2628,-2628,-2628,-2628,-2628,
+
+    -2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628,
+    -2628,-2628,-2628,-2628,-2628,-2628,-2628,-2628, 2979,-2628,
+    -2628,-2628,-2628,-2628,-2628
+    },
+
+    {
+       27,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629, 2980,
+    -2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,
+    -2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,
+    -2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629, 2981,
+    -2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,
+    -2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,-2629,
+    -2629,-2629,-2629,-2629,-2629
+
+    },
+
+    {
+       27,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,
+    -2630,-2630,-2630,-2630, 2982,-2630,-2630,-2630,-2630,-2630,
+    -2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,
+    -2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,
+     2982,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,
+    -2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,-2630,
+    -2630,-2630,-2630,-2630,-2630
+    },
+
+    {
+       27,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,
+    -2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,
+    -2631,-2631,-2631,-2631,-2631,-2631,-2631, 2983,-2631,-2631,
+
+    -2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,
+    -2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,-2631,
+    -2631,-2631, 2983,-2631,-2631,-2631,-2631,-2631,-2631,-2631,
+    -2631,-2631,-2631,-2631,-2631
+    },
+
+    {
+       27,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632, 1252,
+    -2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,
+    -2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,
+    -2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,
+    -2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,
+    -2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,-2632,
+
+    -2632,-2632,-2632,-2632,-2632
+    },
+
+    {
+       27,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,
+    -2633,-2633,-2633, 2984,-2633,-2633,-2633,-2633,-2633,-2633,
+    -2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,
+    -2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,
+    -2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,
+    -2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,-2633,
+    -2633,-2633,-2633,-2633,-2633
+    },
+
+    {
+       27,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,
+    -2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,
+
+    -2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,
+    -2634,-2634, 2985,-2634,-2634,-2634,-2634,-2634,-2634,-2634,
+    -2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,-2634,
+    -2634,-2634,-2634,-2634,-2634,-2634,-2634, 2985,-2634,-2634,
+    -2634,-2634,-2634,-2634,-2634
+    },
+
+    {
+       27,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,
+    -2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,
+    -2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635, 2986,-2635,
+    -2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,
+    -2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,-2635,
+
+    -2635,-2635,-2635, 2986,-2635,-2635,-2635,-2635,-2635,-2635,
+    -2635,-2635,-2635,-2635,-2635
+    },
+
+    {
+       27,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,
+    -2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,
+    -2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,
+    -2636, 2987,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,
+    -2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,-2636,
+    -2636,-2636,-2636,-2636,-2636,-2636, 2987,-2636,-2636,-2636,
+    -2636,-2636,-2636,-2636,-2636
+    },
+
+    {
+       27,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,
+
+    -2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,
+    -2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,
+    -2637,-2637,-2637, 2988,-2637,-2637,-2637,-2637,-2637,-2637,
+    -2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637,
+    -2637,-2637,-2637,-2637,-2637,-2637,-2637,-2637, 2988,-2637,
+    -2637,-2637,-2637,-2637,-2637
+    },
+
+    {
+       27,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,
+    -2638,-2638,-2638,-2638, 2989,-2638,-2638,-2638,-2638,-2638,
+    -2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,
+    -2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,
+
+     2989,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,
+    -2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,-2638,
+    -2638,-2638,-2638,-2638,-2638
+    },
+
+    {
+       27,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,
+    -2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639, 2990,-2639,
+    -2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,
+    -2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,
+    -2639,-2639,-2639,-2639, 2990,-2639,-2639,-2639,-2639,-2639,
+    -2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,-2639,
+    -2639,-2639,-2639,-2639,-2639
+
+    },
+
+    {
+       27,-2640, 2640, 2640,-2640,-2640,-2640,-2640,-2640,-2640,
+    -2640,-2640, 2641,-2640,-2640,-2640,-2640,-2640,-2640,-2640,
+    -2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,
+    -2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,
+    -2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,
+    -2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,-2640,
+    -2640,-2640,-2640,-2640,-2640
+    },
+
+    {
+       27,-2641,-2641,-2641,-2641,-2641,-2641,-2641,-2641,-2641,
+    -2641,-2641,-2641,-2641,-2641,-2641, 2991,-2641,-2641,-2641,
+    -2641,-2641,-2641,-2641,-2641,-2641,-2641,-2641,-2641, 2992,
+
+    -2641,-2641,-2641,-2641,-2641,-2641,-2641,-2641,-2641,-2641,
+    -2641,-2641, 2991,-2641,-2641,-2641,-2641,-2641,-2641,-2641,
+    -2641,-2641,-2641,-2641, 2992,-2641,-2641,-2641,-2641,-2641,
+    -2641,-2641,-2641,-2641,-2641
+    },
+
+    {
+       27,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,
+    -2642,-2642,-2642,-2642, 2993,-2642,-2642,-2642,-2642,-2642,
+    -2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,
+    -2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,
+     2993,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,
+    -2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,-2642,
+
+    -2642,-2642,-2642,-2642,-2642
+    },
+
+    {
+       27,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643, 2994,
+    -2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,
+    -2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,
+    -2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643, 2995,
+    -2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,
+    -2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,-2643,
+    -2643,-2643,-2643,-2643,-2643
+    },
+
+    {
+       27,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,
+    -2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,
+
+    -2644,-2644, 2996,-2644,-2644,-2644,-2644,-2644,-2644,-2644,
+    -2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,
+    -2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644, 2996,-2644,
+    -2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,-2644,
+    -2644,-2644,-2644,-2644,-2644
+    },
+
+    {
+       27,-2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645,
+    -2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645, 2997,-2645,
+    -2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645,
+    -2645,-2645,-2645,-2645, 2998,-2645,-2645,-2645,-2645,-2645,
+    -2645,-2645,-2645,-2645, 2997,-2645,-2645,-2645,-2645,-2645,
+
+    -2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645,-2645, 2998,
+    -2645,-2645,-2645,-2645,-2645
+    },
+
+    {
+       27,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,
+    -2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,
+    -2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646, 2999,-2646,
+    -2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,
+    -2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,-2646,
+    -2646,-2646,-2646, 2999,-2646,-2646,-2646,-2646,-2646,-2646,
+    -2646,-2646,-2646,-2646,-2646
+    },
+
+    {
+       27,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,
+
+    -2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,
+    -2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,
+    -2647, 3000,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,
+    -2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,-2647,
+    -2647,-2647,-2647,-2647,-2647,-2647, 3000,-2647,-2647,-2647,
+    -2647,-2647,-2647,-2647,-2647
+    },
+
+    {
+       27,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,
+    -2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,
+    -2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648, 3001,-2648,
+    -2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,
+
+    -2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,-2648,
+    -2648,-2648,-2648, 3001,-2648,-2648,-2648,-2648,-2648,-2648,
+    -2648,-2648,-2648,-2648,-2648
+    },
+
+    {
+       27,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,
+    -2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,
+    -2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,
+    -2649, 3002,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,
+    -2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,-2649,
+    -2649,-2649,-2649,-2649,-2649,-2649, 3002,-2649,-2649,-2649,
+    -2649,-2649,-2649,-2649,-2649
+
+    },
+
+    {
+       27,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,
+    -2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,
+    -2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650, 3003,-2650,
+    -2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,
+    -2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,-2650,
+    -2650,-2650,-2650, 3003,-2650,-2650,-2650,-2650,-2650,-2650,
+    -2650,-2650,-2650,-2650,-2650
+    },
+
+    {
+       27,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,
+    -2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,
+    -2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,
+
+    -2651, 3004,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,
+    -2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,-2651,
+    -2651,-2651,-2651,-2651,-2651,-2651, 3004,-2651,-2651,-2651,
+    -2651,-2651,-2651,-2651,-2651
+    },
+
+    {
+       27,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,
+    -2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,
+    -2652,-2652,-2652,-2652,-2652,-2652,-2652, 3005,-2652,-2652,
+    -2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,
+    -2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,-2652,
+    -2652,-2652, 3005,-2652,-2652,-2652,-2652,-2652,-2652,-2652,
+
+    -2652,-2652,-2652,-2652,-2652
+    },
+
+    {
+       27,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,
+    -2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,
+    -2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,
+    -2653, 3006,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,
+    -2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,-2653,
+    -2653,-2653,-2653,-2653,-2653,-2653, 3006,-2653,-2653,-2653,
+    -2653,-2653,-2653,-2653,-2653
+    },
+
+    {
+       27,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654, 1267,
+    -2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,
+
+    -2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,
+    -2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,
+    -2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,
+    -2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,-2654,
+    -2654,-2654,-2654,-2654,-2654
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, 3007,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366, 3007,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367, 3008,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+     3008,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,
+
+    -2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,
+    -2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,
+    -2657,-2657,-2657, 3009,-2657,-2657,-2657,-2657,-2657,-2657,
+    -2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657,
+    -2657,-2657,-2657,-2657,-2657,-2657,-2657,-2657, 3009,-2657,
+    -2657,-2657,-2657,-2657,-2657
+    },
+
+    {
+       27,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,
+    -2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658, 3010,-2658,
+    -2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,
+    -2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,
+
+    -2658,-2658,-2658,-2658, 3010,-2658,-2658,-2658,-2658,-2658,
+    -2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,-2658,
+    -2658,-2658,-2658,-2658,-2658
+    },
+
+    {
+       27,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,
+    -2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,
+    -2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659, 3011,-2659,
+    -2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,
+    -2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,-2659,
+    -2659,-2659,-2659, 3011,-2659,-2659,-2659,-2659,-2659,-2659,
+    -2659,-2659,-2659,-2659,-2659
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3012,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3012,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,
+    -2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,
+    -2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661, 3013,-2661,
+
+    -2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,
+    -2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,-2661,
+    -2661,-2661,-2661, 3013,-2661,-2661,-2661,-2661,-2661,-2661,
+    -2661,-2661,-2661,-2661,-2661
+    },
+
+    {
+       27,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,
+    -2662,-2662,-2662,-2662, 3014,-2662,-2662,-2662,-2662,-2662,
+    -2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,
+    -2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,
+     3014,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,
+    -2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,-2662,
+
+    -2662,-2662,-2662,-2662,-2662
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3015,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3015,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,
+    -2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664, 3016,-2664,
+
+    -2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,
+    -2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,
+    -2664,-2664,-2664,-2664, 3016,-2664,-2664,-2664,-2664,-2664,
+    -2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,-2664,
+    -2664,-2664,-2664,-2664,-2664
+    },
+
+    {
+       27,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,
+    -2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665, 3017,
+    -2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,
+    -2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,
+    -2665,-2665,-2665,-2665,-2665, 3017,-2665,-2665,-2665,-2665,
+
+    -2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,-2665,
+    -2665,-2665,-2665,-2665,-2665
+    },
+
+    {
+       27,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,
+    -2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,
+    -2666,-2666,-2666,-2666,-2666,-2666, 3018,-2666,-2666,-2666,
+    -2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,
+    -2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,
+    -2666, 3018,-2666,-2666,-2666,-2666,-2666,-2666,-2666,-2666,
+    -2666,-2666,-2666,-2666,-2666
+    },
+
+    {
+       27,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,
+
+    -2667,-2667,-2667,-2667,-2667,-2667, 3019,-2667,-2667, 3020,
+    -2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,
+    -2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,
+    -2667,-2667, 3019,-2667,-2667, 3020,-2667,-2667,-2667,-2667,
+    -2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,-2667,
+    -2667,-2667,-2667,-2667,-2667
+    },
+
+    {
+       27,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,
+    -2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668, 3021,-2668,
+    -2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,
+    -2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,
+
+    -2668,-2668,-2668,-2668, 3021,-2668,-2668,-2668,-2668,-2668,
+    -2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,-2668,
+    -2668,-2668,-2668,-2668,-2668
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 3022,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3022,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 3023,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3023,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2671, 2671, 2671,-2671,-2671,-2671,-2671,-2671,-2671,
+    -2671,-2671, 2672,-2671,-2671,-2671,-2671,-2671,-2671,-2671,
+    -2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,
+
+    -2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,
+    -2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,
+    -2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,-2671,
+    -2671,-2671,-2671,-2671,-2671
+    },
+
+    {
+       27,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,
+    -2672,-2672,-2672,-2672,-2672,-2672, 3024,-2672,-2672,-2672,
+    -2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,
+    -2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,
+    -2672,-2672, 3024,-2672,-2672,-2672,-2672,-2672,-2672,-2672,
+    -2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,-2672,
+
+    -2672,-2672,-2672,-2672,-2672
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 3025,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3025,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2674, 2674, 2674,-2674,-2674,-2674,-2674,-2674,-2674,
+    -2674,-2674, 2675,-2674,-2674,-2674,-2674,-2674,-2674,-2674,
+
+    -2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,
+    -2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,
+    -2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,
+    -2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,-2674,
+    -2674,-2674,-2674,-2674,-2674
+    },
+
+    {
+       27,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,
+    -2675,-2675,-2675,-2675,-2675,-2675, 3026,-2675,-2675,-2675,
+    -2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,
+    -2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,
+    -2675,-2675, 3026,-2675,-2675,-2675,-2675,-2675,-2675,-2675,
+
+    -2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,-2675,
+    -2675,-2675,-2675,-2675,-2675
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 3027,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3027,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 3028,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3029,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 3029,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,
+    -2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,
+    -2679,-2679,-2679,-2679,-2679,-2679, 3030,-2679,-2679,-2679,
+    -2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,
+    -2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,
+    -2679, 3030,-2679,-2679,-2679,-2679,-2679,-2679,-2679,-2679,
+    -2679,-2679,-2679,-2679,-2679
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3031,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3031,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,
+    -2681,-2681, 1290,-2681,-2681,-2681,-2681,-2681,-2681,-2681,
+    -2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,
+
+    -2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,
+    -2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,
+    -2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,-2681,
+    -2681,-2681,-2681,-2681,-2681
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3032,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3033,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 3033,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,
+    -2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,
+    -2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,
+    -2683,-2683,-2683, 3034,-2683,-2683,-2683,-2683,-2683,-2683,
+    -2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683,
+    -2683,-2683,-2683,-2683,-2683,-2683,-2683,-2683, 3034,-2683,
+    -2683,-2683,-2683,-2683,-2683
+    },
+
+    {
+       27,-2684, 3035, 3035,-2684,-2684,-2684,-2684,-2684,-2684,
+    -2684,-2684, 3036,-2684,-2684,-2684,-2684,-2684,-2684,-2684,
+
+    -2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,
+    -2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,
+    -2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,
+    -2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,-2684,
+    -2684,-2684,-2684,-2684,-2684
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3037,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184, 3037,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,
+    -2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,
+    -2686,-2686,-2686,-2686,-2686,-2686,-2686, 3038,-2686,-2686,
+    -2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,
+    -2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,-2686,
+    -2686,-2686, 3038,-2686,-2686,-2686,-2686,-2686,-2686,-2686,
+    -2686,-2686,-2686,-2686,-2686
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1297,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,
+    -2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688, 3039,-2688,
+    -2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,
+    -2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,
+
+    -2688,-2688,-2688,-2688, 3039,-2688,-2688,-2688,-2688,-2688,
+    -2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,-2688,
+    -2688,-2688,-2688,-2688,-2688
+    },
+
+    {
+       27,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,
+    -2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,
+    -2689,-2689,-2689,-2689,-2689,-2689, 3040,-2689,-2689,-2689,
+    -2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,
+    -2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,
+    -2689, 3040,-2689,-2689,-2689,-2689,-2689,-2689,-2689,-2689,
+    -2689,-2689,-2689,-2689,-2689
+
+    },
+
+    {
+       27,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,
+    -2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,
+    -2690,-2690,-2690,-2690,-2690,-2690,-2690, 3041,-2690,-2690,
+    -2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,
+    -2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,-2690,
+    -2690,-2690, 3041,-2690,-2690,-2690,-2690,-2690,-2690,-2690,
+    -2690,-2690,-2690,-2690,-2690
+    },
+
+    {
+       27,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,
+    -2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,
+    -2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691, 3042,-2691,
+
+    -2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,
+    -2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,-2691,
+    -2691,-2691,-2691, 3042,-2691,-2691,-2691,-2691,-2691,-2691,
+    -2691,-2691,-2691,-2691,-2691
+    },
+
+    {
+       27,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,
+    -2692,-2692,-2692,-2692, 3043,-2692,-2692,-2692,-2692,-2692,
+    -2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,
+    -2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,
+     3043,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,
+    -2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,-2692,
+
+    -2692,-2692,-2692,-2692,-2692
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3044,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3044,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3045,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3046,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184, 3046,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 3047,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3047,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184, 3048,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3048,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184, 3049,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184, 3049,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,
+    -2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,
+    -2699,-2699,-2699,-2699,-2699,-2699,-2699, 3050,-2699,-2699,
+    -2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,
+    -2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,-2699,
+    -2699,-2699, 3050,-2699,-2699,-2699,-2699,-2699,-2699,-2699,
+    -2699,-2699,-2699,-2699,-2699
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1307,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,
+    -2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,
+    -2701,-2701,-2701,-2701,-2701,-2701,-2701, 3051,-2701,-2701,
+
+    -2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,
+    -2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,-2701,
+    -2701,-2701, 3051,-2701,-2701,-2701,-2701,-2701,-2701,-2701,
+    -2701,-2701,-2701,-2701,-2701
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1309,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,
+    -2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,
+    -2703,-2703,-2703,-2703,-2703,-2703,-2703, 3052,-2703,-2703,
+    -2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,
+    -2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,-2703,
+    -2703,-2703, 3052,-2703,-2703,-2703,-2703,-2703,-2703,-2703,
+    -2703,-2703,-2703,-2703,-2703
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1311,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 3053,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3053,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,
+    -2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,
+    -2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,
+    -2706,-2706,-2706, 3054,-2706,-2706,-2706,-2706,-2706,-2706,
+    -2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706,
+    -2706,-2706,-2706,-2706,-2706,-2706,-2706,-2706, 3054,-2706,
+    -2706,-2706,-2706,-2706,-2706
+    },
+
+    {
+       27,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,
+
+    -2707,-2707,-2707,-2707, 3055,-2707,-2707,-2707,-2707,-2707,
+    -2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,
+    -2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,
+     3055,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,
+    -2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,-2707,
+    -2707,-2707,-2707,-2707,-2707
+    },
+
+    {
+       27,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,
+    -2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,
+    -2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708, 3056,-2708,
+    -2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,
+
+    -2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,-2708,
+    -2708,-2708,-2708, 3056,-2708,-2708,-2708,-2708,-2708,-2708,
+    -2708,-2708,-2708,-2708,-2708
+    },
+
+    {
+       27,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,
+    -2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709, 3057,-2709,
+    -2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,
+    -2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,
+    -2709,-2709,-2709,-2709, 3057,-2709,-2709,-2709,-2709,-2709,
+    -2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,-2709,
+    -2709,-2709,-2709,-2709,-2709
+
+    },
+
+    {
+       27,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,
+    -2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,
+    -2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710, 3058,-2710,
+    -2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,
+    -2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,-2710,
+    -2710,-2710,-2710, 3058,-2710,-2710,-2710,-2710,-2710,-2710,
+    -2710,-2710,-2710,-2710,-2710
+    },
+
+    {
+       27,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,
+    -2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,
+    -2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,
+
+    -2711, 3059,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,
+    -2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,-2711,
+    -2711,-2711,-2711,-2711,-2711,-2711, 3059,-2711,-2711,-2711,
+    -2711,-2711,-2711,-2711,-2711
+    },
+
+    {
+       27,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,
+    -2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,
+    -2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712, 3060,-2712,
+    -2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,
+    -2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,-2712,
+    -2712,-2712,-2712, 3060,-2712,-2712,-2712,-2712,-2712,-2712,
+
+    -2712,-2712,-2712,-2712,-2712
+    },
+
+    {
+       27,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,
+    -2713,-2713,-2713,-2713, 3061,-2713,-2713,-2713,-2713,-2713,
+    -2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,
+    -2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,
+     3061,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,
+    -2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,-2713,
+    -2713,-2713,-2713,-2713,-2713
+    },
+
+    {
+       27,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,
+    -2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,
+
+    -2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,
+    -2714, 3062,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,
+    -2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,-2714,
+    -2714,-2714,-2714,-2714,-2714,-2714, 3062,-2714,-2714,-2714,
+    -2714,-2714,-2714,-2714,-2714
+    },
+
+    {
+       27,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,
+    -2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715, 3063,-2715,
+    -2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,
+    -2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,
+    -2715,-2715,-2715,-2715, 3063,-2715,-2715,-2715,-2715,-2715,
+
+    -2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,-2715,
+    -2715,-2715,-2715,-2715,-2715
+    },
+
+    {
+       27,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,
+    -2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716, 3064,-2716,
+    -2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,
+    -2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,
+    -2716,-2716,-2716,-2716, 3064,-2716,-2716,-2716,-2716,-2716,
+    -2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,-2716,
+    -2716,-2716,-2716,-2716,-2716
+    },
+
+    {
+       27,-2717, 2717, 2717,-2717,-2717,-2717,-2717,-2717,-2717,
+
+    -2717,-2717, 2718,-2717,-2717,-2717,-2717,-2717,-2717,-2717,
+    -2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,
+    -2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,
+    -2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,
+    -2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,-2717,
+    -2717,-2717,-2717,-2717,-2717
+    },
+
+    {
+       27,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,
+    -2718,-2718,-2718,-2718,-2718,-2718, 3065,-2718,-2718,-2718,
+    -2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,
+    -2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,
+
+    -2718,-2718, 3065,-2718,-2718,-2718,-2718,-2718,-2718,-2718,
+    -2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,-2718,
+    -2718,-2718,-2718,-2718,-2718
+    },
+
+    {
+       27,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,
+    -2719,-2719,-2719,-2719, 3066,-2719,-2719,-2719,-2719,-2719,
+    -2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,
+    -2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,
+     3066,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,
+    -2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,-2719,
+    -2719,-2719,-2719,-2719,-2719
+
+    },
+
+    {
+       27,-2720, 2720, 2720,-2720,-2720,-2720,-2720,-2720,-2720,
+    -2720,-2720, 2721,-2720,-2720,-2720,-2720,-2720,-2720,-2720,
+    -2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,
+    -2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,
+    -2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,
+    -2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,-2720,
+    -2720,-2720,-2720,-2720,-2720
+    },
+
+    {
+       27,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,
+    -2721,-2721,-2721,-2721,-2721,-2721, 3067,-2721,-2721,-2721,
+    -2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,
+
+    -2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,
+    -2721,-2721, 3067,-2721,-2721,-2721,-2721,-2721,-2721,-2721,
+    -2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,-2721,
+    -2721,-2721,-2721,-2721,-2721
+    },
+
+    {
+       27,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,
+    -2722,-2722,-2722,-2722, 3068,-2722,-2722,-2722,-2722,-2722,
+    -2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,
+    -2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,
+     3068,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,
+    -2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,-2722,
+
+    -2722,-2722,-2722,-2722,-2722
+    },
+
+    {
+       27,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,
+    -2723,-2723,-2723, 3069,-2723,-2723,-2723,-2723,-2723,-2723,
+    -2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,
+    -2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,
+    -2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,
+    -2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,-2723,
+    -2723,-2723,-2723,-2723,-2723
+    },
+
+    {
+       27,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,
+    -2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,
+
+    -2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,
+    -2724,-2724, 3070,-2724,-2724,-2724,-2724,-2724,-2724,-2724,
+    -2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,-2724,
+    -2724,-2724,-2724,-2724,-2724,-2724,-2724, 3070,-2724,-2724,
+    -2724,-2724,-2724,-2724,-2724
+    },
+
+    {
+       27,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,
+    -2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,
+    -2725,-2725,-2725,-2725,-2725,-2725, 3071,-2725,-2725,-2725,
+    -2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,
+    -2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,
+
+    -2725, 3071,-2725,-2725,-2725,-2725,-2725,-2725,-2725,-2725,
+    -2725,-2725,-2725,-2725,-2725
+    },
+
+    {
+       27,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,
+    -2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,
+    -2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,
+    -2726,-2726,-2726, 3072,-2726,-2726,-2726,-2726,-2726,-2726,
+    -2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726,
+    -2726,-2726,-2726,-2726,-2726,-2726,-2726,-2726, 3072,-2726,
+    -2726,-2726,-2726,-2726,-2726
+    },
+
+    {
+       27,-2727, 3073, 3073,-2727,-2727,-2727,-2727,-2727,-2727,
+
+    -2727,-2727, 3074,-2727,-2727,-2727,-2727,-2727,-2727,-2727,
+    -2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,
+    -2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,
+    -2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,
+    -2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,-2727,
+    -2727,-2727,-2727,-2727,-2727
+    },
+
+    {
+       27,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,
+    -2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,
+    -2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,
+    -2728,-2728,-2728, 3075,-2728,-2728,-2728,-2728,-2728,-2728,
+
+    -2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728,
+    -2728,-2728,-2728,-2728,-2728,-2728,-2728,-2728, 3075,-2728,
+    -2728,-2728,-2728,-2728,-2728
+    },
+
+    {
+       27,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,
+    -2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,
+    -2729,-2729,-2729,-2729,-2729,-2729,-2729, 3076,-2729,-2729,
+    -2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,
+    -2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,-2729,
+    -2729,-2729, 3076,-2729,-2729,-2729,-2729,-2729,-2729,-2729,
+    -2729,-2729,-2729,-2729,-2729
+
+    },
+
+    {
+       27,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730, 1341,
+    -2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,
+    -2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,
+    -2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,
+    -2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,
+    -2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,-2730,
+    -2730,-2730,-2730,-2730,-2730
+    },
+
+    {
+       27,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,
+    -2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731, 3077,-2731,
+    -2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,
+
+    -2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,
+    -2731,-2731,-2731,-2731, 3077,-2731,-2731,-2731,-2731,-2731,
+    -2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,-2731,
+    -2731,-2731,-2731,-2731,-2731
+    },
+
+    {
+       27,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,
+    -2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,
+    -2732,-2732,-2732,-2732,-2732,-2732, 3078,-2732,-2732,-2732,
+    -2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,
+    -2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,
+    -2732, 3078,-2732,-2732,-2732,-2732,-2732,-2732,-2732,-2732,
+
+    -2732,-2732,-2732,-2732,-2732
+    },
+
+    {
+       27,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,
+    -2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,
+    -2733,-2733,-2733,-2733,-2733,-2733,-2733, 3079,-2733,-2733,
+    -2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,
+    -2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,-2733,
+    -2733,-2733, 3079,-2733,-2733,-2733,-2733,-2733,-2733,-2733,
+    -2733,-2733,-2733,-2733,-2733
+    },
+
+    {
+       27,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,
+    -2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,
+
+    -2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734, 3080,-2734,
+    -2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,
+    -2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,-2734,
+    -2734,-2734,-2734, 3080,-2734,-2734,-2734,-2734,-2734,-2734,
+    -2734,-2734,-2734,-2734,-2734
+    },
+
+    {
+       27,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,
+    -2735,-2735,-2735,-2735, 3081,-2735,-2735,-2735,-2735,-2735,
+    -2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,
+    -2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,
+     3081,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,
+
+    -2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,-2735,
+    -2735,-2735,-2735,-2735,-2735
+    },
+
+    {
+       27,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,
+    -2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,
+    -2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,
+    -2736, 3082,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,
+    -2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,-2736,
+    -2736,-2736,-2736,-2736,-2736,-2736, 3082,-2736,-2736,-2736,
+    -2736,-2736,-2736,-2736,-2736
+    },
+
+    {
+       27,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,
+
+    -2737,-2737,-2737, 3083,-2737,-2737,-2737,-2737,-2737,-2737,
+    -2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,
+    -2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,
+    -2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,
+    -2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,-2737,
+    -2737,-2737,-2737,-2737,-2737
+    },
+
+    {
+       27,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,
+    -2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,
+    -2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,
+    -2738,-2738, 3084,-2738,-2738,-2738,-2738,-2738,-2738,-2738,
+
+    -2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,-2738,
+    -2738,-2738,-2738,-2738,-2738,-2738,-2738, 3084,-2738,-2738,
+    -2738,-2738,-2738,-2738,-2738
+    },
+
+    {
+       27,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,
+    -2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,
+    -2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739, 3085,-2739,
+    -2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,
+    -2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,-2739,
+    -2739,-2739,-2739, 3085,-2739,-2739,-2739,-2739,-2739,-2739,
+    -2739,-2739,-2739,-2739,-2739
+
+    },
+
+    {
+       27,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,
+    -2740,-2740,-2740,-2740,-2740,-2740, 3086,-2740,-2740,-2740,
+    -2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,
+    -2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,
+    -2740,-2740, 3086,-2740,-2740,-2740,-2740,-2740,-2740,-2740,
+    -2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,-2740,
+    -2740,-2740,-2740,-2740,-2740
+    },
+
+    {
+       27,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,
+    -2741,-2741,-2741,-2741,-2741, 3087,-2741,-2741,-2741,-2741,
+    -2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,
+
+    -2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,
+    -2741, 3087,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,
+    -2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,-2741,
+    -2741,-2741,-2741,-2741,-2741
+    },
+
+    {
+       27,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,
+    -2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,
+    -2742,-2742,-2742,-2742,-2742,-2742,-2742, 3088,-2742,-2742,
+    -2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,
+    -2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,-2742,
+    -2742,-2742, 3088,-2742,-2742,-2742,-2742,-2742,-2742,-2742,
+
+    -2742,-2742,-2742,-2742,-2742
+    },
+
+    {
+       27,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743, 1351,
+    -2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,
+    -2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,
+    -2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,
+    -2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,
+    -2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,-2743,
+    -2743,-2743,-2743,-2743,-2743
+    },
+
+    {
+       27,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,
+    -2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,
+
+    -2744,-2744,-2744,-2744,-2744,-2744,-2744, 3089,-2744,-2744,
+    -2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,
+    -2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,-2744,
+    -2744,-2744, 3089,-2744,-2744,-2744,-2744,-2744,-2744,-2744,
+    -2744,-2744,-2744,-2744,-2744
+    },
+
+    {
+       27,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745, 1353,
+    -2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,
+    -2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,
+    -2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,
+    -2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,
+
+    -2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,-2745,
+    -2745,-2745,-2745,-2745,-2745
+    },
+
+    {
+       27,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,
+    -2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,
+    -2746,-2746,-2746,-2746,-2746,-2746,-2746, 3090,-2746,-2746,
+    -2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,
+    -2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,-2746,
+    -2746,-2746, 3090,-2746,-2746,-2746,-2746,-2746,-2746,-2746,
+    -2746,-2746,-2746,-2746,-2746
+    },
+
+    {
+       27,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747, 1355,
+
+    -2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,
+    -2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,
+    -2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,
+    -2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,
+    -2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,-2747,
+    -2747,-2747,-2747,-2747,-2747
+    },
+
+    {
+       27,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,
+    -2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,
+    -2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,
+    -2748,-2748,-2748, 3091,-2748,-2748,-2748,-2748,-2748,-2748,
+
+    -2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748,
+    -2748,-2748,-2748,-2748,-2748,-2748,-2748,-2748, 3091,-2748,
+    -2748,-2748,-2748,-2748,-2748
+    },
+
+    {
+       27,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,
+    -2749,-2749,-2749,-2749, 3092,-2749,-2749,-2749,-2749,-2749,
+    -2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,
+    -2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,
+     3092,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,
+    -2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,-2749,
+    -2749,-2749,-2749,-2749,-2749
+
+    },
+
+    {
+       27,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,
+    -2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,
+    -2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750, 3093,-2750,
+    -2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,
+    -2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,-2750,
+    -2750,-2750,-2750, 3093,-2750,-2750,-2750,-2750,-2750,-2750,
+    -2750,-2750,-2750,-2750,-2750
+    },
+
+    {
+       27,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,
+    -2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751, 3094,-2751,
+    -2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,
+
+    -2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,
+    -2751,-2751,-2751,-2751, 3094,-2751,-2751,-2751,-2751,-2751,
+    -2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,-2751,
+    -2751,-2751,-2751,-2751,-2751
+    },
+
+    {
+       27,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,
+    -2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,
+    -2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752, 3095,-2752,
+    -2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,
+    -2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,-2752,
+    -2752,-2752,-2752, 3095,-2752,-2752,-2752,-2752,-2752,-2752,
+
+    -2752,-2752,-2752,-2752,-2752
+    },
+
+    {
+       27,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,
+    -2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,
+    -2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,
+    -2753, 3096,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,
+    -2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,-2753,
+    -2753,-2753,-2753,-2753,-2753,-2753, 3096,-2753,-2753,-2753,
+    -2753,-2753,-2753,-2753,-2753
+    },
+
+    {
+       27,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,
+    -2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,
+
+    -2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754, 3097,-2754,
+    -2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,
+    -2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,-2754,
+    -2754,-2754,-2754, 3097,-2754,-2754,-2754,-2754,-2754,-2754,
+    -2754,-2754,-2754,-2754,-2754
+    },
+
+    {
+       27,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,
+    -2755,-2755,-2755,-2755, 3098,-2755,-2755,-2755,-2755,-2755,
+    -2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,
+    -2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,
+     3098,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,
+
+    -2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,-2755,
+    -2755,-2755,-2755,-2755,-2755
+    },
+
+    {
+       27,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,
+    -2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,
+    -2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,
+    -2756, 3099,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,
+    -2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,-2756,
+    -2756,-2756,-2756,-2756,-2756,-2756, 3099,-2756,-2756,-2756,
+    -2756,-2756,-2756,-2756,-2756
+    },
+
+    {
+       27,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,
+
+    -2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757, 3100,-2757,
+    -2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,
+    -2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,
+    -2757,-2757,-2757,-2757, 3100,-2757,-2757,-2757,-2757,-2757,
+    -2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,-2757,
+    -2757,-2757,-2757,-2757,-2757
+    },
+
+    {
+       27,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,
+    -2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758, 3101,-2758,
+    -2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,
+    -2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,
+
+    -2758,-2758,-2758,-2758, 3101,-2758,-2758,-2758,-2758,-2758,
+    -2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,-2758,
+    -2758,-2758,-2758,-2758,-2758
+    },
+
+    {
+       27,-2759, 2759, 2759,-2759,-2759,-2759,-2759,-2759,-2759,
+    -2759,-2759, 2760,-2759,-2759,-2759,-2759,-2759,-2759,-2759,
+    -2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,
+    -2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,
+    -2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,
+    -2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,-2759,
+    -2759,-2759,-2759,-2759,-2759
+
+    },
+
+    {
+       27,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,
+    -2760,-2760,-2760,-2760,-2760,-2760, 3102,-2760,-2760,-2760,
+    -2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,
+    -2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,
+    -2760,-2760, 3102,-2760,-2760,-2760,-2760,-2760,-2760,-2760,
+    -2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,-2760,
+    -2760,-2760,-2760,-2760,-2760
+    },
+
+    {
+       27,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,
+    -2761,-2761,-2761,-2761, 3103,-2761,-2761,-2761,-2761,-2761,
+    -2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,
+
+    -2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,
+     3103,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,
+    -2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,-2761,
+    -2761,-2761,-2761,-2761,-2761
+    },
+
+    {
+       27,-2762, 2762, 2762,-2762,-2762,-2762,-2762,-2762,-2762,
+    -2762,-2762, 2763,-2762,-2762,-2762,-2762,-2762,-2762,-2762,
+    -2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,
+    -2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,
+    -2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,
+    -2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,-2762,
+
+    -2762,-2762,-2762,-2762,-2762
+    },
+
+    {
+       27,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,
+    -2763,-2763,-2763,-2763,-2763,-2763, 3104,-2763,-2763,-2763,
+    -2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,
+    -2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,
+    -2763,-2763, 3104,-2763,-2763,-2763,-2763,-2763,-2763,-2763,
+    -2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,-2763,
+    -2763,-2763,-2763,-2763,-2763
+    },
+
+    {
+       27,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,
+    -2764,-2764,-2764,-2764, 3105,-2764,-2764,-2764,-2764,-2764,
+
+    -2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,
+    -2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,
+     3105,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,
+    -2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,-2764,
+    -2764,-2764,-2764,-2764,-2764
+    },
+
+    {
+       27,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,
+    -2765,-2765,-2765, 3106,-2765,-2765,-2765,-2765,-2765,-2765,
+    -2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,
+    -2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,
+    -2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,
+
+    -2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,-2765,
+    -2765,-2765,-2765,-2765,-2765
+    },
+
+    {
+       27,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,
+    -2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,
+    -2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,
+    -2766,-2766, 3107,-2766,-2766,-2766,-2766,-2766,-2766,-2766,
+    -2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,-2766,
+    -2766,-2766,-2766,-2766,-2766,-2766,-2766, 3107,-2766,-2766,
+    -2766,-2766,-2766,-2766,-2766
+    },
+
+    {
+       27,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,
+
+    -2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,
+    -2767,-2767,-2767,-2767,-2767,-2767, 3108,-2767,-2767,-2767,
+    -2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,
+    -2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,
+    -2767, 3108,-2767,-2767,-2767,-2767,-2767,-2767,-2767,-2767,
+    -2767,-2767,-2767,-2767,-2767
+    },
+
+    {
+       27,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,
+    -2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,
+    -2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,
+    -2768,-2768,-2768, 3109,-2768,-2768,-2768,-2768,-2768,-2768,
+
+    -2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768,
+    -2768,-2768,-2768,-2768,-2768,-2768,-2768,-2768, 3109,-2768,
+    -2768,-2768,-2768,-2768,-2768
+    },
+
+    {
+       27,-2769, 3110, 3110,-2769,-2769,-2769,-2769,-2769,-2769,
+    -2769,-2769, 3111,-2769,-2769,-2769,-2769,-2769,-2769,-2769,
+    -2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,
+    -2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,
+    -2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,
+    -2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,-2769,
+    -2769,-2769,-2769,-2769,-2769
+
+    },
+
+    {
+       27,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,
+    -2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,
+    -2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,
+    -2770,-2770,-2770, 3112,-2770,-2770,-2770,-2770,-2770,-2770,
+    -2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770,
+    -2770,-2770,-2770,-2770,-2770,-2770,-2770,-2770, 3112,-2770,
+    -2770,-2770,-2770,-2770,-2770
+    },
+
+    {
+       27,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,
+    -2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,
+    -2771,-2771,-2771,-2771,-2771,-2771,-2771, 3113,-2771,-2771,
+
+    -2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,
+    -2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,-2771,
+    -2771,-2771, 3113,-2771,-2771,-2771,-2771,-2771,-2771,-2771,
+    -2771,-2771,-2771,-2771,-2771
+    },
+
+    {
+       27,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772, 1380,
+    -2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,
+    -2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,
+    -2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,
+    -2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,
+    -2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,-2772,
+
+    -2772,-2772,-2772,-2772,-2772
+    },
+
+    {
+       27,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,
+    -2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773, 3114,-2773,
+    -2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,
+    -2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,
+    -2773,-2773,-2773,-2773, 3114,-2773,-2773,-2773,-2773,-2773,
+    -2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,-2773,
+    -2773,-2773,-2773,-2773,-2773
+    },
+
+    {
+       27,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,
+    -2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,
+
+    -2774,-2774,-2774,-2774,-2774,-2774, 3115,-2774,-2774,-2774,
+    -2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,
+    -2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,
+    -2774, 3115,-2774,-2774,-2774,-2774,-2774,-2774,-2774,-2774,
+    -2774,-2774,-2774,-2774,-2774
+    },
+
+    {
+       27,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,
+    -2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,
+    -2775,-2775,-2775,-2775,-2775,-2775,-2775, 3116,-2775,-2775,
+    -2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,
+    -2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,-2775,
+
+    -2775,-2775, 3116,-2775,-2775,-2775,-2775,-2775,-2775,-2775,
+    -2775,-2775,-2775,-2775,-2775
+    },
+
+    {
+       27,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,
+    -2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,
+    -2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776, 3117,-2776,
+    -2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,
+    -2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,-2776,
+    -2776,-2776,-2776, 3117,-2776,-2776,-2776,-2776,-2776,-2776,
+    -2776,-2776,-2776,-2776,-2776
+    },
+
+    {
+       27,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,
+
+    -2777,-2777,-2777,-2777, 3118,-2777,-2777,-2777,-2777,-2777,
+    -2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,
+    -2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,
+     3118,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,
+    -2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,-2777,
+    -2777,-2777,-2777,-2777,-2777
+    },
+
+    {
+       27,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,
+    -2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,
+    -2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,
+    -2778, 3119,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,
+
+    -2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,-2778,
+    -2778,-2778,-2778,-2778,-2778,-2778, 3119,-2778,-2778,-2778,
+    -2778,-2778,-2778,-2778,-2778
+    },
+
+    {
+       27,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,
+    -2779,-2779,-2779, 3120,-2779,-2779,-2779,-2779,-2779,-2779,
+    -2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,
+    -2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,
+    -2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,
+    -2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,-2779,
+    -2779,-2779,-2779,-2779,-2779
+
+    },
+
+    {
+       27,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,
+    -2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,
+    -2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,
+    -2780,-2780, 3121,-2780,-2780,-2780,-2780,-2780,-2780,-2780,
+    -2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,-2780,
+    -2780,-2780,-2780,-2780,-2780,-2780,-2780, 3121,-2780,-2780,
+    -2780,-2780,-2780,-2780,-2780
+    },
+
+    {
+       27,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,
+    -2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,
+    -2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781, 3122,-2781,
+
+    -2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,
+    -2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,-2781,
+    -2781,-2781,-2781, 3122,-2781,-2781,-2781,-2781,-2781,-2781,
+    -2781,-2781,-2781,-2781,-2781
+    },
+
+    {
+       27,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,
+    -2782,-2782,-2782,-2782,-2782,-2782, 3123,-2782,-2782,-2782,
+    -2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,
+    -2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,
+    -2782,-2782, 3123,-2782,-2782,-2782,-2782,-2782,-2782,-2782,
+    -2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,-2782,
+
+    -2782,-2782,-2782,-2782,-2782
+    },
+
+    {
+       27,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,
+    -2783,-2783,-2783,-2783,-2783, 3124,-2783,-2783,-2783,-2783,
+    -2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,
+    -2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,
+    -2783, 3124,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,
+    -2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,-2783,
+    -2783,-2783,-2783,-2783,-2783
+    },
+
+    {
+       27,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,
+    -2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,
+
+    -2784,-2784,-2784,-2784,-2784,-2784,-2784, 3125,-2784,-2784,
+    -2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,
+    -2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,-2784,
+    -2784,-2784, 3125,-2784,-2784,-2784,-2784,-2784,-2784,-2784,
+    -2784,-2784,-2784,-2784,-2784
+    },
+
+    {
+       27,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785, 1390,
+    -2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,
+    -2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,
+    -2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,
+    -2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,
+
+    -2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,-2785,
+    -2785,-2785,-2785,-2785,-2785
+    },
+
+    {
+       27,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,
+    -2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,
+    -2786,-2786,-2786,-2786,-2786,-2786,-2786, 3126,-2786,-2786,
+    -2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,
+    -2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,-2786,
+    -2786,-2786, 3126,-2786,-2786,-2786,-2786,-2786,-2786,-2786,
+    -2786,-2786,-2786,-2786,-2786
+    },
+
+    {
+       27,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787, 1392,
+
+    -2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,
+    -2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,
+    -2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,
+    -2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,
+    -2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,-2787,
+    -2787,-2787,-2787,-2787,-2787
+    },
+
+    {
+       27,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,
+    -2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,
+    -2788,-2788,-2788,-2788,-2788,-2788,-2788, 3127,-2788,-2788,
+    -2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,
+
+    -2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,-2788,
+    -2788,-2788, 3127,-2788,-2788,-2788,-2788,-2788,-2788,-2788,
+    -2788,-2788,-2788,-2788,-2788
+    },
+
+    {
+       27,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789, 1394,
+    -2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,
+    -2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,
+    -2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,
+    -2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,
+    -2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,-2789,
+    -2789,-2789,-2789,-2789,-2789
+
+    },
+
+    {
+       27,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,
+    -2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,
+    -2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,
+    -2790,-2790,-2790, 3128,-2790,-2790,-2790,-2790,-2790,-2790,
+    -2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790,
+    -2790,-2790,-2790,-2790,-2790,-2790,-2790,-2790, 3128,-2790,
+    -2790,-2790,-2790,-2790,-2790
+    },
+
+    {
+       27,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,
+    -2791,-2791,-2791,-2791, 3129,-2791,-2791,-2791,-2791,-2791,
+    -2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,
+
+    -2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,
+     3129,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,
+    -2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,-2791,
+    -2791,-2791,-2791,-2791,-2791
+    },
+
+    {
+       27,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,
+    -2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,
+    -2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792, 3130,-2792,
+    -2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,
+    -2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,-2792,
+    -2792,-2792,-2792, 3130,-2792,-2792,-2792,-2792,-2792,-2792,
+
+    -2792,-2792,-2792,-2792,-2792
+    },
+
+    {
+       27,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,
+    -2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,
+    -2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,
+    -2793, 3131,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,
+    -2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,-2793,
+    -2793,-2793,-2793,-2793,-2793,-2793, 3131,-2793,-2793,-2793,
+    -2793,-2793,-2793,-2793,-2793
+    },
+
+    {
+       27,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,
+    -2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794, 3132,-2794,
+
+    -2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,
+    -2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,
+    -2794,-2794,-2794,-2794, 3132,-2794,-2794,-2794,-2794,-2794,
+    -2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,-2794,
+    -2794,-2794,-2794,-2794,-2794
+    },
+
+    {
+       27,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,
+    -2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,
+    -2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795, 3133,-2795,
+    -2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,
+    -2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,-2795,
+
+    -2795,-2795,-2795, 3133,-2795,-2795,-2795,-2795,-2795,-2795,
+    -2795,-2795,-2795,-2795,-2795
+    },
+
+    {
+       27,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,
+    -2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,
+    -2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,
+    -2796, 3134,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,
+    -2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,-2796,
+    -2796,-2796,-2796,-2796,-2796,-2796, 3134,-2796,-2796,-2796,
+    -2796,-2796,-2796,-2796,-2796
+    },
+
+    {
+       27,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,
+
+    -2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,
+    -2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797, 3135,-2797,
+    -2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,
+    -2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,-2797,
+    -2797,-2797,-2797, 3135,-2797,-2797,-2797,-2797,-2797,-2797,
+    -2797,-2797,-2797,-2797,-2797
+    },
+
+    {
+       27,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,
+    -2798,-2798,-2798,-2798, 3136,-2798,-2798,-2798,-2798,-2798,
+    -2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,
+    -2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,
+
+     3136,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,
+    -2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,-2798,
+    -2798,-2798,-2798,-2798,-2798
+    },
+
+    {
+       27,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,
+    -2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,
+    -2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,
+    -2799, 3137,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,
+    -2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,-2799,
+    -2799,-2799,-2799,-2799,-2799,-2799, 3137,-2799,-2799,-2799,
+    -2799,-2799,-2799,-2799,-2799
+
+    },
+
+    {
+       27,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,
+    -2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800, 3138,-2800,
+    -2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,
+    -2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,
+    -2800,-2800,-2800,-2800, 3138,-2800,-2800,-2800,-2800,-2800,
+    -2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,-2800,
+    -2800,-2800,-2800,-2800,-2800
+    },
+
+    {
+       27,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,
+    -2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801, 3139,-2801,
+    -2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,
+
+    -2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,
+    -2801,-2801,-2801,-2801, 3139,-2801,-2801,-2801,-2801,-2801,
+    -2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,-2801,
+    -2801,-2801,-2801,-2801,-2801
+    },
+
+    {
+       27,-2802, 2802, 2802,-2802,-2802,-2802,-2802,-2802,-2802,
+    -2802,-2802, 2803,-2802,-2802,-2802,-2802,-2802,-2802,-2802,
+    -2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,
+    -2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,
+    -2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,
+    -2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,-2802,
+
+    -2802,-2802,-2802,-2802,-2802
+    },
+
+    {
+       27,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,
+    -2803,-2803,-2803,-2803,-2803,-2803, 3140,-2803,-2803,-2803,
+    -2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,
+    -2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,
+    -2803,-2803, 3140,-2803,-2803,-2803,-2803,-2803,-2803,-2803,
+    -2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,-2803,
+    -2803,-2803,-2803,-2803,-2803
+    },
+
+    {
+       27,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,
+    -2804,-2804,-2804,-2804, 3141,-2804,-2804,-2804,-2804,-2804,
+
+    -2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,
+    -2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,
+     3141,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,
+    -2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,-2804,
+    -2804,-2804,-2804,-2804,-2804
+    },
+
+    {
+       27,-2805, 2805, 2805,-2805,-2805,-2805,-2805,-2805,-2805,
+    -2805,-2805, 2806,-2805,-2805,-2805,-2805,-2805,-2805,-2805,
+    -2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,
+    -2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,
+    -2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,
+
+    -2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,-2805,
+    -2805,-2805,-2805,-2805,-2805
+    },
+
+    {
+       27,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,
+    -2806,-2806,-2806,-2806,-2806,-2806, 3142,-2806,-2806,-2806,
+    -2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,
+    -2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,
+    -2806,-2806, 3142,-2806,-2806,-2806,-2806,-2806,-2806,-2806,
+    -2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,-2806,
+    -2806,-2806,-2806,-2806,-2806
+    },
+
+    {
+       27,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,
+
+    -2807,-2807,-2807,-2807, 3143,-2807,-2807,-2807,-2807,-2807,
+    -2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,
+    -2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,
+     3143,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,
+    -2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,-2807,
+    -2807,-2807,-2807,-2807,-2807
+    },
+
+    {
+       27,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,
+    -2808,-2808,-2808, 3144,-2808,-2808,-2808,-2808,-2808,-2808,
+    -2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,
+    -2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,
+
+    -2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,
+    -2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,-2808,
+    -2808,-2808,-2808,-2808,-2808
+    },
+
+    {
+       27,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,
+    -2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,
+    -2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,
+    -2809,-2809, 3145,-2809,-2809,-2809,-2809,-2809,-2809,-2809,
+    -2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,-2809,
+    -2809,-2809,-2809,-2809,-2809,-2809,-2809, 3145,-2809,-2809,
+    -2809,-2809,-2809,-2809,-2809
+
+    },
+
+    {
+       27,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,
+    -2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,
+    -2810,-2810,-2810,-2810,-2810,-2810, 3146,-2810,-2810,-2810,
+    -2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,
+    -2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,
+    -2810, 3146,-2810,-2810,-2810,-2810,-2810,-2810,-2810,-2810,
+    -2810,-2810,-2810,-2810,-2810
+    },
+
+    {
+       27,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,
+    -2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,
+    -2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,
+
+    -2811,-2811,-2811, 3147,-2811,-2811,-2811,-2811,-2811,-2811,
+    -2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811,
+    -2811,-2811,-2811,-2811,-2811,-2811,-2811,-2811, 3147,-2811,
+    -2811,-2811,-2811,-2811,-2811
+    },
+
+    {
+       27,-2812, 3148, 3148,-2812,-2812,-2812,-2812,-2812,-2812,
+    -2812,-2812, 3149,-2812,-2812,-2812,-2812,-2812,-2812,-2812,
+    -2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,
+    -2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,
+    -2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,
+    -2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,-2812,
+
+    -2812,-2812,-2812,-2812,-2812
+    },
+
+    {
+       27,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,
+    -2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,
+    -2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,
+    -2813,-2813,-2813, 3150,-2813,-2813,-2813,-2813,-2813,-2813,
+    -2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813,
+    -2813,-2813,-2813,-2813,-2813,-2813,-2813,-2813, 3150,-2813,
+    -2813,-2813,-2813,-2813,-2813
+    },
+
+    {
+       27,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,
+    -2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,
+
+    -2814,-2814,-2814,-2814,-2814,-2814,-2814, 3151,-2814,-2814,
+    -2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,
+    -2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,-2814,
+    -2814,-2814, 3151,-2814,-2814,-2814,-2814,-2814,-2814,-2814,
+    -2814,-2814,-2814,-2814,-2814
+    },
+
+    {
+       27,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815, 1419,
+    -2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,
+    -2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,
+    -2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,
+    -2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,
+
+    -2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,-2815,
+    -2815,-2815,-2815,-2815,-2815
+    },
+
+    {
+       27,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,
+    -2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816, 3152,-2816,
+    -2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,
+    -2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,
+    -2816,-2816,-2816,-2816, 3152,-2816,-2816,-2816,-2816,-2816,
+    -2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,-2816,
+    -2816,-2816,-2816,-2816,-2816
+    },
+
+    {
+       27,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,
+
+    -2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,
+    -2817,-2817,-2817,-2817,-2817,-2817, 3153,-2817,-2817,-2817,
+    -2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,
+    -2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,
+    -2817, 3153,-2817,-2817,-2817,-2817,-2817,-2817,-2817,-2817,
+    -2817,-2817,-2817,-2817,-2817
+    },
+
+    {
+       27,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,
+    -2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,
+    -2818,-2818,-2818,-2818,-2818,-2818,-2818, 3154,-2818,-2818,
+    -2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,
+
+    -2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,-2818,
+    -2818,-2818, 3154,-2818,-2818,-2818,-2818,-2818,-2818,-2818,
+    -2818,-2818,-2818,-2818,-2818
+    },
+
+    {
+       27,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,
+    -2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,
+    -2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819, 3155,-2819,
+    -2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,
+    -2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,-2819,
+    -2819,-2819,-2819, 3155,-2819,-2819,-2819,-2819,-2819,-2819,
+    -2819,-2819,-2819,-2819,-2819
+
+    },
+
+    {
+       27,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,
+    -2820,-2820,-2820,-2820, 3156,-2820,-2820,-2820,-2820,-2820,
+    -2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,
+    -2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,
+     3156,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,
+    -2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,-2820,
+    -2820,-2820,-2820,-2820,-2820
+    },
+
+    {
+       27,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,
+    -2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,
+    -2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,
+
+    -2821, 3157,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,
+    -2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,-2821,
+    -2821,-2821,-2821,-2821,-2821,-2821, 3157,-2821,-2821,-2821,
+    -2821,-2821,-2821,-2821,-2821
+    },
+
+    {
+       27,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,
+    -2822,-2822,-2822, 3158,-2822,-2822,-2822,-2822,-2822,-2822,
+    -2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,
+    -2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,
+    -2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,
+    -2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,-2822,
+
+    -2822,-2822,-2822,-2822,-2822
+    },
+
+    {
+       27,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,
+    -2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,
+    -2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,
+    -2823,-2823, 3159,-2823,-2823,-2823,-2823,-2823,-2823,-2823,
+    -2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,-2823,
+    -2823,-2823,-2823,-2823,-2823,-2823,-2823, 3159,-2823,-2823,
+    -2823,-2823,-2823,-2823,-2823
+    },
+
+    {
+       27,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,
+    -2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,
+
+    -2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824, 3160,-2824,
+    -2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,
+    -2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,-2824,
+    -2824,-2824,-2824, 3160,-2824,-2824,-2824,-2824,-2824,-2824,
+    -2824,-2824,-2824,-2824,-2824
+    },
+
+    {
+       27,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,
+    -2825,-2825,-2825,-2825,-2825,-2825, 3161,-2825,-2825,-2825,
+    -2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,
+    -2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,
+    -2825,-2825, 3161,-2825,-2825,-2825,-2825,-2825,-2825,-2825,
+
+    -2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,-2825,
+    -2825,-2825,-2825,-2825,-2825
+    },
+
+    {
+       27,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,
+    -2826,-2826,-2826,-2826,-2826, 3162,-2826,-2826,-2826,-2826,
+    -2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,
+    -2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,
+    -2826, 3162,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,
+    -2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,-2826,
+    -2826,-2826,-2826,-2826,-2826
+    },
+
+    {
+       27,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,
+
+    -2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,
+    -2827,-2827,-2827,-2827,-2827,-2827,-2827, 3163,-2827,-2827,
+    -2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,
+    -2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,-2827,
+    -2827,-2827, 3163,-2827,-2827,-2827,-2827,-2827,-2827,-2827,
+    -2827,-2827,-2827,-2827,-2827
+    },
+
+    {
+       27,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828, 1429,
+    -2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,
+    -2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,
+    -2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,
+
+    -2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,
+    -2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,-2828,
+    -2828,-2828,-2828,-2828,-2828
+    },
+
+    {
+       27,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,
+    -2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,
+    -2829,-2829,-2829,-2829,-2829,-2829,-2829, 3164,-2829,-2829,
+    -2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,
+    -2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,-2829,
+    -2829,-2829, 3164,-2829,-2829,-2829,-2829,-2829,-2829,-2829,
+    -2829,-2829,-2829,-2829,-2829
+
+    },
+
+    {
+       27,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830, 1431,
+    -2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,
+    -2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,
+    -2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,
+    -2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,
+    -2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,-2830,
+    -2830,-2830,-2830,-2830,-2830
+    },
+
+    {
+       27,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,
+    -2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,
+    -2831,-2831,-2831,-2831,-2831,-2831,-2831, 3165,-2831,-2831,
+
+    -2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,
+    -2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,-2831,
+    -2831,-2831, 3165,-2831,-2831,-2831,-2831,-2831,-2831,-2831,
+    -2831,-2831,-2831,-2831,-2831
+    },
+
+    {
+       27,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832, 1433,
+    -2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,
+    -2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,
+    -2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,
+    -2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,
+    -2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,-2832,
+
+    -2832,-2832,-2832,-2832,-2832
+    },
+
+    {
+       27,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,
+    -2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,
+    -2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,
+    -2833,-2833,-2833, 3166,-2833,-2833,-2833,-2833,-2833,-2833,
+    -2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833,
+    -2833,-2833,-2833,-2833,-2833,-2833,-2833,-2833, 3166,-2833,
+    -2833,-2833,-2833,-2833,-2833
+    },
+
+    {
+       27,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,
+    -2834,-2834,-2834,-2834, 3167,-2834,-2834,-2834,-2834,-2834,
+
+    -2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,
+    -2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,
+     3167,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,
+    -2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,-2834,
+    -2834,-2834,-2834,-2834,-2834
+    },
+
+    {
+       27,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,
+    -2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,
+    -2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835, 3168,-2835,
+    -2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,
+    -2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,-2835,
+
+    -2835,-2835,-2835, 3168,-2835,-2835,-2835,-2835,-2835,-2835,
+    -2835,-2835,-2835,-2835,-2835
+    },
+
+    {
+       27,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,
+    -2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,
+    -2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,
+    -2836, 3169,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,
+    -2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,-2836,
+    -2836,-2836,-2836,-2836,-2836,-2836, 3169,-2836,-2836,-2836,
+    -2836,-2836,-2836,-2836,-2836
+    },
+
+    {
+       27,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,
+
+    -2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837, 3170,-2837,
+    -2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,
+    -2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,
+    -2837,-2837,-2837,-2837, 3170,-2837,-2837,-2837,-2837,-2837,
+    -2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,-2837,
+    -2837,-2837,-2837,-2837,-2837
+    },
+
+    {
+       27,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,
+    -2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,
+    -2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838, 3171,-2838,
+    -2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,
+
+    -2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,-2838,
+    -2838,-2838,-2838, 3171,-2838,-2838,-2838,-2838,-2838,-2838,
+    -2838,-2838,-2838,-2838,-2838
+    },
+
+    {
+       27,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,
+    -2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,
+    -2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,
+    -2839, 3172,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,
+    -2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,-2839,
+    -2839,-2839,-2839,-2839,-2839,-2839, 3172,-2839,-2839,-2839,
+    -2839,-2839,-2839,-2839,-2839
+
+    },
+
+    {
+       27,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,
+    -2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,
+    -2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840, 3173,-2840,
+    -2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,
+    -2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,-2840,
+    -2840,-2840,-2840, 3173,-2840,-2840,-2840,-2840,-2840,-2840,
+    -2840,-2840,-2840,-2840,-2840
+    },
+
+    {
+       27,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,
+    -2841,-2841,-2841,-2841, 3174,-2841,-2841,-2841,-2841,-2841,
+    -2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,
+
+    -2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,
+     3174,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,
+    -2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,-2841,
+    -2841,-2841,-2841,-2841,-2841
+    },
+
+    {
+       27,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,
+    -2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,
+    -2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,
+    -2842, 3175,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,
+    -2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,-2842,
+    -2842,-2842,-2842,-2842,-2842,-2842, 3175,-2842,-2842,-2842,
+
+    -2842,-2842,-2842,-2842,-2842
+    },
+
+    {
+       27,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,
+    -2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843, 3176,-2843,
+    -2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,
+    -2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,
+    -2843,-2843,-2843,-2843, 3176,-2843,-2843,-2843,-2843,-2843,
+    -2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,-2843,
+    -2843,-2843,-2843,-2843,-2843
+    },
+
+    {
+       27,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,
+    -2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844, 3177,-2844,
+
+    -2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,
+    -2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,
+    -2844,-2844,-2844,-2844, 3177,-2844,-2844,-2844,-2844,-2844,
+    -2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,-2844,
+    -2844,-2844,-2844,-2844,-2844
+    },
+
+    {
+       27,-2845, 2845, 2845,-2845,-2845,-2845,-2845,-2845,-2845,
+    -2845,-2845, 2846,-2845,-2845,-2845,-2845,-2845,-2845,-2845,
+    -2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,
+    -2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,
+    -2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,
+
+    -2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,-2845,
+    -2845,-2845,-2845,-2845,-2845
+    },
+
+    {
+       27,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,
+    -2846,-2846,-2846,-2846,-2846,-2846, 3178,-2846,-2846,-2846,
+    -2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,
+    -2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,
+    -2846,-2846, 3178,-2846,-2846,-2846,-2846,-2846,-2846,-2846,
+    -2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,-2846,
+    -2846,-2846,-2846,-2846,-2846
+    },
+
+    {
+       27,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,
+
+    -2847,-2847,-2847,-2847, 3179,-2847,-2847,-2847,-2847,-2847,
+    -2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,
+    -2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,
+     3179,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,
+    -2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,-2847,
+    -2847,-2847,-2847,-2847,-2847
+    },
+
+    {
+       27,-2848, 2848, 2848,-2848,-2848,-2848,-2848,-2848,-2848,
+    -2848,-2848, 2849,-2848,-2848,-2848,-2848,-2848,-2848,-2848,
+    -2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,
+    -2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,
+
+    -2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,
+    -2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,-2848,
+    -2848,-2848,-2848,-2848,-2848
+    },
+
+    {
+       27,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,
+    -2849,-2849,-2849,-2849,-2849,-2849, 3180,-2849,-2849,-2849,
+    -2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,
+    -2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,
+    -2849,-2849, 3180,-2849,-2849,-2849,-2849,-2849,-2849,-2849,
+    -2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,-2849,
+    -2849,-2849,-2849,-2849,-2849
+
+    },
+
+    {
+       27,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,
+    -2850,-2850,-2850,-2850, 3181,-2850,-2850,-2850,-2850,-2850,
+    -2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,
+    -2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,
+     3181,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,
+    -2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,-2850,
+    -2850,-2850,-2850,-2850,-2850
+    },
+
+    {
+       27,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,
+    -2851,-2851,-2851, 3182,-2851,-2851,-2851,-2851,-2851,-2851,
+    -2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,
+
+    -2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,
+    -2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,
+    -2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,-2851,
+    -2851,-2851,-2851,-2851,-2851
+    },
+
+    {
+       27,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,
+    -2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,
+    -2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,
+    -2852,-2852, 3183,-2852,-2852,-2852,-2852,-2852,-2852,-2852,
+    -2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,-2852,
+    -2852,-2852,-2852,-2852,-2852,-2852,-2852, 3183,-2852,-2852,
+
+    -2852,-2852,-2852,-2852,-2852
+    },
+
+    {
+       27,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,
+    -2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,
+    -2853,-2853,-2853,-2853,-2853,-2853, 3184,-2853,-2853,-2853,
+    -2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,
+    -2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,
+    -2853, 3184,-2853,-2853,-2853,-2853,-2853,-2853,-2853,-2853,
+    -2853,-2853,-2853,-2853,-2853
+    },
+
+    {
+       27,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,
+    -2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,
+
+    -2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,
+    -2854,-2854,-2854, 3185,-2854,-2854,-2854,-2854,-2854,-2854,
+    -2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854,
+    -2854,-2854,-2854,-2854,-2854,-2854,-2854,-2854, 3185,-2854,
+    -2854,-2854,-2854,-2854,-2854
+    },
+
+    {
+       27,-2855, 3186, 3186,-2855,-2855,-2855,-2855,-2855,-2855,
+    -2855,-2855, 3187,-2855,-2855,-2855,-2855,-2855,-2855,-2855,
+    -2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,
+    -2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,
+    -2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,
+
+    -2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,-2855,
+    -2855,-2855,-2855,-2855,-2855
+    },
+
+    {
+       27,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,
+    -2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,
+    -2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,
+    -2856,-2856,-2856, 3188,-2856,-2856,-2856,-2856,-2856,-2856,
+    -2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856,
+    -2856,-2856,-2856,-2856,-2856,-2856,-2856,-2856, 3188,-2856,
+    -2856,-2856,-2856,-2856,-2856
+    },
+
+    {
+       27,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,
+
+    -2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,
+    -2857,-2857,-2857,-2857,-2857,-2857,-2857, 3189,-2857,-2857,
+    -2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,
+    -2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,-2857,
+    -2857,-2857, 3189,-2857,-2857,-2857,-2857,-2857,-2857,-2857,
+    -2857,-2857,-2857,-2857,-2857
+    },
+
+    {
+       27,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858, 1458,
+    -2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,
+    -2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,
+    -2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,
+
+    -2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,
+    -2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,-2858,
+    -2858,-2858,-2858,-2858,-2858
+    },
+
+    {
+       27,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,
+    -2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859, 3190,-2859,
+    -2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,
+    -2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,
+    -2859,-2859,-2859,-2859, 3190,-2859,-2859,-2859,-2859,-2859,
+    -2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,-2859,
+    -2859,-2859,-2859,-2859,-2859
+
+    },
+
+    {
+       27,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,
+    -2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,
+    -2860,-2860,-2860,-2860,-2860,-2860, 3191,-2860,-2860,-2860,
+    -2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,
+    -2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,
+    -2860, 3191,-2860,-2860,-2860,-2860,-2860,-2860,-2860,-2860,
+    -2860,-2860,-2860,-2860,-2860
+    },
+
+    {
+       27,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,
+    -2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,
+    -2861,-2861,-2861,-2861,-2861,-2861,-2861, 3192,-2861,-2861,
+
+    -2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,
+    -2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,-2861,
+    -2861,-2861, 3192,-2861,-2861,-2861,-2861,-2861,-2861,-2861,
+    -2861,-2861,-2861,-2861,-2861
+    },
+
+    {
+       27,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,
+    -2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,
+    -2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862, 3193,-2862,
+    -2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,
+    -2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,-2862,
+    -2862,-2862,-2862, 3193,-2862,-2862,-2862,-2862,-2862,-2862,
+
+    -2862,-2862,-2862,-2862,-2862
+    },
+
+    {
+       27,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,
+    -2863,-2863,-2863,-2863, 3194,-2863,-2863,-2863,-2863,-2863,
+    -2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,
+    -2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,
+     3194,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,
+    -2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,-2863,
+    -2863,-2863,-2863,-2863,-2863
+    },
+
+    {
+       27,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,
+    -2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,
+
+    -2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,
+    -2864, 3195,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,
+    -2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,-2864,
+    -2864,-2864,-2864,-2864,-2864,-2864, 3195,-2864,-2864,-2864,
+    -2864,-2864,-2864,-2864,-2864
+    },
+
+    {
+       27,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,
+    -2865,-2865,-2865, 3196,-2865,-2865,-2865,-2865,-2865,-2865,
+    -2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,
+    -2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,
+    -2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,
+
+    -2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,-2865,
+    -2865,-2865,-2865,-2865,-2865
+    },
+
+    {
+       27,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,
+    -2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,
+    -2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,
+    -2866,-2866, 3197,-2866,-2866,-2866,-2866,-2866,-2866,-2866,
+    -2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,-2866,
+    -2866,-2866,-2866,-2866,-2866,-2866,-2866, 3197,-2866,-2866,
+    -2866,-2866,-2866,-2866,-2866
+    },
+
+    {
+       27,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,
+
+    -2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,
+    -2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867, 3198,-2867,
+    -2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,
+    -2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,-2867,
+    -2867,-2867,-2867, 3198,-2867,-2867,-2867,-2867,-2867,-2867,
+    -2867,-2867,-2867,-2867,-2867
+    },
+
+    {
+       27,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,
+    -2868,-2868,-2868,-2868,-2868,-2868, 3199,-2868,-2868,-2868,
+    -2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,
+    -2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,
+
+    -2868,-2868, 3199,-2868,-2868,-2868,-2868,-2868,-2868,-2868,
+    -2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,-2868,
+    -2868,-2868,-2868,-2868,-2868
+    },
+
+    {
+       27,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,
+    -2869,-2869,-2869,-2869,-2869, 3200,-2869,-2869,-2869,-2869,
+    -2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,
+    -2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,
+    -2869, 3200,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,
+    -2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,-2869,
+    -2869,-2869,-2869,-2869,-2869
+
+    },
+
+    {
+       27,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,
+    -2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,
+    -2870,-2870,-2870,-2870,-2870,-2870,-2870, 3201,-2870,-2870,
+    -2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,
+    -2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,-2870,
+    -2870,-2870, 3201,-2870,-2870,-2870,-2870,-2870,-2870,-2870,
+    -2870,-2870,-2870,-2870,-2870
+    },
+
+    {
+       27,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871, 1468,
+    -2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,
+    -2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,
+
+    -2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,
+    -2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,
+    -2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,-2871,
+    -2871,-2871,-2871,-2871,-2871
+    },
+
+    {
+       27,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,
+    -2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,
+    -2872,-2872,-2872,-2872,-2872,-2872,-2872, 3202,-2872,-2872,
+    -2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,
+    -2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,-2872,
+    -2872,-2872, 3202,-2872,-2872,-2872,-2872,-2872,-2872,-2872,
+
+    -2872,-2872,-2872,-2872,-2872
+    },
+
+    {
+       27,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873, 1470,
+    -2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,
+    -2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,
+    -2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,
+    -2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,
+    -2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,-2873,
+    -2873,-2873,-2873,-2873,-2873
+    },
+
+    {
+       27,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,
+    -2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,
+
+    -2874,-2874,-2874,-2874,-2874,-2874,-2874, 3203,-2874,-2874,
+    -2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,
+    -2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,-2874,
+    -2874,-2874, 3203,-2874,-2874,-2874,-2874,-2874,-2874,-2874,
+    -2874,-2874,-2874,-2874,-2874
+    },
+
+    {
+       27,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875, 1472,
+    -2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,
+    -2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,
+    -2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,
+    -2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,
+
+    -2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,-2875,
+    -2875,-2875,-2875,-2875,-2875
+    },
+
+    {
+       27,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,
+    -2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,
+    -2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,
+    -2876,-2876,-2876, 3204,-2876,-2876,-2876,-2876,-2876,-2876,
+    -2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876,
+    -2876,-2876,-2876,-2876,-2876,-2876,-2876,-2876, 3204,-2876,
+    -2876,-2876,-2876,-2876,-2876
+    },
+
+    {
+       27,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,
+
+    -2877,-2877,-2877,-2877, 3205,-2877,-2877,-2877,-2877,-2877,
+    -2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,
+    -2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,
+     3205,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,
+    -2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,-2877,
+    -2877,-2877,-2877,-2877,-2877
+    },
+
+    {
+       27,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,
+    -2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,
+    -2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878, 3206,-2878,
+    -2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,
+
+    -2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,-2878,
+    -2878,-2878,-2878, 3206,-2878,-2878,-2878,-2878,-2878,-2878,
+    -2878,-2878,-2878,-2878,-2878
+    },
+
+    {
+       27,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,
+    -2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,
+    -2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,
+    -2879,-2879,-2879, 3207,-2879,-2879,-2879,-2879,-2879,-2879,
+    -2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879,
+    -2879,-2879,-2879,-2879,-2879,-2879,-2879,-2879, 3207,-2879,
+    -2879,-2879,-2879,-2879,-2879
+
+    },
+
+    {
+       27,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,
+    -2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880, 3208,-2880,
+    -2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,
+    -2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,
+    -2880,-2880,-2880,-2880, 3208,-2880,-2880,-2880,-2880,-2880,
+    -2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,-2880,
+    -2880,-2880,-2880,-2880,-2880
+    },
+
+    {
+       27,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,
+    -2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,
+    -2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881, 3209,-2881,
+
+    -2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,
+    -2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,-2881,
+    -2881,-2881,-2881, 3209,-2881,-2881,-2881,-2881,-2881,-2881,
+    -2881,-2881,-2881,-2881,-2881
+    },
+
+    {
+       27,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,
+    -2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,
+    -2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,
+    -2882, 3210,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,
+    -2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,-2882,
+    -2882,-2882,-2882,-2882,-2882,-2882, 3210,-2882,-2882,-2882,
+
+    -2882,-2882,-2882,-2882,-2882
+    },
+
+    {
+       27,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,
+    -2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,
+    -2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883, 3211,-2883,
+    -2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,
+    -2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,-2883,
+    -2883,-2883,-2883, 3211,-2883,-2883,-2883,-2883,-2883,-2883,
+    -2883,-2883,-2883,-2883,-2883
+    },
+
+    {
+       27,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,
+    -2884,-2884,-2884,-2884, 3212,-2884,-2884,-2884,-2884,-2884,
+
+    -2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,
+    -2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,
+     3212,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,
+    -2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,-2884,
+    -2884,-2884,-2884,-2884,-2884
+    },
+
+    {
+       27,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,
+    -2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,
+    -2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,
+    -2885, 3213,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,
+    -2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,-2885,
+
+    -2885,-2885,-2885,-2885,-2885,-2885, 3213,-2885,-2885,-2885,
+    -2885,-2885,-2885,-2885,-2885
+    },
+
+    {
+       27,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,
+    -2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886, 3214,-2886,
+    -2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,
+    -2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,
+    -2886,-2886,-2886,-2886, 3214,-2886,-2886,-2886,-2886,-2886,
+    -2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,-2886,
+    -2886,-2886,-2886,-2886,-2886
+    },
+
+    {
+       27,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,
+
+    -2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887, 3215,-2887,
+    -2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,
+    -2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,
+    -2887,-2887,-2887,-2887, 3215,-2887,-2887,-2887,-2887,-2887,
+    -2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,-2887,
+    -2887,-2887,-2887,-2887,-2887
+    },
+
+    {
+       27,-2888, 2888, 2888,-2888,-2888,-2888,-2888,-2888,-2888,
+    -2888,-2888, 2889,-2888,-2888,-2888,-2888,-2888,-2888,-2888,
+    -2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,
+    -2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,
+
+    -2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,
+    -2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,-2888,
+    -2888,-2888,-2888,-2888,-2888
+    },
+
+    {
+       27,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,
+    -2889,-2889,-2889,-2889,-2889,-2889, 3216,-2889,-2889,-2889,
+    -2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,
+    -2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,
+    -2889,-2889, 3216,-2889,-2889,-2889,-2889,-2889,-2889,-2889,
+    -2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,-2889,
+    -2889,-2889,-2889,-2889,-2889
+
+    },
+
+    {
+       27,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,
+    -2890,-2890,-2890,-2890, 3217,-2890,-2890,-2890,-2890,-2890,
+    -2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,
+    -2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,
+     3217,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,
+    -2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,-2890,
+    -2890,-2890,-2890,-2890,-2890
+    },
+
+    {
+       27,-2891, 2891, 2891,-2891,-2891,-2891,-2891,-2891,-2891,
+    -2891,-2891, 2892,-2891,-2891,-2891,-2891,-2891,-2891,-2891,
+    -2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,
+
+    -2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,
+    -2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,
+    -2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,-2891,
+    -2891,-2891,-2891,-2891,-2891
+    },
+
+    {
+       27,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,
+    -2892,-2892,-2892,-2892,-2892,-2892, 3218,-2892,-2892,-2892,
+    -2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,
+    -2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,
+    -2892,-2892, 3218,-2892,-2892,-2892,-2892,-2892,-2892,-2892,
+    -2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,-2892,
+
+    -2892,-2892,-2892,-2892,-2892
+    },
+
+    {
+       27,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,
+    -2893,-2893,-2893,-2893, 3219,-2893,-2893,-2893,-2893,-2893,
+    -2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,
+    -2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,
+     3219,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,
+    -2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,-2893,
+    -2893,-2893,-2893,-2893,-2893
+    },
+
+    {
+       27,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,
+    -2894,-2894,-2894, 3220,-2894,-2894,-2894,-2894,-2894,-2894,
+
+    -2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,
+    -2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,
+    -2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,
+    -2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,-2894,
+    -2894,-2894,-2894,-2894,-2894
+    },
+
+    {
+       27,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,
+    -2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,
+    -2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,
+    -2895,-2895, 3221,-2895,-2895,-2895,-2895,-2895,-2895,-2895,
+    -2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,-2895,
+
+    -2895,-2895,-2895,-2895,-2895,-2895,-2895, 3221,-2895,-2895,
+    -2895,-2895,-2895,-2895,-2895
+    },
+
+    {
+       27,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,
+    -2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,
+    -2896,-2896,-2896,-2896,-2896,-2896, 3222,-2896,-2896,-2896,
+    -2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,
+    -2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,
+    -2896, 3222,-2896,-2896,-2896,-2896,-2896,-2896,-2896,-2896,
+    -2896,-2896,-2896,-2896,-2896
+    },
+
+    {
+       27,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,
+
+    -2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,
+    -2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,
+    -2897,-2897,-2897, 3223,-2897,-2897,-2897,-2897,-2897,-2897,
+    -2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897,
+    -2897,-2897,-2897,-2897,-2897,-2897,-2897,-2897, 3223,-2897,
+    -2897,-2897,-2897,-2897,-2897
+    },
+
+    {
+       27,-2898, 3224, 3224,-2898,-2898,-2898,-2898,-2898,-2898,
+    -2898,-2898, 3225,-2898,-2898,-2898,-2898,-2898,-2898,-2898,
+    -2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,
+    -2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,
+
+    -2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,
+    -2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,-2898,
+    -2898,-2898,-2898,-2898,-2898
+    },
+
+    {
+       27,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,
+    -2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,
+    -2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,
+    -2899,-2899,-2899, 3226,-2899,-2899,-2899,-2899,-2899,-2899,
+    -2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899,
+    -2899,-2899,-2899,-2899,-2899,-2899,-2899,-2899, 3226,-2899,
+    -2899,-2899,-2899,-2899,-2899
+
+    },
+
+    {
+       27,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,
+    -2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,
+    -2900,-2900,-2900,-2900,-2900,-2900,-2900, 3227,-2900,-2900,
+    -2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,
+    -2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,-2900,
+    -2900,-2900, 3227,-2900,-2900,-2900,-2900,-2900,-2900,-2900,
+    -2900,-2900,-2900,-2900,-2900
+    },
+
+    {
+       27,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901, 1497,
+    -2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,
+    -2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,
+
+    -2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,
+    -2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,
+    -2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,-2901,
+    -2901,-2901,-2901,-2901,-2901
+    },
+
+    {
+       27,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,
+    -2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902, 3228,-2902,
+    -2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,
+    -2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,
+    -2902,-2902,-2902,-2902, 3228,-2902,-2902,-2902,-2902,-2902,
+    -2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,-2902,
+
+    -2902,-2902,-2902,-2902,-2902
+    },
+
+    {
+       27,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,
+    -2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,
+    -2903,-2903,-2903,-2903,-2903,-2903, 3229,-2903,-2903,-2903,
+    -2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,
+    -2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,
+    -2903, 3229,-2903,-2903,-2903,-2903,-2903,-2903,-2903,-2903,
+    -2903,-2903,-2903,-2903,-2903
+    },
+
+    {
+       27,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,
+    -2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,
+
+    -2904,-2904,-2904,-2904,-2904,-2904,-2904, 3230,-2904,-2904,
+    -2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,
+    -2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,-2904,
+    -2904,-2904, 3230,-2904,-2904,-2904,-2904,-2904,-2904,-2904,
+    -2904,-2904,-2904,-2904,-2904
+    },
+
+    {
+       27,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,
+    -2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,
+    -2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905, 3231,-2905,
+    -2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,
+    -2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,-2905,
+
+    -2905,-2905,-2905, 3231,-2905,-2905,-2905,-2905,-2905,-2905,
+    -2905,-2905,-2905,-2905,-2905
+    },
+
+    {
+       27,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,
+    -2906,-2906,-2906,-2906, 3232,-2906,-2906,-2906,-2906,-2906,
+    -2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,
+    -2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,
+     3232,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,
+    -2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,-2906,
+    -2906,-2906,-2906,-2906,-2906
+    },
+
+    {
+       27,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,
+
+    -2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,
+    -2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,
+    -2907, 3233,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,
+    -2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,-2907,
+    -2907,-2907,-2907,-2907,-2907,-2907, 3233,-2907,-2907,-2907,
+    -2907,-2907,-2907,-2907,-2907
+    },
+
+    {
+       27,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,
+    -2908,-2908,-2908, 3234,-2908,-2908,-2908,-2908,-2908,-2908,
+    -2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,
+    -2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,
+
+    -2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,
+    -2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,-2908,
+    -2908,-2908,-2908,-2908,-2908
+    },
+
+    {
+       27,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,
+    -2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,
+    -2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,
+    -2909,-2909, 3235,-2909,-2909,-2909,-2909,-2909,-2909,-2909,
+    -2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,-2909,
+    -2909,-2909,-2909,-2909,-2909,-2909,-2909, 3235,-2909,-2909,
+    -2909,-2909,-2909,-2909,-2909
+
+    },
+
+    {
+       27,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,
+    -2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,
+    -2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910, 3236,-2910,
+    -2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,
+    -2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,-2910,
+    -2910,-2910,-2910, 3236,-2910,-2910,-2910,-2910,-2910,-2910,
+    -2910,-2910,-2910,-2910,-2910
+    },
+
+    {
+       27,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,
+    -2911,-2911,-2911,-2911,-2911,-2911, 3237,-2911,-2911,-2911,
+    -2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,
+
+    -2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,
+    -2911,-2911, 3237,-2911,-2911,-2911,-2911,-2911,-2911,-2911,
+    -2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,-2911,
+    -2911,-2911,-2911,-2911,-2911
+    },
+
+    {
+       27,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,
+    -2912,-2912,-2912,-2912,-2912, 3238,-2912,-2912,-2912,-2912,
+    -2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,
+    -2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,
+    -2912, 3238,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,
+    -2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,-2912,
+
+    -2912,-2912,-2912,-2912,-2912
+    },
+
+    {
+       27,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,
+    -2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,
+    -2913,-2913,-2913,-2913,-2913,-2913,-2913, 3239,-2913,-2913,
+    -2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,
+    -2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,-2913,
+    -2913,-2913, 3239,-2913,-2913,-2913,-2913,-2913,-2913,-2913,
+    -2913,-2913,-2913,-2913,-2913
+    },
+
+    {
+       27,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914, 1507,
+    -2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,
+
+    -2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,
+    -2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,
+    -2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,
+    -2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,-2914,
+    -2914,-2914,-2914,-2914,-2914
+    },
+
+    {
+       27,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,
+    -2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,
+    -2915,-2915,-2915,-2915,-2915,-2915,-2915, 3240,-2915,-2915,
+    -2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,
+    -2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,-2915,
+
+    -2915,-2915, 3240,-2915,-2915,-2915,-2915,-2915,-2915,-2915,
+    -2915,-2915,-2915,-2915,-2915
+    },
+
+    {
+       27,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916, 1509,
+    -2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,
+    -2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,
+    -2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,
+    -2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,
+    -2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,-2916,
+    -2916,-2916,-2916,-2916,-2916
+    },
+
+    {
+       27,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,
+
+    -2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,
+    -2917,-2917,-2917,-2917,-2917,-2917,-2917, 3241,-2917,-2917,
+    -2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,
+    -2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,-2917,
+    -2917,-2917, 3241,-2917,-2917,-2917,-2917,-2917,-2917,-2917,
+    -2917,-2917,-2917,-2917,-2917
+    },
+
+    {
+       27,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918, 1511,
+    -2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,
+    -2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,
+    -2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,
+
+    -2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,
+    -2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,-2918,
+    -2918,-2918,-2918,-2918,-2918
+    },
+
+    {
+       27,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,
+    -2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,
+    -2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,
+    -2919,-2919,-2919, 3242,-2919,-2919,-2919,-2919,-2919,-2919,
+    -2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919,
+    -2919,-2919,-2919,-2919,-2919,-2919,-2919,-2919, 3242,-2919,
+    -2919,-2919,-2919,-2919,-2919
+
+    },
+
+    {
+       27,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,
+    -2920,-2920,-2920,-2920, 3243,-2920,-2920,-2920,-2920,-2920,
+    -2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,
+    -2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,
+     3243,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,
+    -2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,-2920,
+    -2920,-2920,-2920,-2920,-2920
+    },
+
+    {
+       27,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,
+    -2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,
+    -2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921, 3244,-2921,
+
+    -2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,
+    -2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,-2921,
+    -2921,-2921,-2921, 3244,-2921,-2921,-2921,-2921,-2921,-2921,
+    -2921,-2921,-2921,-2921,-2921
+    },
+
+    {
+       27,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,
+    -2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,
+    -2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,
+    -2922, 3245,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,
+    -2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,-2922,
+    -2922,-2922,-2922,-2922,-2922,-2922, 3245,-2922,-2922,-2922,
+
+    -2922,-2922,-2922,-2922,-2922
+    },
+
+    {
+       27,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,
+    -2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923, 3246,-2923,
+    -2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,
+    -2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,
+    -2923,-2923,-2923,-2923, 3246,-2923,-2923,-2923,-2923,-2923,
+    -2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,-2923,
+    -2923,-2923,-2923,-2923,-2923
+    },
+
+    {
+       27,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,
+    -2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,
+
+    -2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924, 3247,-2924,
+    -2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,
+    -2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,-2924,
+    -2924,-2924,-2924, 3247,-2924,-2924,-2924,-2924,-2924,-2924,
+    -2924,-2924,-2924,-2924,-2924
+    },
+
+    {
+       27,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,
+    -2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,
+    -2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,
+    -2925, 3248,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,
+    -2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,-2925,
+
+    -2925,-2925,-2925,-2925,-2925,-2925, 3248,-2925,-2925,-2925,
+    -2925,-2925,-2925,-2925,-2925
+    },
+
+    {
+       27,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,
+    -2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,
+    -2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926, 3249,-2926,
+    -2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,
+    -2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,-2926,
+    -2926,-2926,-2926, 3249,-2926,-2926,-2926,-2926,-2926,-2926,
+    -2926,-2926,-2926,-2926,-2926
+    },
+
+    {
+       27,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,
+
+    -2927,-2927,-2927,-2927, 3250,-2927,-2927,-2927,-2927,-2927,
+    -2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,
+    -2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,
+     3250,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,
+    -2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,-2927,
+    -2927,-2927,-2927,-2927,-2927
+    },
+
+    {
+       27,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,
+    -2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,
+    -2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,
+    -2928, 3251,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,
+
+    -2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,-2928,
+    -2928,-2928,-2928,-2928,-2928,-2928, 3251,-2928,-2928,-2928,
+    -2928,-2928,-2928,-2928,-2928
+    },
+
+    {
+       27,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,
+    -2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929, 3252,-2929,
+    -2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,
+    -2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,
+    -2929,-2929,-2929,-2929, 3252,-2929,-2929,-2929,-2929,-2929,
+    -2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,-2929,
+    -2929,-2929,-2929,-2929,-2929
+
+    },
+
+    {
+       27,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,
+    -2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930, 3253,-2930,
+    -2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,
+    -2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,
+    -2930,-2930,-2930,-2930, 3253,-2930,-2930,-2930,-2930,-2930,
+    -2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,-2930,
+    -2930,-2930,-2930,-2930,-2930
+    },
+
+    {
+       27,-2931, 2931, 2931,-2931,-2931,-2931,-2931,-2931,-2931,
+    -2931,-2931, 2932,-2931,-2931,-2931,-2931,-2931,-2931,-2931,
+    -2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,
+
+    -2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,
+    -2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,
+    -2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,-2931,
+    -2931,-2931,-2931,-2931,-2931
+    },
+
+    {
+       27,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,
+    -2932,-2932,-2932,-2932,-2932,-2932, 3254,-2932,-2932,-2932,
+    -2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,
+    -2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,
+    -2932,-2932, 3254,-2932,-2932,-2932,-2932,-2932,-2932,-2932,
+    -2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,-2932,
+
+    -2932,-2932,-2932,-2932,-2932
+    },
+
+    {
+       27,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,
+    -2933,-2933,-2933,-2933, 3255,-2933,-2933,-2933,-2933,-2933,
+    -2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,
+    -2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,
+     3255,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,
+    -2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,-2933,
+    -2933,-2933,-2933,-2933,-2933
+    },
+
+    {
+       27,-2934, 2934, 2934,-2934,-2934,-2934,-2934,-2934,-2934,
+    -2934,-2934, 2935,-2934,-2934,-2934,-2934,-2934,-2934,-2934,
+
+    -2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,
+    -2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,
+    -2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,
+    -2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,-2934,
+    -2934,-2934,-2934,-2934,-2934
+    },
+
+    {
+       27,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,
+    -2935,-2935,-2935,-2935,-2935,-2935, 3256,-2935,-2935,-2935,
+    -2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,
+    -2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,
+    -2935,-2935, 3256,-2935,-2935,-2935,-2935,-2935,-2935,-2935,
+
+    -2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,-2935,
+    -2935,-2935,-2935,-2935,-2935
+    },
+
+    {
+       27,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,
+    -2936,-2936,-2936,-2936, 3257,-2936,-2936,-2936,-2936,-2936,
+    -2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,
+    -2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,
+     3257,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,
+    -2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,-2936,
+    -2936,-2936,-2936,-2936,-2936
+    },
+
+    {
+       27,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,
+
+    -2937,-2937,-2937, 3258,-2937,-2937,-2937,-2937,-2937,-2937,
+    -2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,
+    -2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,
+    -2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,
+    -2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,-2937,
+    -2937,-2937,-2937,-2937,-2937
+    },
+
+    {
+       27,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,
+    -2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,
+    -2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,
+    -2938,-2938, 3259,-2938,-2938,-2938,-2938,-2938,-2938,-2938,
+
+    -2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,-2938,
+    -2938,-2938,-2938,-2938,-2938,-2938,-2938, 3259,-2938,-2938,
+    -2938,-2938,-2938,-2938,-2938
+    },
+
+    {
+       27,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,
+    -2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,
+    -2939,-2939,-2939,-2939,-2939,-2939, 3260,-2939,-2939,-2939,
+    -2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,
+    -2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,
+    -2939, 3260,-2939,-2939,-2939,-2939,-2939,-2939,-2939,-2939,
+    -2939,-2939,-2939,-2939,-2939
+
+    },
+
+    {
+       27,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,
+    -2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,
+    -2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,
+    -2940,-2940,-2940, 3261,-2940,-2940,-2940,-2940,-2940,-2940,
+    -2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940,
+    -2940,-2940,-2940,-2940,-2940,-2940,-2940,-2940, 3261,-2940,
+    -2940,-2940,-2940,-2940,-2940
+    },
+
+    {
+       27,-2941, 3262, 3262,-2941,-2941,-2941,-2941,-2941,-2941,
+    -2941,-2941, 3263,-2941,-2941,-2941,-2941,-2941,-2941,-2941,
+    -2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,
+
+    -2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,
+    -2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,
+    -2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,-2941,
+    -2941,-2941,-2941,-2941,-2941
+    },
+
+    {
+       27,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,
+    -2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,
+    -2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,
+    -2942,-2942,-2942, 3264,-2942,-2942,-2942,-2942,-2942,-2942,
+    -2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942,
+    -2942,-2942,-2942,-2942,-2942,-2942,-2942,-2942, 3264,-2942,
+
+    -2942,-2942,-2942,-2942,-2942
+    },
+
+    {
+       27,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,
+    -2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,
+    -2943,-2943,-2943,-2943,-2943,-2943,-2943, 3265,-2943,-2943,
+    -2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,
+    -2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,-2943,
+    -2943,-2943, 3265,-2943,-2943,-2943,-2943,-2943,-2943,-2943,
+    -2943,-2943,-2943,-2943,-2943
+    },
+
+    {
+       27,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944, 1536,
+    -2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,
+
+    -2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,
+    -2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,
+    -2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,
+    -2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,-2944,
+    -2944,-2944,-2944,-2944,-2944
+    },
+
+    {
+       27,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,
+    -2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945, 3266,-2945,
+    -2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,
+    -2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,
+    -2945,-2945,-2945,-2945, 3266,-2945,-2945,-2945,-2945,-2945,
+
+    -2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,-2945,
+    -2945,-2945,-2945,-2945,-2945
+    },
+
+    {
+       27,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,
+    -2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,
+    -2946,-2946,-2946,-2946,-2946,-2946, 3267,-2946,-2946,-2946,
+    -2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,
+    -2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,
+    -2946, 3267,-2946,-2946,-2946,-2946,-2946,-2946,-2946,-2946,
+    -2946,-2946,-2946,-2946,-2946
+    },
+
+    {
+       27,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,
+
+    -2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,
+    -2947,-2947,-2947,-2947,-2947,-2947,-2947, 3268,-2947,-2947,
+    -2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,
+    -2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,-2947,
+    -2947,-2947, 3268,-2947,-2947,-2947,-2947,-2947,-2947,-2947,
+    -2947,-2947,-2947,-2947,-2947
+    },
+
+    {
+       27,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,
+    -2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,
+    -2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948, 3269,-2948,
+    -2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,
+
+    -2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,-2948,
+    -2948,-2948,-2948, 3269,-2948,-2948,-2948,-2948,-2948,-2948,
+    -2948,-2948,-2948,-2948,-2948
+    },
+
+    {
+       27,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,
+    -2949,-2949,-2949,-2949, 3270,-2949,-2949,-2949,-2949,-2949,
+    -2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,
+    -2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,
+     3270,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,
+    -2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,-2949,
+    -2949,-2949,-2949,-2949,-2949
+
+    },
+
+    {
+       27,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,
+    -2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,
+    -2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,
+    -2950, 3271,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,
+    -2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,-2950,
+    -2950,-2950,-2950,-2950,-2950,-2950, 3271,-2950,-2950,-2950,
+    -2950,-2950,-2950,-2950,-2950
+    },
+
+    {
+       27,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,
+    -2951,-2951,-2951, 3272,-2951,-2951,-2951,-2951,-2951,-2951,
+    -2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,
+
+    -2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,
+    -2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,
+    -2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,-2951,
+    -2951,-2951,-2951,-2951,-2951
+    },
+
+    {
+       27,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,
+    -2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,
+    -2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,
+    -2952,-2952, 3273,-2952,-2952,-2952,-2952,-2952,-2952,-2952,
+    -2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,-2952,
+    -2952,-2952,-2952,-2952,-2952,-2952,-2952, 3273,-2952,-2952,
+
+    -2952,-2952,-2952,-2952,-2952
+    },
+
+    {
+       27,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,
+    -2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,
+    -2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953, 3274,-2953,
+    -2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,
+    -2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,-2953,
+    -2953,-2953,-2953, 3274,-2953,-2953,-2953,-2953,-2953,-2953,
+    -2953,-2953,-2953,-2953,-2953
+    },
+
+    {
+       27,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,
+    -2954,-2954,-2954,-2954,-2954,-2954, 3275,-2954,-2954,-2954,
+
+    -2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,
+    -2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,
+    -2954,-2954, 3275,-2954,-2954,-2954,-2954,-2954,-2954,-2954,
+    -2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,-2954,
+    -2954,-2954,-2954,-2954,-2954
+    },
+
+    {
+       27,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,
+    -2955,-2955,-2955,-2955,-2955, 3276,-2955,-2955,-2955,-2955,
+    -2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,
+    -2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,
+    -2955, 3276,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,
+
+    -2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,-2955,
+    -2955,-2955,-2955,-2955,-2955
+    },
+
+    {
+       27,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,
+    -2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,
+    -2956,-2956,-2956,-2956,-2956,-2956,-2956, 3277,-2956,-2956,
+    -2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,
+    -2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,-2956,
+    -2956,-2956, 3277,-2956,-2956,-2956,-2956,-2956,-2956,-2956,
+    -2956,-2956,-2956,-2956,-2956
+    },
+
+    {
+       27,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957, 1546,
+
+    -2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,
+    -2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,
+    -2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,
+    -2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,
+    -2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,-2957,
+    -2957,-2957,-2957,-2957,-2957
+    },
+
+    {
+       27,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,
+    -2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,
+    -2958,-2958,-2958,-2958,-2958,-2958,-2958, 3278,-2958,-2958,
+    -2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,
+
+    -2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,-2958,
+    -2958,-2958, 3278,-2958,-2958,-2958,-2958,-2958,-2958,-2958,
+    -2958,-2958,-2958,-2958,-2958
+    },
+
+    {
+       27,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959, 1548,
+    -2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,
+    -2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,
+    -2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,
+    -2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,
+    -2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,-2959,
+    -2959,-2959,-2959,-2959,-2959
+
+    },
+
+    {
+       27,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,
+    -2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,
+    -2960,-2960,-2960,-2960,-2960,-2960,-2960, 3279,-2960,-2960,
+    -2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,
+    -2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,-2960,
+    -2960,-2960, 3279,-2960,-2960,-2960,-2960,-2960,-2960,-2960,
+    -2960,-2960,-2960,-2960,-2960
+    },
+
+    {
+       27,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961, 1550,
+    -2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,
+    -2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,
+
+    -2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,
+    -2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,
+    -2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,-2961,
+    -2961,-2961,-2961,-2961,-2961
+    },
+
+    {
+       27,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,
+    -2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,
+    -2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,
+    -2962,-2962,-2962, 3280,-2962,-2962,-2962,-2962,-2962,-2962,
+    -2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962,
+    -2962,-2962,-2962,-2962,-2962,-2962,-2962,-2962, 3280,-2962,
+
+    -2962,-2962,-2962,-2962,-2962
+    },
+
+    {
+       27,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,
+    -2963,-2963,-2963,-2963, 3281,-2963,-2963,-2963,-2963,-2963,
+    -2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,
+    -2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,
+     3281,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,
+    -2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,-2963,
+    -2963,-2963,-2963,-2963,-2963
+    },
+
+    {
+       27,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,
+    -2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,
+
+    -2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964, 3282,-2964,
+    -2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,
+    -2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,-2964,
+    -2964,-2964,-2964, 3282,-2964,-2964,-2964,-2964,-2964,-2964,
+    -2964,-2964,-2964,-2964,-2964
+    },
+
+    {
+       27,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,
+    -2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,
+    -2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,
+    -2965,-2965,-2965, 3283,-2965,-2965,-2965,-2965,-2965,-2965,
+    -2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965,
+
+    -2965,-2965,-2965,-2965,-2965,-2965,-2965,-2965, 3283,-2965,
+    -2965,-2965,-2965,-2965,-2965
+    },
+
+    {
+       27,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,
+    -2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966, 3284,-2966,
+    -2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,
+    -2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,
+    -2966,-2966,-2966,-2966, 3284,-2966,-2966,-2966,-2966,-2966,
+    -2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,-2966,
+    -2966,-2966,-2966,-2966,-2966
+    },
+
+    {
+       27,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,
+
+    -2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,
+    -2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967, 3285,-2967,
+    -2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,
+    -2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,-2967,
+    -2967,-2967,-2967, 3285,-2967,-2967,-2967,-2967,-2967,-2967,
+    -2967,-2967,-2967,-2967,-2967
+    },
+
+    {
+       27,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,
+    -2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,
+    -2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,
+    -2968, 3286,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,
+
+    -2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,-2968,
+    -2968,-2968,-2968,-2968,-2968,-2968, 3286,-2968,-2968,-2968,
+    -2968,-2968,-2968,-2968,-2968
+    },
+
+    {
+       27,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,
+    -2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,
+    -2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969, 3287,-2969,
+    -2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,
+    -2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,-2969,
+    -2969,-2969,-2969, 3287,-2969,-2969,-2969,-2969,-2969,-2969,
+    -2969,-2969,-2969,-2969,-2969
+
+    },
+
+    {
+       27,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,
+    -2970,-2970,-2970,-2970, 3288,-2970,-2970,-2970,-2970,-2970,
+    -2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,
+    -2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,
+     3288,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,
+    -2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,-2970,
+    -2970,-2970,-2970,-2970,-2970
+    },
+
+    {
+       27,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,
+    -2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,
+    -2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,
+
+    -2971, 3289,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,
+    -2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,-2971,
+    -2971,-2971,-2971,-2971,-2971,-2971, 3289,-2971,-2971,-2971,
+    -2971,-2971,-2971,-2971,-2971
+    },
+
+    {
+       27,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,
+    -2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972, 3290,-2972,
+    -2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,
+    -2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,
+    -2972,-2972,-2972,-2972, 3290,-2972,-2972,-2972,-2972,-2972,
+    -2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,-2972,
+
+    -2972,-2972,-2972,-2972,-2972
+    },
+
+    {
+       27,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,
+    -2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973, 3291,-2973,
+    -2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,
+    -2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,
+    -2973,-2973,-2973,-2973, 3291,-2973,-2973,-2973,-2973,-2973,
+    -2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,-2973,
+    -2973,-2973,-2973,-2973,-2973
+    },
+
+    {
+       27,-2974, 2974, 2974,-2974,-2974,-2974,-2974,-2974,-2974,
+    -2974,-2974, 2975,-2974,-2974,-2974,-2974,-2974,-2974,-2974,
+
+    -2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,
+    -2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,
+    -2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,
+    -2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,-2974,
+    -2974,-2974,-2974,-2974,-2974
+    },
+
+    {
+       27,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,
+    -2975,-2975,-2975,-2975,-2975,-2975, 3292,-2975,-2975,-2975,
+    -2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,
+    -2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,
+    -2975,-2975, 3292,-2975,-2975,-2975,-2975,-2975,-2975,-2975,
+
+    -2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,-2975,
+    -2975,-2975,-2975,-2975,-2975
+    },
+
+    {
+       27,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,
+    -2976,-2976,-2976,-2976, 3293,-2976,-2976,-2976,-2976,-2976,
+    -2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,
+    -2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,
+     3293,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,
+    -2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,-2976,
+    -2976,-2976,-2976,-2976,-2976
+    },
+
+    {
+       27,-2977, 2977, 2977,-2977,-2977,-2977,-2977,-2977,-2977,
+
+    -2977,-2977, 2978,-2977,-2977,-2977,-2977,-2977,-2977,-2977,
+    -2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,
+    -2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,
+    -2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,
+    -2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,-2977,
+    -2977,-2977,-2977,-2977,-2977
+    },
+
+    {
+       27,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,
+    -2978,-2978,-2978,-2978,-2978,-2978, 3294,-2978,-2978,-2978,
+    -2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,
+    -2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,
+
+    -2978,-2978, 3294,-2978,-2978,-2978,-2978,-2978,-2978,-2978,
+    -2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,-2978,
+    -2978,-2978,-2978,-2978,-2978
+    },
+
+    {
+       27,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,
+    -2979,-2979,-2979,-2979, 3295,-2979,-2979,-2979,-2979,-2979,
+    -2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,
+    -2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,
+     3295,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,
+    -2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,-2979,
+    -2979,-2979,-2979,-2979,-2979
+
+    },
+
+    {
+       27,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,
+    -2980,-2980,-2980, 3296,-2980,-2980,-2980,-2980,-2980,-2980,
+    -2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,
+    -2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,
+    -2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,
+    -2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,-2980,
+    -2980,-2980,-2980,-2980,-2980
+    },
+
+    {
+       27,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,
+    -2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,
+    -2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,
+
+    -2981,-2981, 3297,-2981,-2981,-2981,-2981,-2981,-2981,-2981,
+    -2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,-2981,
+    -2981,-2981,-2981,-2981,-2981,-2981,-2981, 3297,-2981,-2981,
+    -2981,-2981,-2981,-2981,-2981
+    },
+
+    {
+       27,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,
+    -2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,
+    -2982,-2982,-2982,-2982,-2982,-2982, 3298,-2982,-2982,-2982,
+    -2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,
+    -2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,
+    -2982, 3298,-2982,-2982,-2982,-2982,-2982,-2982,-2982,-2982,
+
+    -2982,-2982,-2982,-2982,-2982
+    },
+
+    {
+       27,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,
+    -2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,
+    -2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,
+    -2983,-2983,-2983, 3299,-2983,-2983,-2983,-2983,-2983,-2983,
+    -2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983,
+    -2983,-2983,-2983,-2983,-2983,-2983,-2983,-2983, 3299,-2983,
+    -2983,-2983,-2983,-2983,-2983
+    },
+
+    {
+       27,-2984, 3300, 3300,-2984,-2984,-2984,-2984,-2984,-2984,
+    -2984,-2984, 3301,-2984,-2984,-2984,-2984,-2984,-2984,-2984,
+
+    -2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,
+    -2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,
+    -2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,
+    -2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,-2984,
+    -2984,-2984,-2984,-2984,-2984
+    },
+
+    {
+       27,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,
+    -2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,
+    -2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,
+    -2985,-2985,-2985, 3302,-2985,-2985,-2985,-2985,-2985,-2985,
+    -2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985,
+
+    -2985,-2985,-2985,-2985,-2985,-2985,-2985,-2985, 3302,-2985,
+    -2985,-2985,-2985,-2985,-2985
+    },
+
+    {
+       27,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,
+    -2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,
+    -2986,-2986,-2986,-2986,-2986,-2986,-2986, 3303,-2986,-2986,
+    -2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,
+    -2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,-2986,
+    -2986,-2986, 3303,-2986,-2986,-2986,-2986,-2986,-2986,-2986,
+    -2986,-2986,-2986,-2986,-2986
+    },
+
+    {
+       27,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987, 1575,
+
+    -2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,
+    -2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,
+    -2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,
+    -2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,
+    -2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,-2987,
+    -2987,-2987,-2987,-2987,-2987
+    },
+
+    {
+       27,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,
+    -2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988, 3304,-2988,
+    -2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,
+    -2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,
+
+    -2988,-2988,-2988,-2988, 3304,-2988,-2988,-2988,-2988,-2988,
+    -2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,-2988,
+    -2988,-2988,-2988,-2988,-2988
+    },
+
+    {
+       27,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,
+    -2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,
+    -2989,-2989,-2989,-2989,-2989,-2989, 3305,-2989,-2989,-2989,
+    -2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,
+    -2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,
+    -2989, 3305,-2989,-2989,-2989,-2989,-2989,-2989,-2989,-2989,
+    -2989,-2989,-2989,-2989,-2989
+
+    },
+
+    {
+       27,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,
+    -2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,
+    -2990,-2990,-2990,-2990,-2990,-2990,-2990, 3306,-2990,-2990,
+    -2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,
+    -2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,-2990,
+    -2990,-2990, 3306,-2990,-2990,-2990,-2990,-2990,-2990,-2990,
+    -2990,-2990,-2990,-2990,-2990
+    },
+
+    {
+       27,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,
+    -2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,
+    -2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991, 3307,-2991,
+
+    -2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,
+    -2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,-2991,
+    -2991,-2991,-2991, 3307,-2991,-2991,-2991,-2991,-2991,-2991,
+    -2991,-2991,-2991,-2991,-2991
+    },
+
+    {
+       27,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,
+    -2992,-2992,-2992,-2992, 3308,-2992,-2992,-2992,-2992,-2992,
+    -2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,
+    -2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,
+     3308,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,
+    -2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,-2992,
+
+    -2992,-2992,-2992,-2992,-2992
+    },
+
+    {
+       27,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,
+    -2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,
+    -2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,
+    -2993, 3309,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,
+    -2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,-2993,
+    -2993,-2993,-2993,-2993,-2993,-2993, 3309,-2993,-2993,-2993,
+    -2993,-2993,-2993,-2993,-2993
+    },
+
+    {
+       27,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,
+    -2994,-2994,-2994, 3310,-2994,-2994,-2994,-2994,-2994,-2994,
+
+    -2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,
+    -2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,
+    -2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,
+    -2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,-2994,
+    -2994,-2994,-2994,-2994,-2994
+    },
+
+    {
+       27,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,
+    -2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,
+    -2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,
+    -2995,-2995, 3311,-2995,-2995,-2995,-2995,-2995,-2995,-2995,
+    -2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,-2995,
+
+    -2995,-2995,-2995,-2995,-2995,-2995,-2995, 3311,-2995,-2995,
+    -2995,-2995,-2995,-2995,-2995
+    },
+
+    {
+       27,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,
+    -2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,
+    -2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996, 3312,-2996,
+    -2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,
+    -2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,-2996,
+    -2996,-2996,-2996, 3312,-2996,-2996,-2996,-2996,-2996,-2996,
+    -2996,-2996,-2996,-2996,-2996
+    },
+
+    {
+       27,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,
+
+    -2997,-2997,-2997,-2997,-2997,-2997, 3313,-2997,-2997,-2997,
+    -2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,
+    -2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,
+    -2997,-2997, 3313,-2997,-2997,-2997,-2997,-2997,-2997,-2997,
+    -2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,-2997,
+    -2997,-2997,-2997,-2997,-2997
+    },
+
+    {
+       27,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,
+    -2998,-2998,-2998,-2998,-2998, 3314,-2998,-2998,-2998,-2998,
+    -2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,
+    -2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,
+
+    -2998, 3314,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,
+    -2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,-2998,
+    -2998,-2998,-2998,-2998,-2998
+    },
+
+    {
+       27,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,
+    -2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,
+    -2999,-2999,-2999,-2999,-2999,-2999,-2999, 3315,-2999,-2999,
+    -2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,
+    -2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,-2999,
+    -2999,-2999, 3315,-2999,-2999,-2999,-2999,-2999,-2999,-2999,
+    -2999,-2999,-2999,-2999,-2999
+
+    },
+
+    {
+       27,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000, 1585,
+    -3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,
+    -3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,
+    -3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,
+    -3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,
+    -3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,-3000,
+    -3000,-3000,-3000,-3000,-3000
+    },
+
+    {
+       27,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,
+    -3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,
+    -3001,-3001,-3001,-3001,-3001,-3001,-3001, 3316,-3001,-3001,
+
+    -3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,
+    -3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,-3001,
+    -3001,-3001, 3316,-3001,-3001,-3001,-3001,-3001,-3001,-3001,
+    -3001,-3001,-3001,-3001,-3001
+    },
+
+    {
+       27,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002, 1587,
+    -3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,
+    -3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,
+    -3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,
+    -3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,
+    -3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,-3002,
+
+    -3002,-3002,-3002,-3002,-3002
+    },
+
+    {
+       27,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,
+    -3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,
+    -3003,-3003,-3003,-3003,-3003,-3003,-3003, 3317,-3003,-3003,
+    -3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,
+    -3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,-3003,
+    -3003,-3003, 3317,-3003,-3003,-3003,-3003,-3003,-3003,-3003,
+    -3003,-3003,-3003,-3003,-3003
+    },
+
+    {
+       27,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004, 1589,
+    -3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,
+
+    -3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,
+    -3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,
+    -3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,
+    -3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,-3004,
+    -3004,-3004,-3004,-3004,-3004
+    },
+
+    {
+       27,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,
+    -3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,
+    -3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,
+    -3005,-3005,-3005, 3318,-3005,-3005,-3005,-3005,-3005,-3005,
+    -3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005,
+
+    -3005,-3005,-3005,-3005,-3005,-3005,-3005,-3005, 3318,-3005,
+    -3005,-3005,-3005,-3005,-3005
+    },
+
+    {
+       27,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,
+    -3006,-3006,-3006,-3006, 3319,-3006,-3006,-3006,-3006,-3006,
+    -3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,
+    -3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,
+     3319,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,
+    -3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,-3006,
+    -3006,-3006,-3006,-3006,-3006
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  367,  366,  366,  366,  366, 3320,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366, 3320,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366, 3321,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366, 3321,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,
+    -3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009, 3322,-3009,
+    -3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,
+    -3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,
+    -3009,-3009,-3009,-3009, 3322,-3009,-3009,-3009,-3009,-3009,
+    -3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,-3009,
+    -3009,-3009,-3009,-3009,-3009
+
+    },
+
+    {
+       27,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,
+    -3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,
+    -3010,-3010,-3010,-3010,-3010,-3010,-3010, 3323,-3010,-3010,
+    -3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,
+    -3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,-3010,
+    -3010,-3010, 3323,-3010,-3010,-3010,-3010,-3010,-3010,-3010,
+    -3010,-3010,-3010,-3010,-3010
+    },
+
+    {
+       27,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,
+    -3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,
+    -3011,-3011,-3011,-3011,-3011,-3011,-3011, 3324,-3011,-3011,
+
+    -3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,
+    -3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,-3011,
+    -3011,-3011, 3324,-3011,-3011,-3011,-3011,-3011,-3011,-3011,
+    -3011,-3011,-3011,-3011,-3011
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1599,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,
+    -3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,
+    -3013,-3013,-3013,-3013,-3013,-3013,-3013, 3325,-3013,-3013,
+    -3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,
+    -3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,-3013,
+    -3013,-3013, 3325,-3013,-3013,-3013,-3013,-3013,-3013,-3013,
+    -3013,-3013,-3013,-3013,-3013
+    },
+
+    {
+       27,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,
+    -3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,
+
+    -3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,
+    -3014, 3326,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,
+    -3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,-3014,
+    -3014,-3014,-3014,-3014,-3014,-3014, 3326,-3014,-3014,-3014,
+    -3014,-3014,-3014,-3014,-3014
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1601,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,
+    -3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,
+    -3016,-3016,-3016,-3016,-3016,-3016,-3016, 3327,-3016,-3016,
+    -3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,
+    -3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,-3016,
+    -3016,-3016, 3327,-3016,-3016,-3016,-3016,-3016,-3016,-3016,
+    -3016,-3016,-3016,-3016,-3016
+    },
+
+    {
+       27,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017, 3328,
+
+    -3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,
+    -3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,
+    -3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,
+    -3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,
+    -3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,-3017,
+    -3017,-3017,-3017,-3017,-3017
+    },
+
+    {
+       27,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018, 3329,
+    -3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,
+    -3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,
+    -3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,
+
+    -3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,
+    -3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,-3018,
+    -3018,-3018,-3018,-3018,-3018
+    },
+
+    {
+       27,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019, 3330,
+    -3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,
+    -3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,
+    -3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,
+    -3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,
+    -3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,-3019,
+    -3019,-3019,-3019,-3019,-3019
+
+    },
+
+    {
+       27,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020, 3331,
+    -3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,
+    -3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,
+    -3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,
+    -3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,
+    -3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,-3020,
+    -3020,-3020,-3020,-3020,-3020
+    },
+
+    {
+       27,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,
+    -3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,
+    -3021,-3021,-3021,-3021,-3021,-3021,-3021, 3332,-3021,-3021,
+
+    -3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,
+    -3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,-3021,
+    -3021,-3021, 3332,-3021,-3021,-3021,-3021,-3021,-3021,-3021,
+    -3021,-3021,-3021,-3021,-3021
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3333,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3333,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3334,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3334,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,
+    -3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,
+
+    -3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024, 3335,-3024,
+    -3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,
+    -3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,-3024,
+    -3024,-3024,-3024, 3335,-3024,-3024,-3024,-3024,-3024,-3024,
+    -3024,-3024,-3024,-3024,-3024
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3336,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184, 3336,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,
+    -3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,
+    -3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026, 3337,-3026,
+    -3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,
+    -3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,-3026,
+    -3026,-3026,-3026, 3337,-3026,-3026,-3026,-3026,-3026,-3026,
+    -3026,-3026,-3026,-3026,-3026
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3338,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3338,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3028, 3339, 3339,-3028,-3028,-3028,-3028,-3028,-3028,
+    -3028,-3028, 3340,-3028,-3028,-3028,-3028,-3028,-3028,-3028,
+    -3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,
+    -3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,
+
+    -3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,
+    -3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,-3028,
+    -3028,-3028,-3028,-3028,-3028
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3341,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 3341,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,
+    -3030,-3030,-3030, 3342,-3030,-3030,-3030,-3030,-3030,-3030,
+    -3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,
+    -3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,
+    -3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,
+    -3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,-3030,
+    -3030,-3030,-3030,-3030,-3030
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1615,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,
+    -3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,
+    -3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,
+    -3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,
+    -3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,
+    -3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,-3032,
+
+    -3032,-3032,-3032,-3032,-3032
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3343,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,
+    -3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034, 3344,-3034,
+
+    -3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,
+    -3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,
+    -3034,-3034,-3034,-3034, 3344,-3034,-3034,-3034,-3034,-3034,
+    -3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,-3034,
+    -3034,-3034,-3034,-3034,-3034
+    },
+
+    {
+       27,-3035, 3035, 3035,-3035,-3035,-3035,-3035,-3035,-3035,
+    -3035,-3035, 3036,-3035,-3035,-3035,-3035,-3035,-3035,-3035,
+    -3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,
+    -3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,
+    -3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,
+
+    -3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,-3035,
+    -3035,-3035,-3035,-3035,-3035
+    },
+
+    {
+       27,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,
+    -3036,-3036,-3036,-3036,-3036,-3036, 3345,-3036,-3036,-3036,
+    -3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,
+    -3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,
+    -3036,-3036, 3345,-3036,-3036,-3036,-3036,-3036,-3036,-3036,
+    -3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,-3036,
+    -3036,-3036,-3036,-3036,-3036
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185, 3346,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3346,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,
+    -3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,
+    -3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,
+    -3038,-3038,-3038, 3347,-3038,-3038,-3038,-3038,-3038,-3038,
+
+    -3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038,
+    -3038,-3038,-3038,-3038,-3038,-3038,-3038,-3038, 3347,-3038,
+    -3038,-3038,-3038,-3038,-3038
+    },
+
+    {
+       27,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,
+    -3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,
+    -3039,-3039,-3039,-3039,-3039,-3039,-3039, 3348,-3039,-3039,
+    -3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,
+    -3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,-3039,
+    -3039,-3039, 3348,-3039,-3039,-3039,-3039,-3039,-3039,-3039,
+    -3039,-3039,-3039,-3039,-3039
+
+    },
+
+    {
+       27,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,
+    -3040,-3040,-3040, 3349,-3040,-3040,-3040,-3040,-3040,-3040,
+    -3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,
+    -3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,
+    -3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,
+    -3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,-3040,
+    -3040,-3040,-3040,-3040,-3040
+    },
+
+    {
+       27,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,
+    -3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,
+    -3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,
+
+    -3041,-3041,-3041, 3350,-3041,-3041,-3041,-3041,-3041,-3041,
+    -3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041,
+    -3041,-3041,-3041,-3041,-3041,-3041,-3041,-3041, 3350,-3041,
+    -3041,-3041,-3041,-3041,-3041
+    },
+
+    {
+       27,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,
+    -3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,
+    -3042,-3042,-3042,-3042,-3042,-3042,-3042, 3351,-3042,-3042,
+    -3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,
+    -3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,-3042,
+    -3042,-3042, 3351,-3042,-3042,-3042,-3042,-3042,-3042,-3042,
+
+    -3042,-3042,-3042,-3042,-3042
+    },
+
+    {
+       27,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,
+    -3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,
+    -3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,
+    -3043, 3352,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,
+    -3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,-3043,
+    -3043,-3043,-3043,-3043,-3043,-3043, 3352,-3043,-3043,-3043,
+    -3043,-3043,-3043,-3043,-3043
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1630,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3045, 3353, 3353,-3045,-3045,-3045,-3045,-3045,-3045,
+    -3045,-3045, 3354,-3045,-3045,-3045,-3045,-3045,-3045,-3045,
+    -3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,
+    -3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,
+    -3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,
+
+    -3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,-3045,
+    -3045,-3045,-3045,-3045,-3045
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3355,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 3355,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 3356,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3356,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3357,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 3357,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3358,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 3358,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,
+    -3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,
+    -3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,
+    -3050,-3050,-3050, 3359,-3050,-3050,-3050,-3050,-3050,-3050,
+    -3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050,
+    -3050,-3050,-3050,-3050,-3050,-3050,-3050,-3050, 3359,-3050,
+    -3050,-3050,-3050,-3050,-3050
+    },
+
+    {
+       27,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,
+    -3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,
+    -3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,
+
+    -3051,-3051,-3051, 3360,-3051,-3051,-3051,-3051,-3051,-3051,
+    -3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051,
+    -3051,-3051,-3051,-3051,-3051,-3051,-3051,-3051, 3360,-3051,
+    -3051,-3051,-3051,-3051,-3051
+    },
+
+    {
+       27,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,
+    -3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,
+    -3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,
+    -3052,-3052,-3052, 3361,-3052,-3052,-3052,-3052,-3052,-3052,
+    -3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052,
+    -3052,-3052,-3052,-3052,-3052,-3052,-3052,-3052, 3361,-3052,
+
+    -3052,-3052,-3052,-3052,-3052
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 3362,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 3362,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,
+    -3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054, 3363,-3054,
+
+    -3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,
+    -3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,
+    -3054,-3054,-3054,-3054, 3363,-3054,-3054,-3054,-3054,-3054,
+    -3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,-3054,
+    -3054,-3054,-3054,-3054,-3054
+    },
+
+    {
+       27,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,
+    -3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,
+    -3055,-3055,-3055,-3055,-3055,-3055, 3364,-3055,-3055,-3055,
+    -3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,
+    -3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,
+
+    -3055, 3364,-3055,-3055,-3055,-3055,-3055,-3055,-3055,-3055,
+    -3055,-3055,-3055,-3055,-3055
+    },
+
+    {
+       27,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,
+    -3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056, 3365,-3056,
+    -3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,
+    -3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,
+    -3056,-3056,-3056,-3056, 3365,-3056,-3056,-3056,-3056,-3056,
+    -3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,-3056,
+    -3056,-3056,-3056,-3056,-3056
+    },
+
+    {
+       27,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,
+
+    -3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,
+    -3057,-3057,-3057,-3057,-3057,-3057,-3057, 3366,-3057,-3057,
+    -3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,
+    -3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,-3057,
+    -3057,-3057, 3366,-3057,-3057,-3057,-3057,-3057,-3057,-3057,
+    -3057,-3057,-3057,-3057,-3057
+    },
+
+    {
+       27,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,
+    -3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,
+    -3058,-3058,-3058,-3058,-3058,-3058,-3058, 3367,-3058,-3058,
+    -3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,
+
+    -3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,-3058,
+    -3058,-3058, 3367,-3058,-3058,-3058,-3058,-3058,-3058,-3058,
+    -3058,-3058,-3058,-3058,-3058
+    },
+
+    {
+       27,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059, 1652,
+    -3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,
+    -3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,
+    -3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,
+    -3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,
+    -3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,-3059,
+    -3059,-3059,-3059,-3059,-3059
+
+    },
+
+    {
+       27,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,
+    -3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,
+    -3060,-3060,-3060,-3060,-3060,-3060,-3060, 3368,-3060,-3060,
+    -3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,
+    -3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,-3060,
+    -3060,-3060, 3368,-3060,-3060,-3060,-3060,-3060,-3060,-3060,
+    -3060,-3060,-3060,-3060,-3060
+    },
+
+    {
+       27,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,
+    -3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,
+    -3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,
+
+    -3061, 3369,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,
+    -3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,-3061,
+    -3061,-3061,-3061,-3061,-3061,-3061, 3369,-3061,-3061,-3061,
+    -3061,-3061,-3061,-3061,-3061
+    },
+
+    {
+       27,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062, 1654,
+    -3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,
+    -3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,
+    -3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,
+    -3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,
+    -3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,-3062,
+
+    -3062,-3062,-3062,-3062,-3062
+    },
+
+    {
+       27,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,
+    -3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,
+    -3063,-3063,-3063,-3063,-3063,-3063,-3063, 3370,-3063,-3063,
+    -3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,
+    -3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,-3063,
+    -3063,-3063, 3370,-3063,-3063,-3063,-3063,-3063,-3063,-3063,
+    -3063,-3063,-3063,-3063,-3063
+    },
+
+    {
+       27,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,
+    -3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,
+
+    -3064,-3064,-3064,-3064,-3064,-3064,-3064, 3371,-3064,-3064,
+    -3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,
+    -3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,-3064,
+    -3064,-3064, 3371,-3064,-3064,-3064,-3064,-3064,-3064,-3064,
+    -3064,-3064,-3064,-3064,-3064
+    },
+
+    {
+       27,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,
+    -3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,
+    -3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065, 3372,-3065,
+    -3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,
+    -3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,-3065,
+
+    -3065,-3065,-3065, 3372,-3065,-3065,-3065,-3065,-3065,-3065,
+    -3065,-3065,-3065,-3065,-3065
+    },
+
+    {
+       27,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,
+    -3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,
+    -3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,
+    -3066, 3373,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,
+    -3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,-3066,
+    -3066,-3066,-3066,-3066,-3066,-3066, 3373,-3066,-3066,-3066,
+    -3066,-3066,-3066,-3066,-3066
+    },
+
+    {
+       27,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,
+
+    -3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,
+    -3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067, 3374,-3067,
+    -3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,
+    -3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,-3067,
+    -3067,-3067,-3067, 3374,-3067,-3067,-3067,-3067,-3067,-3067,
+    -3067,-3067,-3067,-3067,-3067
+    },
+
+    {
+       27,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,
+    -3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,
+    -3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,
+    -3068, 3375,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,
+
+    -3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,-3068,
+    -3068,-3068,-3068,-3068,-3068,-3068, 3375,-3068,-3068,-3068,
+    -3068,-3068,-3068,-3068,-3068
+    },
+
+    {
+       27,-3069, 3376, 3376,-3069,-3069,-3069,-3069,-3069,-3069,
+    -3069,-3069, 3377,-3069,-3069,-3069,-3069,-3069,-3069,-3069,
+    -3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,
+    -3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,
+    -3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,
+    -3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,-3069,
+    -3069,-3069,-3069,-3069,-3069
+
+    },
+
+    {
+       27,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,
+    -3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,
+    -3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,
+    -3070,-3070,-3070, 3378,-3070,-3070,-3070,-3070,-3070,-3070,
+    -3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070,
+    -3070,-3070,-3070,-3070,-3070,-3070,-3070,-3070, 3378,-3070,
+    -3070,-3070,-3070,-3070,-3070
+    },
+
+    {
+       27,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,
+    -3071,-3071,-3071, 3379,-3071,-3071,-3071,-3071,-3071,-3071,
+    -3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,
+
+    -3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,
+    -3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,
+    -3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,-3071,
+    -3071,-3071,-3071,-3071,-3071
+    },
+
+    {
+       27,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,
+    -3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072, 3380,-3072,
+    -3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,
+    -3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,
+    -3072,-3072,-3072,-3072, 3380,-3072,-3072,-3072,-3072,-3072,
+    -3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,-3072,
+
+    -3072,-3072,-3072,-3072,-3072
+    },
+
+    {
+       27,-3073, 3073, 3073,-3073,-3073,-3073,-3073,-3073,-3073,
+    -3073,-3073, 3074,-3073,-3073,-3073,-3073,-3073,-3073,-3073,
+    -3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,
+    -3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,
+    -3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,
+    -3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,-3073,
+    -3073,-3073,-3073,-3073,-3073
+    },
+
+    {
+       27,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,
+    -3074,-3074,-3074,-3074,-3074,-3074, 3381,-3074,-3074,-3074,
+
+    -3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,
+    -3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,
+    -3074,-3074, 3381,-3074,-3074,-3074,-3074,-3074,-3074,-3074,
+    -3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,-3074,
+    -3074,-3074,-3074,-3074,-3074
+    },
+
+    {
+       27,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,
+    -3075,-3075,-3075,-3075, 3382,-3075,-3075,-3075,-3075,-3075,
+    -3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,
+    -3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,
+     3382,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,
+
+    -3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,-3075,
+    -3075,-3075,-3075,-3075,-3075
+    },
+
+    {
+       27,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,
+    -3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,
+    -3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,
+    -3076,-3076,-3076, 3383,-3076,-3076,-3076,-3076,-3076,-3076,
+    -3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076,
+    -3076,-3076,-3076,-3076,-3076,-3076,-3076,-3076, 3383,-3076,
+    -3076,-3076,-3076,-3076,-3076
+    },
+
+    {
+       27,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,
+
+    -3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,
+    -3077,-3077,-3077,-3077,-3077,-3077,-3077, 3384,-3077,-3077,
+    -3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,
+    -3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,-3077,
+    -3077,-3077, 3384,-3077,-3077,-3077,-3077,-3077,-3077,-3077,
+    -3077,-3077,-3077,-3077,-3077
+    },
+
+    {
+       27,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,
+    -3078,-3078,-3078, 3385,-3078,-3078,-3078,-3078,-3078,-3078,
+    -3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,
+    -3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,
+
+    -3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,
+    -3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,-3078,
+    -3078,-3078,-3078,-3078,-3078
+    },
+
+    {
+       27,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,
+    -3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,
+    -3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,
+    -3079,-3079,-3079, 3386,-3079,-3079,-3079,-3079,-3079,-3079,
+    -3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079,
+    -3079,-3079,-3079,-3079,-3079,-3079,-3079,-3079, 3386,-3079,
+    -3079,-3079,-3079,-3079,-3079
+
+    },
+
+    {
+       27,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,
+    -3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,
+    -3080,-3080,-3080,-3080,-3080,-3080,-3080, 3387,-3080,-3080,
+    -3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,
+    -3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,-3080,
+    -3080,-3080, 3387,-3080,-3080,-3080,-3080,-3080,-3080,-3080,
+    -3080,-3080,-3080,-3080,-3080
+    },
+
+    {
+       27,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,
+    -3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,
+    -3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,
+
+    -3081, 3388,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,
+    -3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,-3081,
+    -3081,-3081,-3081,-3081,-3081,-3081, 3388,-3081,-3081,-3081,
+    -3081,-3081,-3081,-3081,-3081
+    },
+
+    {
+       27,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082, 1677,
+    -3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,
+    -3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,
+    -3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,
+    -3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,
+    -3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,-3082,
+
+    -3082,-3082,-3082,-3082,-3082
+    },
+
+    {
+       27,-3083, 3389, 3389,-3083,-3083,-3083,-3083,-3083,-3083,
+    -3083,-3083, 3390,-3083,-3083,-3083,-3083,-3083,-3083,-3083,
+    -3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,
+    -3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,
+    -3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,
+    -3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,-3083,
+    -3083,-3083,-3083,-3083,-3083
+    },
+
+    {
+       27,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,
+    -3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,
+
+    -3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,
+    -3084,-3084,-3084, 3391,-3084,-3084,-3084,-3084,-3084,-3084,
+    -3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084,
+    -3084,-3084,-3084,-3084,-3084,-3084,-3084,-3084, 3391,-3084,
+    -3084,-3084,-3084,-3084,-3084
+    },
+
+    {
+       27,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,
+    -3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,
+    -3085,-3085,-3085,-3085,-3085,-3085,-3085, 3392,-3085,-3085,
+    -3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,
+    -3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,-3085,
+
+    -3085,-3085, 3392,-3085,-3085,-3085,-3085,-3085,-3085,-3085,
+    -3085,-3085,-3085,-3085,-3085
+    },
+
+    {
+       27,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,
+    -3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,
+    -3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,
+    -3086,-3086,-3086, 3393,-3086,-3086,-3086,-3086,-3086,-3086,
+    -3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086,
+    -3086,-3086,-3086,-3086,-3086,-3086,-3086,-3086, 3393,-3086,
+    -3086,-3086,-3086,-3086,-3086
+    },
+
+    {
+       27,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,
+
+    -3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,
+    -3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,
+    -3087,-3087, 3394,-3087,-3087,-3087,-3087,-3087,-3087,-3087,
+    -3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,-3087,
+    -3087,-3087,-3087,-3087,-3087,-3087,-3087, 3394,-3087,-3087,
+    -3087,-3087,-3087,-3087,-3087
+    },
+
+    {
+       27,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,
+    -3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,
+    -3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,
+    -3088,-3088,-3088, 3395,-3088,-3088,-3088,-3088,-3088,-3088,
+
+    -3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088,
+    -3088,-3088,-3088,-3088,-3088,-3088,-3088,-3088, 3395,-3088,
+    -3088,-3088,-3088,-3088,-3088
+    },
+
+    {
+       27,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,
+    -3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,
+    -3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,
+    -3089,-3089,-3089, 3396,-3089,-3089,-3089,-3089,-3089,-3089,
+    -3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089,
+    -3089,-3089,-3089,-3089,-3089,-3089,-3089,-3089, 3396,-3089,
+    -3089,-3089,-3089,-3089,-3089
+
+    },
+
+    {
+       27,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,
+    -3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,
+    -3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,
+    -3090,-3090,-3090, 3397,-3090,-3090,-3090,-3090,-3090,-3090,
+    -3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090,
+    -3090,-3090,-3090,-3090,-3090,-3090,-3090,-3090, 3397,-3090,
+    -3090,-3090,-3090,-3090,-3090
+    },
+
+    {
+       27,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,
+    -3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091, 3398,-3091,
+    -3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,
+
+    -3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,
+    -3091,-3091,-3091,-3091, 3398,-3091,-3091,-3091,-3091,-3091,
+    -3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,-3091,
+    -3091,-3091,-3091,-3091,-3091
+    },
+
+    {
+       27,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,
+    -3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,
+    -3092,-3092,-3092,-3092,-3092,-3092, 3399,-3092,-3092,-3092,
+    -3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,
+    -3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,
+    -3092, 3399,-3092,-3092,-3092,-3092,-3092,-3092,-3092,-3092,
+
+    -3092,-3092,-3092,-3092,-3092
+    },
+
+    {
+       27,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,
+    -3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093, 3400,-3093,
+    -3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,
+    -3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,
+    -3093,-3093,-3093,-3093, 3400,-3093,-3093,-3093,-3093,-3093,
+    -3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,-3093,
+    -3093,-3093,-3093,-3093,-3093
+    },
+
+    {
+       27,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,
+    -3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,
+
+    -3094,-3094,-3094,-3094,-3094,-3094,-3094, 3401,-3094,-3094,
+    -3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,
+    -3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,-3094,
+    -3094,-3094, 3401,-3094,-3094,-3094,-3094,-3094,-3094,-3094,
+    -3094,-3094,-3094,-3094,-3094
+    },
+
+    {
+       27,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,
+    -3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,
+    -3095,-3095,-3095,-3095,-3095,-3095,-3095, 3402,-3095,-3095,
+    -3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,
+    -3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,-3095,
+
+    -3095,-3095, 3402,-3095,-3095,-3095,-3095,-3095,-3095,-3095,
+    -3095,-3095,-3095,-3095,-3095
+    },
+
+    {
+       27,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096, 1693,
+    -3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,
+    -3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,
+    -3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,
+    -3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,
+    -3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,-3096,
+    -3096,-3096,-3096,-3096,-3096
+    },
+
+    {
+       27,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,
+
+    -3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,
+    -3097,-3097,-3097,-3097,-3097,-3097,-3097, 3403,-3097,-3097,
+    -3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,
+    -3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,-3097,
+    -3097,-3097, 3403,-3097,-3097,-3097,-3097,-3097,-3097,-3097,
+    -3097,-3097,-3097,-3097,-3097
+    },
+
+    {
+       27,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,
+    -3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,
+    -3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,
+    -3098, 3404,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,
+
+    -3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,-3098,
+    -3098,-3098,-3098,-3098,-3098,-3098, 3404,-3098,-3098,-3098,
+    -3098,-3098,-3098,-3098,-3098
+    },
+
+    {
+       27,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099, 1695,
+    -3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,
+    -3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,
+    -3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,
+    -3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,
+    -3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,-3099,
+    -3099,-3099,-3099,-3099,-3099
+
+    },
+
+    {
+       27,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,
+    -3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,
+    -3100,-3100,-3100,-3100,-3100,-3100,-3100, 3405,-3100,-3100,
+    -3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,
+    -3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,-3100,
+    -3100,-3100, 3405,-3100,-3100,-3100,-3100,-3100,-3100,-3100,
+    -3100,-3100,-3100,-3100,-3100
+    },
+
+    {
+       27,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,
+    -3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,
+    -3101,-3101,-3101,-3101,-3101,-3101,-3101, 3406,-3101,-3101,
+
+    -3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,
+    -3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,-3101,
+    -3101,-3101, 3406,-3101,-3101,-3101,-3101,-3101,-3101,-3101,
+    -3101,-3101,-3101,-3101,-3101
+    },
+
+    {
+       27,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,
+    -3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,
+    -3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102, 3407,-3102,
+    -3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,
+    -3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,-3102,
+    -3102,-3102,-3102, 3407,-3102,-3102,-3102,-3102,-3102,-3102,
+
+    -3102,-3102,-3102,-3102,-3102
+    },
+
+    {
+       27,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,
+    -3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,
+    -3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,
+    -3103, 3408,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,
+    -3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,-3103,
+    -3103,-3103,-3103,-3103,-3103,-3103, 3408,-3103,-3103,-3103,
+    -3103,-3103,-3103,-3103,-3103
+    },
+
+    {
+       27,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,
+    -3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,
+
+    -3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104, 3409,-3104,
+    -3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,
+    -3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,-3104,
+    -3104,-3104,-3104, 3409,-3104,-3104,-3104,-3104,-3104,-3104,
+    -3104,-3104,-3104,-3104,-3104
+    },
+
+    {
+       27,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,
+    -3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,
+    -3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,
+    -3105, 3410,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,
+    -3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,-3105,
+
+    -3105,-3105,-3105,-3105,-3105,-3105, 3410,-3105,-3105,-3105,
+    -3105,-3105,-3105,-3105,-3105
+    },
+
+    {
+       27,-3106, 3411, 3411,-3106,-3106,-3106,-3106,-3106,-3106,
+    -3106,-3106, 3412,-3106,-3106,-3106,-3106,-3106,-3106,-3106,
+    -3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,
+    -3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,
+    -3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,
+    -3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,-3106,
+    -3106,-3106,-3106,-3106,-3106
+    },
+
+    {
+       27,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,
+
+    -3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,
+    -3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,
+    -3107,-3107,-3107, 3413,-3107,-3107,-3107,-3107,-3107,-3107,
+    -3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107,
+    -3107,-3107,-3107,-3107,-3107,-3107,-3107,-3107, 3413,-3107,
+    -3107,-3107,-3107,-3107,-3107
+    },
+
+    {
+       27,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,
+    -3108,-3108,-3108, 3414,-3108,-3108,-3108,-3108,-3108,-3108,
+    -3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,
+    -3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,
+
+    -3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,
+    -3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,-3108,
+    -3108,-3108,-3108,-3108,-3108
+    },
+
+    {
+       27,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,
+    -3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109, 3415,-3109,
+    -3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,
+    -3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,
+    -3109,-3109,-3109,-3109, 3415,-3109,-3109,-3109,-3109,-3109,
+    -3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,-3109,
+    -3109,-3109,-3109,-3109,-3109
+
+    },
+
+    {
+       27,-3110, 3110, 3110,-3110,-3110,-3110,-3110,-3110,-3110,
+    -3110,-3110, 3111,-3110,-3110,-3110,-3110,-3110,-3110,-3110,
+    -3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,
+    -3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,
+    -3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,
+    -3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,-3110,
+    -3110,-3110,-3110,-3110,-3110
+    },
+
+    {
+       27,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,
+    -3111,-3111,-3111,-3111,-3111,-3111, 3416,-3111,-3111,-3111,
+    -3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,
+
+    -3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,
+    -3111,-3111, 3416,-3111,-3111,-3111,-3111,-3111,-3111,-3111,
+    -3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,-3111,
+    -3111,-3111,-3111,-3111,-3111
+    },
+
+    {
+       27,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,
+    -3112,-3112,-3112,-3112, 3417,-3112,-3112,-3112,-3112,-3112,
+    -3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,
+    -3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,
+     3417,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,
+    -3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,-3112,
+
+    -3112,-3112,-3112,-3112,-3112
+    },
+
+    {
+       27,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,
+    -3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,
+    -3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,
+    -3113,-3113,-3113, 3418,-3113,-3113,-3113,-3113,-3113,-3113,
+    -3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113,
+    -3113,-3113,-3113,-3113,-3113,-3113,-3113,-3113, 3418,-3113,
+    -3113,-3113,-3113,-3113,-3113
+    },
+
+    {
+       27,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,
+    -3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,
+
+    -3114,-3114,-3114,-3114,-3114,-3114,-3114, 3419,-3114,-3114,
+    -3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,
+    -3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,-3114,
+    -3114,-3114, 3419,-3114,-3114,-3114,-3114,-3114,-3114,-3114,
+    -3114,-3114,-3114,-3114,-3114
+    },
+
+    {
+       27,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,
+    -3115,-3115,-3115, 3420,-3115,-3115,-3115,-3115,-3115,-3115,
+    -3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,
+    -3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,
+    -3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,
+
+    -3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,-3115,
+    -3115,-3115,-3115,-3115,-3115
+    },
+
+    {
+       27,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,
+    -3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,
+    -3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,
+    -3116,-3116,-3116, 3421,-3116,-3116,-3116,-3116,-3116,-3116,
+    -3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116,
+    -3116,-3116,-3116,-3116,-3116,-3116,-3116,-3116, 3421,-3116,
+    -3116,-3116,-3116,-3116,-3116
+    },
+
+    {
+       27,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,
+
+    -3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,
+    -3117,-3117,-3117,-3117,-3117,-3117,-3117, 3422,-3117,-3117,
+    -3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,
+    -3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,-3117,
+    -3117,-3117, 3422,-3117,-3117,-3117,-3117,-3117,-3117,-3117,
+    -3117,-3117,-3117,-3117,-3117
+    },
+
+    {
+       27,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,
+    -3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,
+    -3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,
+    -3118, 3423,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,
+
+    -3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,-3118,
+    -3118,-3118,-3118,-3118,-3118,-3118, 3423,-3118,-3118,-3118,
+    -3118,-3118,-3118,-3118,-3118
+    },
+
+    {
+       27,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119, 1718,
+    -3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,
+    -3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,
+    -3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,
+    -3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,
+    -3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,-3119,
+    -3119,-3119,-3119,-3119,-3119
+
+    },
+
+    {
+       27,-3120, 3424, 3424,-3120,-3120,-3120,-3120,-3120,-3120,
+    -3120,-3120, 3425,-3120,-3120,-3120,-3120,-3120,-3120,-3120,
+    -3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,
+    -3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,
+    -3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,
+    -3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,-3120,
+    -3120,-3120,-3120,-3120,-3120
+    },
+
+    {
+       27,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,
+    -3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,
+    -3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,
+
+    -3121,-3121,-3121, 3426,-3121,-3121,-3121,-3121,-3121,-3121,
+    -3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121,
+    -3121,-3121,-3121,-3121,-3121,-3121,-3121,-3121, 3426,-3121,
+    -3121,-3121,-3121,-3121,-3121
+    },
+
+    {
+       27,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,
+    -3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,
+    -3122,-3122,-3122,-3122,-3122,-3122,-3122, 3427,-3122,-3122,
+    -3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,
+    -3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,-3122,
+    -3122,-3122, 3427,-3122,-3122,-3122,-3122,-3122,-3122,-3122,
+
+    -3122,-3122,-3122,-3122,-3122
+    },
+
+    {
+       27,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,
+    -3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,
+    -3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,
+    -3123,-3123,-3123, 3428,-3123,-3123,-3123,-3123,-3123,-3123,
+    -3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123,
+    -3123,-3123,-3123,-3123,-3123,-3123,-3123,-3123, 3428,-3123,
+    -3123,-3123,-3123,-3123,-3123
+    },
+
+    {
+       27,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,
+    -3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,
+
+    -3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,
+    -3124,-3124, 3429,-3124,-3124,-3124,-3124,-3124,-3124,-3124,
+    -3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,-3124,
+    -3124,-3124,-3124,-3124,-3124,-3124,-3124, 3429,-3124,-3124,
+    -3124,-3124,-3124,-3124,-3124
+    },
+
+    {
+       27,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,
+    -3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,
+    -3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,
+    -3125,-3125,-3125, 3430,-3125,-3125,-3125,-3125,-3125,-3125,
+    -3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125,
+
+    -3125,-3125,-3125,-3125,-3125,-3125,-3125,-3125, 3430,-3125,
+    -3125,-3125,-3125,-3125,-3125
+    },
+
+    {
+       27,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,
+    -3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,
+    -3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,
+    -3126,-3126,-3126, 3431,-3126,-3126,-3126,-3126,-3126,-3126,
+    -3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126,
+    -3126,-3126,-3126,-3126,-3126,-3126,-3126,-3126, 3431,-3126,
+    -3126,-3126,-3126,-3126,-3126
+    },
+
+    {
+       27,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,
+
+    -3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,
+    -3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,
+    -3127,-3127,-3127, 3432,-3127,-3127,-3127,-3127,-3127,-3127,
+    -3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127,
+    -3127,-3127,-3127,-3127,-3127,-3127,-3127,-3127, 3432,-3127,
+    -3127,-3127,-3127,-3127,-3127
+    },
+
+    {
+       27,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,
+    -3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128, 3433,-3128,
+    -3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,
+    -3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,
+
+    -3128,-3128,-3128,-3128, 3433,-3128,-3128,-3128,-3128,-3128,
+    -3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,-3128,
+    -3128,-3128,-3128,-3128,-3128
+    },
+
+    {
+       27,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,
+    -3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,
+    -3129,-3129,-3129,-3129,-3129,-3129, 3434,-3129,-3129,-3129,
+    -3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,
+    -3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,
+    -3129, 3434,-3129,-3129,-3129,-3129,-3129,-3129,-3129,-3129,
+    -3129,-3129,-3129,-3129,-3129
+
+    },
+
+    {
+       27,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,
+    -3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130, 3435,-3130,
+    -3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,
+    -3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,
+    -3130,-3130,-3130,-3130, 3435,-3130,-3130,-3130,-3130,-3130,
+    -3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,-3130,
+    -3130,-3130,-3130,-3130,-3130
+    },
+
+    {
+       27,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,
+    -3131,-3131,-3131, 3436,-3131,-3131,-3131,-3131,-3131,-3131,
+    -3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,
+
+    -3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,
+    -3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,
+    -3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,-3131,
+    -3131,-3131,-3131,-3131,-3131
+    },
+
+    {
+       27,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,
+    -3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,
+    -3132,-3132,-3132,-3132,-3132,-3132,-3132, 3437,-3132,-3132,
+    -3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,
+    -3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,-3132,
+    -3132,-3132, 3437,-3132,-3132,-3132,-3132,-3132,-3132,-3132,
+
+    -3132,-3132,-3132,-3132,-3132
+    },
+
+    {
+       27,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,
+    -3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,
+    -3133,-3133,-3133,-3133,-3133,-3133,-3133, 3438,-3133,-3133,
+    -3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,
+    -3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,-3133,
+    -3133,-3133, 3438,-3133,-3133,-3133,-3133,-3133,-3133,-3133,
+    -3133,-3133,-3133,-3133,-3133
+    },
+
+    {
+       27,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134, 1735,
+    -3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,
+
+    -3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,
+    -3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,
+    -3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,
+    -3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,-3134,
+    -3134,-3134,-3134,-3134,-3134
+    },
+
+    {
+       27,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,
+    -3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,
+    -3135,-3135,-3135,-3135,-3135,-3135,-3135, 3439,-3135,-3135,
+    -3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,
+    -3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,-3135,
+
+    -3135,-3135, 3439,-3135,-3135,-3135,-3135,-3135,-3135,-3135,
+    -3135,-3135,-3135,-3135,-3135
+    },
+
+    {
+       27,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,
+    -3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,
+    -3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,
+    -3136, 3440,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,
+    -3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,-3136,
+    -3136,-3136,-3136,-3136,-3136,-3136, 3440,-3136,-3136,-3136,
+    -3136,-3136,-3136,-3136,-3136
+    },
+
+    {
+       27,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137, 1737,
+
+    -3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,
+    -3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,
+    -3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,
+    -3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,
+    -3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,-3137,
+    -3137,-3137,-3137,-3137,-3137
+    },
+
+    {
+       27,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,
+    -3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,
+    -3138,-3138,-3138,-3138,-3138,-3138,-3138, 3441,-3138,-3138,
+    -3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,
+
+    -3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,-3138,
+    -3138,-3138, 3441,-3138,-3138,-3138,-3138,-3138,-3138,-3138,
+    -3138,-3138,-3138,-3138,-3138
+    },
+
+    {
+       27,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,
+    -3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,
+    -3139,-3139,-3139,-3139,-3139,-3139,-3139, 3442,-3139,-3139,
+    -3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,
+    -3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,-3139,
+    -3139,-3139, 3442,-3139,-3139,-3139,-3139,-3139,-3139,-3139,
+    -3139,-3139,-3139,-3139,-3139
+
+    },
+
+    {
+       27,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,
+    -3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,
+    -3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140, 3443,-3140,
+    -3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,
+    -3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,-3140,
+    -3140,-3140,-3140, 3443,-3140,-3140,-3140,-3140,-3140,-3140,
+    -3140,-3140,-3140,-3140,-3140
+    },
+
+    {
+       27,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,
+    -3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,
+    -3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,
+
+    -3141, 3444,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,
+    -3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,-3141,
+    -3141,-3141,-3141,-3141,-3141,-3141, 3444,-3141,-3141,-3141,
+    -3141,-3141,-3141,-3141,-3141
+    },
+
+    {
+       27,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,
+    -3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,
+    -3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142, 3445,-3142,
+    -3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,
+    -3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,-3142,
+    -3142,-3142,-3142, 3445,-3142,-3142,-3142,-3142,-3142,-3142,
+
+    -3142,-3142,-3142,-3142,-3142
+    },
+
+    {
+       27,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,
+    -3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,
+    -3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,
+    -3143, 3446,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,
+    -3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,-3143,
+    -3143,-3143,-3143,-3143,-3143,-3143, 3446,-3143,-3143,-3143,
+    -3143,-3143,-3143,-3143,-3143
+    },
+
+    {
+       27,-3144, 3447, 3447,-3144,-3144,-3144,-3144,-3144,-3144,
+    -3144,-3144, 3448,-3144,-3144,-3144,-3144,-3144,-3144,-3144,
+
+    -3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,
+    -3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,
+    -3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,
+    -3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,-3144,
+    -3144,-3144,-3144,-3144,-3144
+    },
+
+    {
+       27,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,
+    -3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,
+    -3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,
+    -3145,-3145,-3145, 3449,-3145,-3145,-3145,-3145,-3145,-3145,
+    -3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145,
+
+    -3145,-3145,-3145,-3145,-3145,-3145,-3145,-3145, 3449,-3145,
+    -3145,-3145,-3145,-3145,-3145
+    },
+
+    {
+       27,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,
+    -3146,-3146,-3146, 3450,-3146,-3146,-3146,-3146,-3146,-3146,
+    -3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,
+    -3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,
+    -3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,
+    -3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,-3146,
+    -3146,-3146,-3146,-3146,-3146
+    },
+
+    {
+       27,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,
+
+    -3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147, 3451,-3147,
+    -3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,
+    -3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,
+    -3147,-3147,-3147,-3147, 3451,-3147,-3147,-3147,-3147,-3147,
+    -3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,-3147,
+    -3147,-3147,-3147,-3147,-3147
+    },
+
+    {
+       27,-3148, 3148, 3148,-3148,-3148,-3148,-3148,-3148,-3148,
+    -3148,-3148, 3149,-3148,-3148,-3148,-3148,-3148,-3148,-3148,
+    -3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,
+    -3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,
+
+    -3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,
+    -3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,-3148,
+    -3148,-3148,-3148,-3148,-3148
+    },
+
+    {
+       27,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,
+    -3149,-3149,-3149,-3149,-3149,-3149, 3452,-3149,-3149,-3149,
+    -3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,
+    -3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,
+    -3149,-3149, 3452,-3149,-3149,-3149,-3149,-3149,-3149,-3149,
+    -3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,-3149,
+    -3149,-3149,-3149,-3149,-3149
+
+    },
+
+    {
+       27,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,
+    -3150,-3150,-3150,-3150, 3453,-3150,-3150,-3150,-3150,-3150,
+    -3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,
+    -3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,
+     3453,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,
+    -3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,-3150,
+    -3150,-3150,-3150,-3150,-3150
+    },
+
+    {
+       27,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,
+    -3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,
+    -3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,
+
+    -3151,-3151,-3151, 3454,-3151,-3151,-3151,-3151,-3151,-3151,
+    -3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151,
+    -3151,-3151,-3151,-3151,-3151,-3151,-3151,-3151, 3454,-3151,
+    -3151,-3151,-3151,-3151,-3151
+    },
+
+    {
+       27,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,
+    -3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,
+    -3152,-3152,-3152,-3152,-3152,-3152,-3152, 3455,-3152,-3152,
+    -3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,
+    -3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,-3152,
+    -3152,-3152, 3455,-3152,-3152,-3152,-3152,-3152,-3152,-3152,
+
+    -3152,-3152,-3152,-3152,-3152
+    },
+
+    {
+       27,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,
+    -3153,-3153,-3153, 3456,-3153,-3153,-3153,-3153,-3153,-3153,
+    -3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,
+    -3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,
+    -3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,
+    -3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,-3153,
+    -3153,-3153,-3153,-3153,-3153
+    },
+
+    {
+       27,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,
+    -3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,
+
+    -3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,
+    -3154,-3154,-3154, 3457,-3154,-3154,-3154,-3154,-3154,-3154,
+    -3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154,
+    -3154,-3154,-3154,-3154,-3154,-3154,-3154,-3154, 3457,-3154,
+    -3154,-3154,-3154,-3154,-3154
+    },
+
+    {
+       27,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,
+    -3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,
+    -3155,-3155,-3155,-3155,-3155,-3155,-3155, 3458,-3155,-3155,
+    -3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,
+    -3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,-3155,
+
+    -3155,-3155, 3458,-3155,-3155,-3155,-3155,-3155,-3155,-3155,
+    -3155,-3155,-3155,-3155,-3155
+    },
+
+    {
+       27,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,
+    -3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,
+    -3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,
+    -3156, 3459,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,
+    -3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,-3156,
+    -3156,-3156,-3156,-3156,-3156,-3156, 3459,-3156,-3156,-3156,
+    -3156,-3156,-3156,-3156,-3156
+    },
+
+    {
+       27,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157, 1760,
+
+    -3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,
+    -3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,
+    -3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,
+    -3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,
+    -3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,-3157,
+    -3157,-3157,-3157,-3157,-3157
+    },
+
+    {
+       27,-3158, 3460, 3460,-3158,-3158,-3158,-3158,-3158,-3158,
+    -3158,-3158, 3461,-3158,-3158,-3158,-3158,-3158,-3158,-3158,
+    -3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,
+    -3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,
+
+    -3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,
+    -3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,-3158,
+    -3158,-3158,-3158,-3158,-3158
+    },
+
+    {
+       27,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,
+    -3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,
+    -3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,
+    -3159,-3159,-3159, 3462,-3159,-3159,-3159,-3159,-3159,-3159,
+    -3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159,
+    -3159,-3159,-3159,-3159,-3159,-3159,-3159,-3159, 3462,-3159,
+    -3159,-3159,-3159,-3159,-3159
+
+    },
+
+    {
+       27,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,
+    -3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,
+    -3160,-3160,-3160,-3160,-3160,-3160,-3160, 3463,-3160,-3160,
+    -3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,
+    -3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,-3160,
+    -3160,-3160, 3463,-3160,-3160,-3160,-3160,-3160,-3160,-3160,
+    -3160,-3160,-3160,-3160,-3160
+    },
+
+    {
+       27,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,
+    -3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,
+    -3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,
+
+    -3161,-3161,-3161, 3464,-3161,-3161,-3161,-3161,-3161,-3161,
+    -3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161,
+    -3161,-3161,-3161,-3161,-3161,-3161,-3161,-3161, 3464,-3161,
+    -3161,-3161,-3161,-3161,-3161
+    },
+
+    {
+       27,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,
+    -3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,
+    -3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,
+    -3162,-3162, 3465,-3162,-3162,-3162,-3162,-3162,-3162,-3162,
+    -3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,-3162,
+    -3162,-3162,-3162,-3162,-3162,-3162,-3162, 3465,-3162,-3162,
+
+    -3162,-3162,-3162,-3162,-3162
+    },
+
+    {
+       27,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,
+    -3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,
+    -3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,
+    -3163,-3163,-3163, 3466,-3163,-3163,-3163,-3163,-3163,-3163,
+    -3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163,
+    -3163,-3163,-3163,-3163,-3163,-3163,-3163,-3163, 3466,-3163,
+    -3163,-3163,-3163,-3163,-3163
+    },
+
+    {
+       27,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,
+    -3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,
+
+    -3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,
+    -3164,-3164,-3164, 3467,-3164,-3164,-3164,-3164,-3164,-3164,
+    -3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164,
+    -3164,-3164,-3164,-3164,-3164,-3164,-3164,-3164, 3467,-3164,
+    -3164,-3164,-3164,-3164,-3164
+    },
+
+    {
+       27,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,
+    -3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,
+    -3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,
+    -3165,-3165,-3165, 3468,-3165,-3165,-3165,-3165,-3165,-3165,
+    -3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165,
+
+    -3165,-3165,-3165,-3165,-3165,-3165,-3165,-3165, 3468,-3165,
+    -3165,-3165,-3165,-3165,-3165
+    },
+
+    {
+       27,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,
+    -3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166, 3469,-3166,
+    -3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,
+    -3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,
+    -3166,-3166,-3166,-3166, 3469,-3166,-3166,-3166,-3166,-3166,
+    -3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,-3166,
+    -3166,-3166,-3166,-3166,-3166
+    },
+
+    {
+       27,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,
+
+    -3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,
+    -3167,-3167,-3167,-3167,-3167,-3167, 3470,-3167,-3167,-3167,
+    -3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,
+    -3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,
+    -3167, 3470,-3167,-3167,-3167,-3167,-3167,-3167,-3167,-3167,
+    -3167,-3167,-3167,-3167,-3167
+    },
+
+    {
+       27,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,
+    -3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168, 3471,-3168,
+    -3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,
+    -3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,
+
+    -3168,-3168,-3168,-3168, 3471,-3168,-3168,-3168,-3168,-3168,
+    -3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,-3168,
+    -3168,-3168,-3168,-3168,-3168
+    },
+
+    {
+       27,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,
+    -3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,
+    -3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,
+    -3169,-3169, 3472,-3169,-3169,-3169,-3169,-3169,-3169,-3169,
+    -3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,-3169,
+    -3169,-3169,-3169,-3169,-3169,-3169,-3169, 3472,-3169,-3169,
+    -3169,-3169,-3169,-3169,-3169
+
+    },
+
+    {
+       27,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,
+    -3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,
+    -3170,-3170,-3170,-3170,-3170,-3170,-3170, 3473,-3170,-3170,
+    -3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,
+    -3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,-3170,
+    -3170,-3170, 3473,-3170,-3170,-3170,-3170,-3170,-3170,-3170,
+    -3170,-3170,-3170,-3170,-3170
+    },
+
+    {
+       27,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,
+    -3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,
+    -3171,-3171,-3171,-3171,-3171,-3171,-3171, 3474,-3171,-3171,
+
+    -3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,
+    -3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,-3171,
+    -3171,-3171, 3474,-3171,-3171,-3171,-3171,-3171,-3171,-3171,
+    -3171,-3171,-3171,-3171,-3171
+    },
+
+    {
+       27,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172, 1777,
+    -3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,
+    -3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,
+    -3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,
+    -3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,
+    -3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,-3172,
+
+    -3172,-3172,-3172,-3172,-3172
+    },
+
+    {
+       27,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,
+    -3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,
+    -3173,-3173,-3173,-3173,-3173,-3173,-3173, 3475,-3173,-3173,
+    -3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,
+    -3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,-3173,
+    -3173,-3173, 3475,-3173,-3173,-3173,-3173,-3173,-3173,-3173,
+    -3173,-3173,-3173,-3173,-3173
+    },
+
+    {
+       27,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,
+    -3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,
+
+    -3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,
+    -3174, 3476,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,
+    -3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,-3174,
+    -3174,-3174,-3174,-3174,-3174,-3174, 3476,-3174,-3174,-3174,
+    -3174,-3174,-3174,-3174,-3174
+    },
+
+    {
+       27,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175, 1779,
+    -3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,
+    -3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,
+    -3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,
+    -3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,
+
+    -3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,-3175,
+    -3175,-3175,-3175,-3175,-3175
+    },
+
+    {
+       27,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,
+    -3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,
+    -3176,-3176,-3176,-3176,-3176,-3176,-3176, 3477,-3176,-3176,
+    -3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,
+    -3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,-3176,
+    -3176,-3176, 3477,-3176,-3176,-3176,-3176,-3176,-3176,-3176,
+    -3176,-3176,-3176,-3176,-3176
+    },
+
+    {
+       27,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,
+
+    -3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,
+    -3177,-3177,-3177,-3177,-3177,-3177,-3177, 3478,-3177,-3177,
+    -3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,
+    -3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,-3177,
+    -3177,-3177, 3478,-3177,-3177,-3177,-3177,-3177,-3177,-3177,
+    -3177,-3177,-3177,-3177,-3177
+    },
+
+    {
+       27,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,
+    -3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,
+    -3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178, 3479,-3178,
+    -3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,
+
+    -3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,-3178,
+    -3178,-3178,-3178, 3479,-3178,-3178,-3178,-3178,-3178,-3178,
+    -3178,-3178,-3178,-3178,-3178
+    },
+
+    {
+       27,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,
+    -3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,
+    -3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,
+    -3179, 3480,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,
+    -3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,-3179,
+    -3179,-3179,-3179,-3179,-3179,-3179, 3480,-3179,-3179,-3179,
+    -3179,-3179,-3179,-3179,-3179
+
+    },
+
+    {
+       27,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,
+    -3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,
+    -3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180, 3481,-3180,
+    -3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,
+    -3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,-3180,
+    -3180,-3180,-3180, 3481,-3180,-3180,-3180,-3180,-3180,-3180,
+    -3180,-3180,-3180,-3180,-3180
+    },
+
+    {
+       27,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,
+    -3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,
+    -3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,
+
+    -3181, 3482,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,
+    -3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,-3181,
+    -3181,-3181,-3181,-3181,-3181,-3181, 3482,-3181,-3181,-3181,
+    -3181,-3181,-3181,-3181,-3181
+    },
+
+    {
+       27,-3182, 3483, 3483,-3182,-3182,-3182,-3182,-3182,-3182,
+    -3182,-3182, 3484,-3182,-3182,-3182,-3182,-3182,-3182,-3182,
+    -3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,
+    -3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,
+    -3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,
+    -3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,
+
+    -3182,-3182,-3182,-3182,-3182
+    },
+
+    {
+       27,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,
+    -3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,
+    -3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,
+    -3183,-3183,-3183, 3485,-3183,-3183,-3183,-3183,-3183,-3183,
+    -3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183,
+    -3183,-3183,-3183,-3183,-3183,-3183,-3183,-3183, 3485,-3183,
+    -3183,-3183,-3183,-3183,-3183
+    },
+
+    {
+       27,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,
+    -3184,-3184,-3184, 3486,-3184,-3184,-3184,-3184,-3184,-3184,
+
+    -3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,
+    -3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,
+    -3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,
+    -3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,-3184,
+    -3184,-3184,-3184,-3184,-3184
+    },
+
+    {
+       27,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,
+    -3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185, 3487,-3185,
+    -3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,
+    -3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,
+    -3185,-3185,-3185,-3185, 3487,-3185,-3185,-3185,-3185,-3185,
+
+    -3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,-3185,
+    -3185,-3185,-3185,-3185,-3185
+    },
+
+    {
+       27,-3186, 3186, 3186,-3186,-3186,-3186,-3186,-3186,-3186,
+    -3186,-3186, 3187,-3186,-3186,-3186,-3186,-3186,-3186,-3186,
+    -3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,
+    -3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,
+    -3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,
+    -3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,-3186,
+    -3186,-3186,-3186,-3186,-3186
+    },
+
+    {
+       27,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,
+
+    -3187,-3187,-3187,-3187,-3187,-3187, 3488,-3187,-3187,-3187,
+    -3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,
+    -3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,
+    -3187,-3187, 3488,-3187,-3187,-3187,-3187,-3187,-3187,-3187,
+    -3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,-3187,
+    -3187,-3187,-3187,-3187,-3187
+    },
+
+    {
+       27,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,
+    -3188,-3188,-3188,-3188, 3489,-3188,-3188,-3188,-3188,-3188,
+    -3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,
+    -3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,
+
+     3489,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,
+    -3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,-3188,
+    -3188,-3188,-3188,-3188,-3188
+    },
+
+    {
+       27,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,
+    -3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,
+    -3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,
+    -3189,-3189,-3189, 3490,-3189,-3189,-3189,-3189,-3189,-3189,
+    -3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189,
+    -3189,-3189,-3189,-3189,-3189,-3189,-3189,-3189, 3490,-3189,
+    -3189,-3189,-3189,-3189,-3189
+
+    },
+
+    {
+       27,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,
+    -3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,
+    -3190,-3190,-3190,-3190,-3190,-3190,-3190, 3491,-3190,-3190,
+    -3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,
+    -3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,-3190,
+    -3190,-3190, 3491,-3190,-3190,-3190,-3190,-3190,-3190,-3190,
+    -3190,-3190,-3190,-3190,-3190
+    },
+
+    {
+       27,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,
+    -3191,-3191,-3191, 3492,-3191,-3191,-3191,-3191,-3191,-3191,
+    -3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,
+
+    -3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,
+    -3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,
+    -3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,-3191,
+    -3191,-3191,-3191,-3191,-3191
+    },
+
+    {
+       27,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,
+    -3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,
+    -3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,
+    -3192,-3192,-3192, 3493,-3192,-3192,-3192,-3192,-3192,-3192,
+    -3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192,
+    -3192,-3192,-3192,-3192,-3192,-3192,-3192,-3192, 3493,-3192,
+
+    -3192,-3192,-3192,-3192,-3192
+    },
+
+    {
+       27,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,
+    -3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,
+    -3193,-3193,-3193,-3193,-3193,-3193,-3193, 3494,-3193,-3193,
+    -3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,
+    -3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,-3193,
+    -3193,-3193, 3494,-3193,-3193,-3193,-3193,-3193,-3193,-3193,
+    -3193,-3193,-3193,-3193,-3193
+    },
+
+    {
+       27,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,
+    -3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,
+
+    -3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,
+    -3194, 3495,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,
+    -3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,-3194,
+    -3194,-3194,-3194,-3194,-3194,-3194, 3495,-3194,-3194,-3194,
+    -3194,-3194,-3194,-3194,-3194
+    },
+
+    {
+       27,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195, 1802,
+    -3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,
+    -3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,
+    -3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,
+    -3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,
+
+    -3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,-3195,
+    -3195,-3195,-3195,-3195,-3195
+    },
+
+    {
+       27,-3196, 3496, 3496,-3196,-3196,-3196,-3196,-3196,-3196,
+    -3196,-3196, 3497,-3196,-3196,-3196,-3196,-3196,-3196,-3196,
+    -3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,
+    -3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,
+    -3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,
+    -3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,-3196,
+    -3196,-3196,-3196,-3196,-3196
+    },
+
+    {
+       27,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,
+
+    -3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,
+    -3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,
+    -3197,-3197,-3197, 3498,-3197,-3197,-3197,-3197,-3197,-3197,
+    -3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197,
+    -3197,-3197,-3197,-3197,-3197,-3197,-3197,-3197, 3498,-3197,
+    -3197,-3197,-3197,-3197,-3197
+    },
+
+    {
+       27,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,
+    -3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,
+    -3198,-3198,-3198,-3198,-3198,-3198,-3198, 3499,-3198,-3198,
+    -3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,
+
+    -3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,-3198,
+    -3198,-3198, 3499,-3198,-3198,-3198,-3198,-3198,-3198,-3198,
+    -3198,-3198,-3198,-3198,-3198
+    },
+
+    {
+       27,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,
+    -3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,
+    -3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,
+    -3199,-3199,-3199, 3500,-3199,-3199,-3199,-3199,-3199,-3199,
+    -3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199,
+    -3199,-3199,-3199,-3199,-3199,-3199,-3199,-3199, 3500,-3199,
+    -3199,-3199,-3199,-3199,-3199
+
+    },
+
+    {
+       27,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,
+    -3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,
+    -3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,
+    -3200,-3200, 3501,-3200,-3200,-3200,-3200,-3200,-3200,-3200,
+    -3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,-3200,
+    -3200,-3200,-3200,-3200,-3200,-3200,-3200, 3501,-3200,-3200,
+    -3200,-3200,-3200,-3200,-3200
+    },
+
+    {
+       27,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,
+    -3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,
+    -3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,
+
+    -3201,-3201,-3201, 3502,-3201,-3201,-3201,-3201,-3201,-3201,
+    -3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201,
+    -3201,-3201,-3201,-3201,-3201,-3201,-3201,-3201, 3502,-3201,
+    -3201,-3201,-3201,-3201,-3201
+    },
+
+    {
+       27,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,
+    -3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,
+    -3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,
+    -3202,-3202,-3202, 3503,-3202,-3202,-3202,-3202,-3202,-3202,
+    -3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202,
+    -3202,-3202,-3202,-3202,-3202,-3202,-3202,-3202, 3503,-3202,
+
+    -3202,-3202,-3202,-3202,-3202
+    },
+
+    {
+       27,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,
+    -3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,
+    -3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,
+    -3203,-3203,-3203, 3504,-3203,-3203,-3203,-3203,-3203,-3203,
+    -3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203,
+    -3203,-3203,-3203,-3203,-3203,-3203,-3203,-3203, 3504,-3203,
+    -3203,-3203,-3203,-3203,-3203
+    },
+
+    {
+       27,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,
+    -3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204, 3505,-3204,
+
+    -3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,
+    -3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,
+    -3204,-3204,-3204,-3204, 3505,-3204,-3204,-3204,-3204,-3204,
+    -3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,-3204,
+    -3204,-3204,-3204,-3204,-3204
+    },
+
+    {
+       27,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,
+    -3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,
+    -3205,-3205,-3205,-3205,-3205,-3205, 3506,-3205,-3205,-3205,
+    -3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,
+    -3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,
+
+    -3205, 3506,-3205,-3205,-3205,-3205,-3205,-3205,-3205,-3205,
+    -3205,-3205,-3205,-3205,-3205
+    },
+
+    {
+       27,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,
+    -3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206, 3507,-3206,
+    -3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,
+    -3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,
+    -3206,-3206,-3206,-3206, 3507,-3206,-3206,-3206,-3206,-3206,
+    -3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,-3206,
+    -3206,-3206,-3206,-3206,-3206
+    },
+
+    {
+       27,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,
+
+    -3207,-3207,-3207,-3207, 3508,-3207,-3207,-3207,-3207,-3207,
+    -3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,
+    -3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,
+     3508,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,
+    -3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,-3207,
+    -3207,-3207,-3207,-3207,-3207
+    },
+
+    {
+       27,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,
+    -3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,
+    -3208,-3208,-3208,-3208,-3208,-3208,-3208, 3509,-3208,-3208,
+    -3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,
+
+    -3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,-3208,
+    -3208,-3208, 3509,-3208,-3208,-3208,-3208,-3208,-3208,-3208,
+    -3208,-3208,-3208,-3208,-3208
+    },
+
+    {
+       27,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,
+    -3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,
+    -3209,-3209,-3209,-3209,-3209,-3209,-3209, 3510,-3209,-3209,
+    -3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,
+    -3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,-3209,
+    -3209,-3209, 3510,-3209,-3209,-3209,-3209,-3209,-3209,-3209,
+    -3209,-3209,-3209,-3209,-3209
+
+    },
+
+    {
+       27,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210, 1819,
+    -3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,
+    -3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,
+    -3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,
+    -3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,
+    -3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,-3210,
+    -3210,-3210,-3210,-3210,-3210
+    },
+
+    {
+       27,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,
+    -3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,
+    -3211,-3211,-3211,-3211,-3211,-3211,-3211, 3511,-3211,-3211,
+
+    -3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,
+    -3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,-3211,
+    -3211,-3211, 3511,-3211,-3211,-3211,-3211,-3211,-3211,-3211,
+    -3211,-3211,-3211,-3211,-3211
+    },
+
+    {
+       27,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,
+    -3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,
+    -3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,
+    -3212, 3512,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,
+    -3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,-3212,
+    -3212,-3212,-3212,-3212,-3212,-3212, 3512,-3212,-3212,-3212,
+
+    -3212,-3212,-3212,-3212,-3212
+    },
+
+    {
+       27,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213, 1821,
+    -3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,
+    -3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,
+    -3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,
+    -3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,
+    -3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,-3213,
+    -3213,-3213,-3213,-3213,-3213
+    },
+
+    {
+       27,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,
+    -3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,
+
+    -3214,-3214,-3214,-3214,-3214,-3214,-3214, 3513,-3214,-3214,
+    -3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,
+    -3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,-3214,
+    -3214,-3214, 3513,-3214,-3214,-3214,-3214,-3214,-3214,-3214,
+    -3214,-3214,-3214,-3214,-3214
+    },
+
+    {
+       27,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,
+    -3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,
+    -3215,-3215,-3215,-3215,-3215,-3215,-3215, 3514,-3215,-3215,
+    -3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,
+    -3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,-3215,
+
+    -3215,-3215, 3514,-3215,-3215,-3215,-3215,-3215,-3215,-3215,
+    -3215,-3215,-3215,-3215,-3215
+    },
+
+    {
+       27,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,
+    -3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,
+    -3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216, 3515,-3216,
+    -3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,
+    -3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,-3216,
+    -3216,-3216,-3216, 3515,-3216,-3216,-3216,-3216,-3216,-3216,
+    -3216,-3216,-3216,-3216,-3216
+    },
+
+    {
+       27,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,
+
+    -3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,
+    -3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,
+    -3217, 3516,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,
+    -3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,-3217,
+    -3217,-3217,-3217,-3217,-3217,-3217, 3516,-3217,-3217,-3217,
+    -3217,-3217,-3217,-3217,-3217
+    },
+
+    {
+       27,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,
+    -3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,
+    -3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218, 3517,-3218,
+    -3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,
+
+    -3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,-3218,
+    -3218,-3218,-3218, 3517,-3218,-3218,-3218,-3218,-3218,-3218,
+    -3218,-3218,-3218,-3218,-3218
+    },
+
+    {
+       27,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,
+    -3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,
+    -3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,
+    -3219, 3518,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,
+    -3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,-3219,
+    -3219,-3219,-3219,-3219,-3219,-3219, 3518,-3219,-3219,-3219,
+    -3219,-3219,-3219,-3219,-3219
+
+    },
+
+    {
+       27,-3220, 3519, 3519,-3220,-3220,-3220,-3220,-3220,-3220,
+    -3220,-3220, 3520,-3220,-3220,-3220,-3220,-3220,-3220,-3220,
+    -3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,
+    -3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,
+    -3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,
+    -3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,-3220,
+    -3220,-3220,-3220,-3220,-3220
+    },
+
+    {
+       27,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,
+    -3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,
+    -3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,
+
+    -3221,-3221,-3221, 3521,-3221,-3221,-3221,-3221,-3221,-3221,
+    -3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221,
+    -3221,-3221,-3221,-3221,-3221,-3221,-3221,-3221, 3521,-3221,
+    -3221,-3221,-3221,-3221,-3221
+    },
+
+    {
+       27,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,
+    -3222,-3222,-3222, 3522,-3222,-3222,-3222,-3222,-3222,-3222,
+    -3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,
+    -3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,
+    -3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,
+    -3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,-3222,
+
+    -3222,-3222,-3222,-3222,-3222
+    },
+
+    {
+       27,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,
+    -3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223, 3523,-3223,
+    -3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,
+    -3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,
+    -3223,-3223,-3223,-3223, 3523,-3223,-3223,-3223,-3223,-3223,
+    -3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,-3223,
+    -3223,-3223,-3223,-3223,-3223
+    },
+
+    {
+       27,-3224, 3224, 3224,-3224,-3224,-3224,-3224,-3224,-3224,
+    -3224,-3224, 3225,-3224,-3224,-3224,-3224,-3224,-3224,-3224,
+
+    -3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,
+    -3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,
+    -3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,
+    -3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,-3224,
+    -3224,-3224,-3224,-3224,-3224
+    },
+
+    {
+       27,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,
+    -3225,-3225,-3225,-3225,-3225,-3225, 3524,-3225,-3225,-3225,
+    -3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,
+    -3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,
+    -3225,-3225, 3524,-3225,-3225,-3225,-3225,-3225,-3225,-3225,
+
+    -3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,-3225,
+    -3225,-3225,-3225,-3225,-3225
+    },
+
+    {
+       27,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,
+    -3226,-3226,-3226,-3226, 3525,-3226,-3226,-3226,-3226,-3226,
+    -3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,
+    -3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,
+     3525,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,
+    -3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,-3226,
+    -3226,-3226,-3226,-3226,-3226
+    },
+
+    {
+       27,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,
+
+    -3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,
+    -3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,
+    -3227,-3227,-3227, 3526,-3227,-3227,-3227,-3227,-3227,-3227,
+    -3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227,
+    -3227,-3227,-3227,-3227,-3227,-3227,-3227,-3227, 3526,-3227,
+    -3227,-3227,-3227,-3227,-3227
+    },
+
+    {
+       27,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,
+    -3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,
+    -3228,-3228,-3228,-3228,-3228,-3228,-3228, 3527,-3228,-3228,
+    -3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,
+
+    -3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,-3228,
+    -3228,-3228, 3527,-3228,-3228,-3228,-3228,-3228,-3228,-3228,
+    -3228,-3228,-3228,-3228,-3228
+    },
+
+    {
+       27,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,
+    -3229,-3229,-3229, 3528,-3229,-3229,-3229,-3229,-3229,-3229,
+    -3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,
+    -3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,
+    -3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,
+    -3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,-3229,
+    -3229,-3229,-3229,-3229,-3229
+
+    },
+
+    {
+       27,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,
+    -3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,
+    -3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,
+    -3230,-3230,-3230, 3529,-3230,-3230,-3230,-3230,-3230,-3230,
+    -3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230,
+    -3230,-3230,-3230,-3230,-3230,-3230,-3230,-3230, 3529,-3230,
+    -3230,-3230,-3230,-3230,-3230
+    },
+
+    {
+       27,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,
+    -3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,
+    -3231,-3231,-3231,-3231,-3231,-3231,-3231, 3530,-3231,-3231,
+
+    -3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,
+    -3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,-3231,
+    -3231,-3231, 3530,-3231,-3231,-3231,-3231,-3231,-3231,-3231,
+    -3231,-3231,-3231,-3231,-3231
+    },
+
+    {
+       27,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,
+    -3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,
+    -3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,
+    -3232, 3531,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,
+    -3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,-3232,
+    -3232,-3232,-3232,-3232,-3232,-3232, 3531,-3232,-3232,-3232,
+
+    -3232,-3232,-3232,-3232,-3232
+    },
+
+    {
+       27,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233, 1844,
+    -3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,
+    -3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,
+    -3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,
+    -3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,
+    -3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,-3233,
+    -3233,-3233,-3233,-3233,-3233
+    },
+
+    {
+       27,-3234, 3532, 3532,-3234,-3234,-3234,-3234,-3234,-3234,
+    -3234,-3234, 3533,-3234,-3234,-3234,-3234,-3234,-3234,-3234,
+
+    -3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,
+    -3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,
+    -3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,
+    -3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,-3234,
+    -3234,-3234,-3234,-3234,-3234
+    },
+
+    {
+       27,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,
+    -3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,
+    -3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,
+    -3235,-3235,-3235, 3534,-3235,-3235,-3235,-3235,-3235,-3235,
+    -3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235,
+
+    -3235,-3235,-3235,-3235,-3235,-3235,-3235,-3235, 3534,-3235,
+    -3235,-3235,-3235,-3235,-3235
+    },
+
+    {
+       27,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,
+    -3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,
+    -3236,-3236,-3236,-3236,-3236,-3236,-3236, 3535,-3236,-3236,
+    -3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,
+    -3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,-3236,
+    -3236,-3236, 3535,-3236,-3236,-3236,-3236,-3236,-3236,-3236,
+    -3236,-3236,-3236,-3236,-3236
+    },
+
+    {
+       27,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,
+
+    -3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,
+    -3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,
+    -3237,-3237,-3237, 3536,-3237,-3237,-3237,-3237,-3237,-3237,
+    -3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237,
+    -3237,-3237,-3237,-3237,-3237,-3237,-3237,-3237, 3536,-3237,
+    -3237,-3237,-3237,-3237,-3237
+    },
+
+    {
+       27,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,
+    -3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,
+    -3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,
+    -3238,-3238, 3537,-3238,-3238,-3238,-3238,-3238,-3238,-3238,
+
+    -3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,-3238,
+    -3238,-3238,-3238,-3238,-3238,-3238,-3238, 3537,-3238,-3238,
+    -3238,-3238,-3238,-3238,-3238
+    },
+
+    {
+       27,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,
+    -3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,
+    -3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,
+    -3239,-3239,-3239, 3538,-3239,-3239,-3239,-3239,-3239,-3239,
+    -3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239,
+    -3239,-3239,-3239,-3239,-3239,-3239,-3239,-3239, 3538,-3239,
+    -3239,-3239,-3239,-3239,-3239
+
+    },
+
+    {
+       27,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,
+    -3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,
+    -3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,
+    -3240,-3240,-3240, 3539,-3240,-3240,-3240,-3240,-3240,-3240,
+    -3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240,
+    -3240,-3240,-3240,-3240,-3240,-3240,-3240,-3240, 3539,-3240,
+    -3240,-3240,-3240,-3240,-3240
+    },
+
+    {
+       27,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,
+    -3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,
+    -3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,
+
+    -3241,-3241,-3241, 3540,-3241,-3241,-3241,-3241,-3241,-3241,
+    -3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241,
+    -3241,-3241,-3241,-3241,-3241,-3241,-3241,-3241, 3540,-3241,
+    -3241,-3241,-3241,-3241,-3241
+    },
+
+    {
+       27,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,
+    -3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242, 3541,-3242,
+    -3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,
+    -3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,
+    -3242,-3242,-3242,-3242, 3541,-3242,-3242,-3242,-3242,-3242,
+    -3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,-3242,
+
+    -3242,-3242,-3242,-3242,-3242
+    },
+
+    {
+       27,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,
+    -3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,
+    -3243,-3243,-3243,-3243,-3243,-3243, 3542,-3243,-3243,-3243,
+    -3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,
+    -3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,
+    -3243, 3542,-3243,-3243,-3243,-3243,-3243,-3243,-3243,-3243,
+    -3243,-3243,-3243,-3243,-3243
+    },
+
+    {
+       27,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,
+    -3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244, 3543,-3244,
+
+    -3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,
+    -3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,
+    -3244,-3244,-3244,-3244, 3543,-3244,-3244,-3244,-3244,-3244,
+    -3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,-3244,
+    -3244,-3244,-3244,-3244,-3244
+    },
+
+    {
+       27,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,
+    -3245,-3245,-3245,-3245, 3544,-3245,-3245,-3245,-3245,-3245,
+    -3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,
+    -3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,
+     3544,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,
+
+    -3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,-3245,
+    -3245,-3245,-3245,-3245,-3245
+    },
+
+    {
+       27,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,
+    -3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,
+    -3246,-3246,-3246,-3246,-3246,-3246,-3246, 3545,-3246,-3246,
+    -3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,
+    -3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,-3246,
+    -3246,-3246, 3545,-3246,-3246,-3246,-3246,-3246,-3246,-3246,
+    -3246,-3246,-3246,-3246,-3246
+    },
+
+    {
+       27,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,
+
+    -3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,
+    -3247,-3247,-3247,-3247,-3247,-3247,-3247, 3546,-3247,-3247,
+    -3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,
+    -3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,-3247,
+    -3247,-3247, 3546,-3247,-3247,-3247,-3247,-3247,-3247,-3247,
+    -3247,-3247,-3247,-3247,-3247
+    },
+
+    {
+       27,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248, 1861,
+    -3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,
+    -3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,
+    -3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,
+
+    -3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,
+    -3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,-3248,
+    -3248,-3248,-3248,-3248,-3248
+    },
+
+    {
+       27,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,
+    -3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,
+    -3249,-3249,-3249,-3249,-3249,-3249,-3249, 3547,-3249,-3249,
+    -3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,
+    -3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,-3249,
+    -3249,-3249, 3547,-3249,-3249,-3249,-3249,-3249,-3249,-3249,
+    -3249,-3249,-3249,-3249,-3249
+
+    },
+
+    {
+       27,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,
+    -3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,
+    -3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,
+    -3250, 3548,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,
+    -3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,-3250,
+    -3250,-3250,-3250,-3250,-3250,-3250, 3548,-3250,-3250,-3250,
+    -3250,-3250,-3250,-3250,-3250
+    },
+
+    {
+       27,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251, 1863,
+    -3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,
+    -3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,
+
+    -3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,
+    -3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,
+    -3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,-3251,
+    -3251,-3251,-3251,-3251,-3251
+    },
+
+    {
+       27,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,
+    -3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,
+    -3252,-3252,-3252,-3252,-3252,-3252,-3252, 3549,-3252,-3252,
+    -3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,
+    -3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,-3252,
+    -3252,-3252, 3549,-3252,-3252,-3252,-3252,-3252,-3252,-3252,
+
+    -3252,-3252,-3252,-3252,-3252
+    },
+
+    {
+       27,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,
+    -3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,
+    -3253,-3253,-3253,-3253,-3253,-3253,-3253, 3550,-3253,-3253,
+    -3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,
+    -3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,-3253,
+    -3253,-3253, 3550,-3253,-3253,-3253,-3253,-3253,-3253,-3253,
+    -3253,-3253,-3253,-3253,-3253
+    },
+
+    {
+       27,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,
+    -3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,
+
+    -3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254, 3551,-3254,
+    -3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,
+    -3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,-3254,
+    -3254,-3254,-3254, 3551,-3254,-3254,-3254,-3254,-3254,-3254,
+    -3254,-3254,-3254,-3254,-3254
+    },
+
+    {
+       27,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,
+    -3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,
+    -3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,
+    -3255, 3552,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,
+    -3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,-3255,
+
+    -3255,-3255,-3255,-3255,-3255,-3255, 3552,-3255,-3255,-3255,
+    -3255,-3255,-3255,-3255,-3255
+    },
+
+    {
+       27,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,
+    -3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,
+    -3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256, 3553,-3256,
+    -3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,
+    -3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,-3256,
+    -3256,-3256,-3256, 3553,-3256,-3256,-3256,-3256,-3256,-3256,
+    -3256,-3256,-3256,-3256,-3256
+    },
+
+    {
+       27,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,
+
+    -3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,
+    -3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,
+    -3257, 3554,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,
+    -3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,-3257,
+    -3257,-3257,-3257,-3257,-3257,-3257, 3554,-3257,-3257,-3257,
+    -3257,-3257,-3257,-3257,-3257
+    },
+
+    {
+       27,-3258, 3555, 3555,-3258,-3258,-3258,-3258,-3258,-3258,
+    -3258,-3258, 3556,-3258,-3258,-3258,-3258,-3258,-3258,-3258,
+    -3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,
+    -3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,
+
+    -3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,
+    -3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,-3258,
+    -3258,-3258,-3258,-3258,-3258
+    },
+
+    {
+       27,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,
+    -3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,
+    -3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,
+    -3259,-3259,-3259, 3557,-3259,-3259,-3259,-3259,-3259,-3259,
+    -3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259,
+    -3259,-3259,-3259,-3259,-3259,-3259,-3259,-3259, 3557,-3259,
+    -3259,-3259,-3259,-3259,-3259
+
+    },
+
+    {
+       27,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,
+    -3260,-3260,-3260, 3558,-3260,-3260,-3260,-3260,-3260,-3260,
+    -3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,
+    -3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,
+    -3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,
+    -3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,-3260,
+    -3260,-3260,-3260,-3260,-3260
+    },
+
+    {
+       27,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,
+    -3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261, 3559,-3261,
+    -3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,
+
+    -3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,
+    -3261,-3261,-3261,-3261, 3559,-3261,-3261,-3261,-3261,-3261,
+    -3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,-3261,
+    -3261,-3261,-3261,-3261,-3261
+    },
+
+    {
+       27,-3262, 3262, 3262,-3262,-3262,-3262,-3262,-3262,-3262,
+    -3262,-3262, 3263,-3262,-3262,-3262,-3262,-3262,-3262,-3262,
+    -3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,
+    -3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,
+    -3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,
+    -3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,-3262,
+
+    -3262,-3262,-3262,-3262,-3262
+    },
+
+    {
+       27,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,
+    -3263,-3263,-3263,-3263,-3263,-3263, 3560,-3263,-3263,-3263,
+    -3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,
+    -3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,
+    -3263,-3263, 3560,-3263,-3263,-3263,-3263,-3263,-3263,-3263,
+    -3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,-3263,
+    -3263,-3263,-3263,-3263,-3263
+    },
+
+    {
+       27,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,
+    -3264,-3264,-3264,-3264, 3561,-3264,-3264,-3264,-3264,-3264,
+
+    -3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,
+    -3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,
+     3561,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,
+    -3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,-3264,
+    -3264,-3264,-3264,-3264,-3264
+    },
+
+    {
+       27,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,
+    -3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,
+    -3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,
+    -3265,-3265,-3265, 3562,-3265,-3265,-3265,-3265,-3265,-3265,
+    -3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265,
+
+    -3265,-3265,-3265,-3265,-3265,-3265,-3265,-3265, 3562,-3265,
+    -3265,-3265,-3265,-3265,-3265
+    },
+
+    {
+       27,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,
+    -3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,
+    -3266,-3266,-3266,-3266,-3266,-3266,-3266, 3563,-3266,-3266,
+    -3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,
+    -3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,-3266,
+    -3266,-3266, 3563,-3266,-3266,-3266,-3266,-3266,-3266,-3266,
+    -3266,-3266,-3266,-3266,-3266
+    },
+
+    {
+       27,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,
+
+    -3267,-3267,-3267, 3564,-3267,-3267,-3267,-3267,-3267,-3267,
+    -3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,
+    -3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,
+    -3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,
+    -3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,-3267,
+    -3267,-3267,-3267,-3267,-3267
+    },
+
+    {
+       27,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,
+    -3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,
+    -3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,
+    -3268,-3268,-3268, 3565,-3268,-3268,-3268,-3268,-3268,-3268,
+
+    -3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268,
+    -3268,-3268,-3268,-3268,-3268,-3268,-3268,-3268, 3565,-3268,
+    -3268,-3268,-3268,-3268,-3268
+    },
+
+    {
+       27,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,
+    -3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,
+    -3269,-3269,-3269,-3269,-3269,-3269,-3269, 3566,-3269,-3269,
+    -3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,
+    -3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,-3269,
+    -3269,-3269, 3566,-3269,-3269,-3269,-3269,-3269,-3269,-3269,
+    -3269,-3269,-3269,-3269,-3269
+
+    },
+
+    {
+       27,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,
+    -3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,
+    -3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,
+    -3270, 3567,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,
+    -3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,-3270,
+    -3270,-3270,-3270,-3270,-3270,-3270, 3567,-3270,-3270,-3270,
+    -3270,-3270,-3270,-3270,-3270
+    },
+
+    {
+       27,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271, 1886,
+    -3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,
+    -3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,
+
+    -3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,
+    -3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,
+    -3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,-3271,
+    -3271,-3271,-3271,-3271,-3271
+    },
+
+    {
+       27,-3272, 3568, 3568,-3272,-3272,-3272,-3272,-3272,-3272,
+    -3272,-3272, 3569,-3272,-3272,-3272,-3272,-3272,-3272,-3272,
+    -3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,
+    -3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,
+    -3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,
+    -3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,-3272,
+
+    -3272,-3272,-3272,-3272,-3272
+    },
+
+    {
+       27,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,
+    -3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,
+    -3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,
+    -3273,-3273,-3273, 3570,-3273,-3273,-3273,-3273,-3273,-3273,
+    -3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273,
+    -3273,-3273,-3273,-3273,-3273,-3273,-3273,-3273, 3570,-3273,
+    -3273,-3273,-3273,-3273,-3273
+    },
+
+    {
+       27,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,
+    -3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,
+
+    -3274,-3274,-3274,-3274,-3274,-3274,-3274, 3571,-3274,-3274,
+    -3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,
+    -3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,-3274,
+    -3274,-3274, 3571,-3274,-3274,-3274,-3274,-3274,-3274,-3274,
+    -3274,-3274,-3274,-3274,-3274
+    },
+
+    {
+       27,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,
+    -3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,
+    -3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,
+    -3275,-3275,-3275, 3572,-3275,-3275,-3275,-3275,-3275,-3275,
+    -3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275,
+
+    -3275,-3275,-3275,-3275,-3275,-3275,-3275,-3275, 3572,-3275,
+    -3275,-3275,-3275,-3275,-3275
+    },
+
+    {
+       27,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,
+    -3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,
+    -3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,
+    -3276,-3276, 3573,-3276,-3276,-3276,-3276,-3276,-3276,-3276,
+    -3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,-3276,
+    -3276,-3276,-3276,-3276,-3276,-3276,-3276, 3573,-3276,-3276,
+    -3276,-3276,-3276,-3276,-3276
+    },
+
+    {
+       27,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,
+
+    -3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,
+    -3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,
+    -3277,-3277,-3277, 3574,-3277,-3277,-3277,-3277,-3277,-3277,
+    -3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277,
+    -3277,-3277,-3277,-3277,-3277,-3277,-3277,-3277, 3574,-3277,
+    -3277,-3277,-3277,-3277,-3277
+    },
+
+    {
+       27,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,
+    -3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,
+    -3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,
+    -3278,-3278,-3278, 3575,-3278,-3278,-3278,-3278,-3278,-3278,
+
+    -3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278,
+    -3278,-3278,-3278,-3278,-3278,-3278,-3278,-3278, 3575,-3278,
+    -3278,-3278,-3278,-3278,-3278
+    },
+
+    {
+       27,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,
+    -3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,
+    -3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,
+    -3279,-3279,-3279, 3576,-3279,-3279,-3279,-3279,-3279,-3279,
+    -3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279,
+    -3279,-3279,-3279,-3279,-3279,-3279,-3279,-3279, 3576,-3279,
+    -3279,-3279,-3279,-3279,-3279
+
+    },
+
+    {
+       27,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,
+    -3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280, 3577,-3280,
+    -3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,
+    -3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,
+    -3280,-3280,-3280,-3280, 3577,-3280,-3280,-3280,-3280,-3280,
+    -3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,-3280,
+    -3280,-3280,-3280,-3280,-3280
+    },
+
+    {
+       27,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,
+    -3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,
+    -3281,-3281,-3281,-3281,-3281,-3281, 3578,-3281,-3281,-3281,
+
+    -3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,
+    -3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,
+    -3281, 3578,-3281,-3281,-3281,-3281,-3281,-3281,-3281,-3281,
+    -3281,-3281,-3281,-3281,-3281
+    },
+
+    {
+       27,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,
+    -3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282, 3579,-3282,
+    -3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,
+    -3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,
+    -3282,-3282,-3282,-3282, 3579,-3282,-3282,-3282,-3282,-3282,
+    -3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,-3282,
+
+    -3282,-3282,-3282,-3282,-3282
+    },
+
+    {
+       27,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,
+    -3283,-3283,-3283,-3283, 3580,-3283,-3283,-3283,-3283,-3283,
+    -3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,
+    -3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,
+     3580,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,
+    -3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,-3283,
+    -3283,-3283,-3283,-3283,-3283
+    },
+
+    {
+       27,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,
+    -3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,
+
+    -3284,-3284,-3284,-3284,-3284,-3284,-3284, 3581,-3284,-3284,
+    -3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,
+    -3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,-3284,
+    -3284,-3284, 3581,-3284,-3284,-3284,-3284,-3284,-3284,-3284,
+    -3284,-3284,-3284,-3284,-3284
+    },
+
+    {
+       27,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,
+    -3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,
+    -3285,-3285,-3285,-3285,-3285,-3285,-3285, 3582,-3285,-3285,
+    -3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,
+    -3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,-3285,
+
+    -3285,-3285, 3582,-3285,-3285,-3285,-3285,-3285,-3285,-3285,
+    -3285,-3285,-3285,-3285,-3285
+    },
+
+    {
+       27,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286, 1903,
+    -3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,
+    -3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,
+    -3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,
+    -3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,
+    -3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,-3286,
+    -3286,-3286,-3286,-3286,-3286
+    },
+
+    {
+       27,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,
+
+    -3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,
+    -3287,-3287,-3287,-3287,-3287,-3287,-3287, 3583,-3287,-3287,
+    -3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,
+    -3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,-3287,
+    -3287,-3287, 3583,-3287,-3287,-3287,-3287,-3287,-3287,-3287,
+    -3287,-3287,-3287,-3287,-3287
+    },
+
+    {
+       27,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,
+    -3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,
+    -3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,
+    -3288, 3584,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,
+
+    -3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,-3288,
+    -3288,-3288,-3288,-3288,-3288,-3288, 3584,-3288,-3288,-3288,
+    -3288,-3288,-3288,-3288,-3288
+    },
+
+    {
+       27,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289, 1905,
+    -3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,
+    -3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,
+    -3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,
+    -3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,
+    -3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,-3289,
+    -3289,-3289,-3289,-3289,-3289
+
+    },
+
+    {
+       27,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,
+    -3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,
+    -3290,-3290,-3290,-3290,-3290,-3290,-3290, 3585,-3290,-3290,
+    -3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,
+    -3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,-3290,
+    -3290,-3290, 3585,-3290,-3290,-3290,-3290,-3290,-3290,-3290,
+    -3290,-3290,-3290,-3290,-3290
+    },
+
+    {
+       27,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,
+    -3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,
+    -3291,-3291,-3291,-3291,-3291,-3291,-3291, 3586,-3291,-3291,
+
+    -3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,
+    -3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,-3291,
+    -3291,-3291, 3586,-3291,-3291,-3291,-3291,-3291,-3291,-3291,
+    -3291,-3291,-3291,-3291,-3291
+    },
+
+    {
+       27,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,
+    -3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,
+    -3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292, 3587,-3292,
+    -3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,
+    -3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,-3292,
+    -3292,-3292,-3292, 3587,-3292,-3292,-3292,-3292,-3292,-3292,
+
+    -3292,-3292,-3292,-3292,-3292
+    },
+
+    {
+       27,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,
+    -3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,
+    -3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,
+    -3293, 3588,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,
+    -3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,-3293,
+    -3293,-3293,-3293,-3293,-3293,-3293, 3588,-3293,-3293,-3293,
+    -3293,-3293,-3293,-3293,-3293
+    },
+
+    {
+       27,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,
+    -3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,
+
+    -3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294, 3589,-3294,
+    -3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,
+    -3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,-3294,
+    -3294,-3294,-3294, 3589,-3294,-3294,-3294,-3294,-3294,-3294,
+    -3294,-3294,-3294,-3294,-3294
+    },
+
+    {
+       27,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,
+    -3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,
+    -3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,
+    -3295, 3590,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,
+    -3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,-3295,
+
+    -3295,-3295,-3295,-3295,-3295,-3295, 3590,-3295,-3295,-3295,
+    -3295,-3295,-3295,-3295,-3295
+    },
+
+    {
+       27,-3296, 3591, 3591,-3296,-3296,-3296,-3296,-3296,-3296,
+    -3296,-3296, 3592,-3296,-3296,-3296,-3296,-3296,-3296,-3296,
+    -3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,
+    -3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,
+    -3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,
+    -3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,-3296,
+    -3296,-3296,-3296,-3296,-3296
+    },
+
+    {
+       27,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,
+
+    -3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,
+    -3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,
+    -3297,-3297,-3297, 3593,-3297,-3297,-3297,-3297,-3297,-3297,
+    -3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297,
+    -3297,-3297,-3297,-3297,-3297,-3297,-3297,-3297, 3593,-3297,
+    -3297,-3297,-3297,-3297,-3297
+    },
+
+    {
+       27,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,
+    -3298,-3298,-3298, 3594,-3298,-3298,-3298,-3298,-3298,-3298,
+    -3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,
+    -3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,
+
+    -3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,
+    -3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,-3298,
+    -3298,-3298,-3298,-3298,-3298
+    },
+
+    {
+       27,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,
+    -3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299, 3595,-3299,
+    -3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,
+    -3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,
+    -3299,-3299,-3299,-3299, 3595,-3299,-3299,-3299,-3299,-3299,
+    -3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,-3299,
+    -3299,-3299,-3299,-3299,-3299
+
+    },
+
+    {
+       27,-3300, 3300, 3300,-3300,-3300,-3300,-3300,-3300,-3300,
+    -3300,-3300, 3301,-3300,-3300,-3300,-3300,-3300,-3300,-3300,
+    -3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,
+    -3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,
+    -3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,
+    -3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,-3300,
+    -3300,-3300,-3300,-3300,-3300
+    },
+
+    {
+       27,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,
+    -3301,-3301,-3301,-3301,-3301,-3301, 3596,-3301,-3301,-3301,
+    -3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,
+
+    -3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,
+    -3301,-3301, 3596,-3301,-3301,-3301,-3301,-3301,-3301,-3301,
+    -3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,-3301,
+    -3301,-3301,-3301,-3301,-3301
+    },
+
+    {
+       27,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,
+    -3302,-3302,-3302,-3302, 3597,-3302,-3302,-3302,-3302,-3302,
+    -3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,
+    -3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,
+     3597,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,
+    -3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,-3302,
+
+    -3302,-3302,-3302,-3302,-3302
+    },
+
+    {
+       27,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,
+    -3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,
+    -3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,
+    -3303,-3303,-3303, 3598,-3303,-3303,-3303,-3303,-3303,-3303,
+    -3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303,
+    -3303,-3303,-3303,-3303,-3303,-3303,-3303,-3303, 3598,-3303,
+    -3303,-3303,-3303,-3303,-3303
+    },
+
+    {
+       27,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,
+    -3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,
+
+    -3304,-3304,-3304,-3304,-3304,-3304,-3304, 3599,-3304,-3304,
+    -3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,
+    -3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,-3304,
+    -3304,-3304, 3599,-3304,-3304,-3304,-3304,-3304,-3304,-3304,
+    -3304,-3304,-3304,-3304,-3304
+    },
+
+    {
+       27,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,
+    -3305,-3305,-3305, 3600,-3305,-3305,-3305,-3305,-3305,-3305,
+    -3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,
+    -3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,
+    -3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,
+
+    -3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,-3305,
+    -3305,-3305,-3305,-3305,-3305
+    },
+
+    {
+       27,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,
+    -3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,
+    -3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,
+    -3306,-3306,-3306, 3601,-3306,-3306,-3306,-3306,-3306,-3306,
+    -3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306,
+    -3306,-3306,-3306,-3306,-3306,-3306,-3306,-3306, 3601,-3306,
+    -3306,-3306,-3306,-3306,-3306
+    },
+
+    {
+       27,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,
+
+    -3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,
+    -3307,-3307,-3307,-3307,-3307,-3307,-3307, 3602,-3307,-3307,
+    -3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,
+    -3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,-3307,
+    -3307,-3307, 3602,-3307,-3307,-3307,-3307,-3307,-3307,-3307,
+    -3307,-3307,-3307,-3307,-3307
+    },
+
+    {
+       27,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,
+    -3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,
+    -3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,
+    -3308, 3603,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,
+
+    -3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,-3308,
+    -3308,-3308,-3308,-3308,-3308,-3308, 3603,-3308,-3308,-3308,
+    -3308,-3308,-3308,-3308,-3308
+    },
+
+    {
+       27,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309, 1928,
+    -3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,
+    -3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,
+    -3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,
+    -3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,
+    -3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,-3309,
+    -3309,-3309,-3309,-3309,-3309
+
+    },
+
+    {
+       27,-3310, 3604, 3604,-3310,-3310,-3310,-3310,-3310,-3310,
+    -3310,-3310, 3605,-3310,-3310,-3310,-3310,-3310,-3310,-3310,
+    -3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,
+    -3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,
+    -3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,
+    -3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,-3310,
+    -3310,-3310,-3310,-3310,-3310
+    },
+
+    {
+       27,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,
+    -3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,
+    -3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,
+
+    -3311,-3311,-3311, 3606,-3311,-3311,-3311,-3311,-3311,-3311,
+    -3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311,
+    -3311,-3311,-3311,-3311,-3311,-3311,-3311,-3311, 3606,-3311,
+    -3311,-3311,-3311,-3311,-3311
+    },
+
+    {
+       27,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,
+    -3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,
+    -3312,-3312,-3312,-3312,-3312,-3312,-3312, 3607,-3312,-3312,
+    -3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,
+    -3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,-3312,
+    -3312,-3312, 3607,-3312,-3312,-3312,-3312,-3312,-3312,-3312,
+
+    -3312,-3312,-3312,-3312,-3312
+    },
+
+    {
+       27,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,
+    -3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,
+    -3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,
+    -3313,-3313,-3313, 3608,-3313,-3313,-3313,-3313,-3313,-3313,
+    -3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313,
+    -3313,-3313,-3313,-3313,-3313,-3313,-3313,-3313, 3608,-3313,
+    -3313,-3313,-3313,-3313,-3313
+    },
+
+    {
+       27,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,
+    -3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,
+
+    -3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,
+    -3314,-3314, 3609,-3314,-3314,-3314,-3314,-3314,-3314,-3314,
+    -3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,-3314,
+    -3314,-3314,-3314,-3314,-3314,-3314,-3314, 3609,-3314,-3314,
+    -3314,-3314,-3314,-3314,-3314
+    },
+
+    {
+       27,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,
+    -3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,
+    -3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,
+    -3315,-3315,-3315, 3610,-3315,-3315,-3315,-3315,-3315,-3315,
+    -3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315,
+
+    -3315,-3315,-3315,-3315,-3315,-3315,-3315,-3315, 3610,-3315,
+    -3315,-3315,-3315,-3315,-3315
+    },
+
+    {
+       27,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,
+    -3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,
+    -3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,
+    -3316,-3316,-3316, 3611,-3316,-3316,-3316,-3316,-3316,-3316,
+    -3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316,
+    -3316,-3316,-3316,-3316,-3316,-3316,-3316,-3316, 3611,-3316,
+    -3316,-3316,-3316,-3316,-3316
+    },
+
+    {
+       27,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,
+
+    -3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,
+    -3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,
+    -3317,-3317,-3317, 3612,-3317,-3317,-3317,-3317,-3317,-3317,
+    -3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317,
+    -3317,-3317,-3317,-3317,-3317,-3317,-3317,-3317, 3612,-3317,
+    -3317,-3317,-3317,-3317,-3317
+    },
+
+    {
+       27,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,
+    -3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318, 3613,-3318,
+    -3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,
+    -3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,
+
+    -3318,-3318,-3318,-3318, 3613,-3318,-3318,-3318,-3318,-3318,
+    -3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,-3318,
+    -3318,-3318,-3318,-3318,-3318
+    },
+
+    {
+       27,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,
+    -3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,
+    -3319,-3319,-3319,-3319,-3319,-3319, 3614,-3319,-3319,-3319,
+    -3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,
+    -3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,
+    -3319, 3614,-3319,-3319,-3319,-3319,-3319,-3319,-3319,-3319,
+    -3319,-3319,-3319,-3319,-3319
+
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366, 3615,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 3615,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 1944,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,
+    -3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,
+    -3322,-3322,-3322,-3322,-3322,-3322,-3322, 3616,-3322,-3322,
+    -3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,
+    -3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,-3322,
+    -3322,-3322, 3616,-3322,-3322,-3322,-3322,-3322,-3322,-3322,
+
+    -3322,-3322,-3322,-3322,-3322
+    },
+
+    {
+       27,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,
+    -3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,
+    -3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,
+    -3323,-3323,-3323, 3617,-3323,-3323,-3323,-3323,-3323,-3323,
+    -3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323,
+    -3323,-3323,-3323,-3323,-3323,-3323,-3323,-3323, 3617,-3323,
+    -3323,-3323,-3323,-3323,-3323
+    },
+
+    {
+       27,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,
+    -3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,
+
+    -3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,
+    -3324,-3324,-3324, 3618,-3324,-3324,-3324,-3324,-3324,-3324,
+    -3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324,
+    -3324,-3324,-3324,-3324,-3324,-3324,-3324,-3324, 3618,-3324,
+    -3324,-3324,-3324,-3324,-3324
+    },
+
+    {
+       27,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,
+    -3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,
+    -3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,
+    -3325,-3325,-3325, 3619,-3325,-3325,-3325,-3325,-3325,-3325,
+    -3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325,
+
+    -3325,-3325,-3325,-3325,-3325,-3325,-3325,-3325, 3619,-3325,
+    -3325,-3325,-3325,-3325,-3325
+    },
+
+    {
+       27,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,
+    -3326,-3326,-3326,-3326, 3620,-3326,-3326,-3326,-3326,-3326,
+    -3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,
+    -3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,
+     3620,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,
+    -3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,-3326,
+    -3326,-3326,-3326,-3326,-3326
+    },
+
+    {
+       27,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,
+
+    -3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,
+    -3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,
+    -3327,-3327,-3327, 3621,-3327,-3327,-3327,-3327,-3327,-3327,
+    -3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327,
+    -3327,-3327,-3327,-3327,-3327,-3327,-3327,-3327, 3621,-3327,
+    -3327,-3327,-3327,-3327,-3327
+    },
+
+    {
+       27,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,
+    -3328,-3328,-3328, 3622,-3328,-3328,-3328,-3328,-3328,-3328,
+    -3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,
+    -3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,
+
+    -3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,
+    -3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,-3328,
+    -3328,-3328,-3328,-3328,-3328
+    },
+
+    {
+       27,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,
+    -3329,-3329,-3329, 3623,-3329,-3329,-3329,-3329,-3329,-3329,
+    -3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,
+    -3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,
+    -3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,
+    -3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,-3329,
+    -3329,-3329,-3329,-3329,-3329
+
+    },
+
+    {
+       27,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,
+    -3330,-3330,-3330, 3624,-3330,-3330,-3330,-3330,-3330,-3330,
+    -3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,
+    -3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,
+    -3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,
+    -3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,-3330,
+    -3330,-3330,-3330,-3330,-3330
+    },
+
+    {
+       27,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,
+    -3331,-3331,-3331, 3625,-3331,-3331,-3331,-3331,-3331,-3331,
+    -3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,
+
+    -3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,
+    -3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,
+    -3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,-3331,
+    -3331,-3331,-3331,-3331,-3331
+    },
+
+    {
+       27,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,
+    -3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,
+    -3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,
+    -3332,-3332,-3332, 3626,-3332,-3332,-3332,-3332,-3332,-3332,
+    -3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332,
+    -3332,-3332,-3332,-3332,-3332,-3332,-3332,-3332, 3626,-3332,
+
+    -3332,-3332,-3332,-3332,-3332
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1957,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 1959,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,
+    -3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,
+    -3335,-3335,-3335,-3335,-3335,-3335,-3335, 3627,-3335,-3335,
+    -3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,
+    -3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,-3335,
+
+    -3335,-3335, 3627,-3335,-3335,-3335,-3335,-3335,-3335,-3335,
+    -3335,-3335,-3335,-3335,-3335
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1961,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,
+
+    -3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,
+    -3337,-3337,-3337,-3337,-3337,-3337,-3337, 3628,-3337,-3337,
+    -3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,
+    -3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,-3337,
+    -3337,-3337, 3628,-3337,-3337,-3337,-3337,-3337,-3337,-3337,
+    -3337,-3337,-3337,-3337,-3337
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 1963,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3339, 3339, 3339,-3339,-3339,-3339,-3339,-3339,-3339,
+    -3339,-3339, 3340,-3339,-3339,-3339,-3339,-3339,-3339,-3339,
+    -3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,
+    -3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,
+    -3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,
+    -3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,-3339,
+    -3339,-3339,-3339,-3339,-3339
+
+    },
+
+    {
+       27,-3340,-3340,-3340,-3340,-3340,-3340,-3340,-3340,-3340,
+    -3340,-3340,-3340,-3340,-3340,-3340, 3629,-3340,-3340,-3340,
+    -3340,-3340,-3340,-3340,-3340,-3340,-3340,-3340,-3340, 3630,
+    -3340,-3340,-3340,-3340,-3340,-3340,-3340,-3340,-3340,-3340,
+    -3340,-3340, 3629,-3340,-3340,-3340,-3340,-3340,-3340,-3340,
+    -3340,-3340,-3340,-3340, 3630,-3340,-3340,-3340,-3340,-3340,
+    -3340,-3340,-3340,-3340,-3340
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 3631,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3631,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,
+    -3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,
+    -3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,
+    -3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,
+    -3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,
+    -3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,-3342,
+
+    -3342,-3342,-3342,-3342,-3342
+    },
+
+    {
+       27,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,
+    -3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,
+    -3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,
+    -3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,
+    -3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,
+    -3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,-3343,
+    -3343,-3343,-3343,-3343,-3343
+    },
+
+    {
+       27,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,
+    -3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,
+
+    -3344,-3344,-3344,-3344,-3344,-3344,-3344, 3632,-3344,-3344,
+    -3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,
+    -3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,-3344,
+    -3344,-3344, 3632,-3344,-3344,-3344,-3344,-3344,-3344,-3344,
+    -3344,-3344,-3344,-3344,-3344
+    },
+
+    {
+       27,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,
+    -3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,
+    -3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345, 3633,-3345,
+    -3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,
+    -3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,-3345,
+
+    -3345,-3345,-3345, 3633,-3345,-3345,-3345,-3345,-3345,-3345,
+    -3345,-3345,-3345,-3345,-3345
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3634,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3634,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,
+
+    -3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347, 3635,-3347,
+    -3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,
+    -3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,
+    -3347,-3347,-3347,-3347, 3635,-3347,-3347,-3347,-3347,-3347,
+    -3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,-3347,
+    -3347,-3347,-3347,-3347,-3347
+    },
+
+    {
+       27,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,
+    -3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,
+    -3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,
+    -3348,-3348,-3348, 3636,-3348,-3348,-3348,-3348,-3348,-3348,
+
+    -3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348,
+    -3348,-3348,-3348,-3348,-3348,-3348,-3348,-3348, 3636,-3348,
+    -3348,-3348,-3348,-3348,-3348
+    },
+
+    {
+       27,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,
+    -3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,
+    -3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,
+    -3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,
+    -3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,
+    -3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,-3349,
+    -3349,-3349,-3349,-3349,-3349
+
+    },
+
+    {
+       27,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,
+    -3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,
+    -3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,
+    -3350,-3350, 3637,-3350,-3350,-3350,-3350,-3350,-3350,-3350,
+    -3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,-3350,
+    -3350,-3350,-3350,-3350,-3350,-3350,-3350, 3637,-3350,-3350,
+    -3350,-3350,-3350,-3350,-3350
+    },
+
+    {
+       27,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,
+    -3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,
+    -3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,
+
+    -3351,-3351,-3351, 3638,-3351,-3351,-3351,-3351,-3351,-3351,
+    -3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351,
+    -3351,-3351,-3351,-3351,-3351,-3351,-3351,-3351, 3638,-3351,
+    -3351,-3351,-3351,-3351,-3351
+    },
+
+    {
+       27,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,
+    -3352,-3352,-3352,-3352, 3639,-3352,-3352,-3352,-3352,-3352,
+    -3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,
+    -3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,
+     3639,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,
+    -3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,-3352,
+
+    -3352,-3352,-3352,-3352,-3352
+    },
+
+    {
+       27,-3353, 3353, 3353,-3353,-3353,-3353,-3353,-3353,-3353,
+    -3353,-3353, 3354,-3353,-3353,-3353,-3353,-3353,-3353,-3353,
+    -3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,
+    -3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,
+    -3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,
+    -3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,-3353,
+    -3353,-3353,-3353,-3353,-3353
+    },
+
+    {
+       27,-3354,-3354,-3354,-3354,-3354,-3354,-3354,-3354,-3354,
+    -3354,-3354,-3354,-3354,-3354,-3354, 3640,-3354,-3354,-3354,
+
+    -3354,-3354,-3354,-3354,-3354,-3354,-3354,-3354,-3354, 3641,
+    -3354,-3354,-3354,-3354,-3354,-3354,-3354,-3354,-3354,-3354,
+    -3354,-3354, 3640,-3354,-3354,-3354,-3354,-3354,-3354,-3354,
+    -3354,-3354,-3354,-3354, 3641,-3354,-3354,-3354,-3354,-3354,
+    -3354,-3354,-3354,-3354,-3354
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 3642,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     3642,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 3643,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 3644,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184, 3645,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 3645,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184, 3646,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 3647,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184, 3646,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 3647,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,
+    -3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359, 3648,-3359,
+    -3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,
+    -3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,
+    -3359,-3359,-3359,-3359, 3648,-3359,-3359,-3359,-3359,-3359,
+    -3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,-3359,
+    -3359,-3359,-3359,-3359,-3359
+
+    },
+
+    {
+       27,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,
+    -3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360, 3649,-3360,
+    -3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,
+    -3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,
+    -3360,-3360,-3360,-3360, 3649,-3360,-3360,-3360,-3360,-3360,
+    -3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,-3360,
+    -3360,-3360,-3360,-3360,-3360
+    },
+
+    {
+       27,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,
+    -3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361, 3650,-3361,
+    -3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,
+
+    -3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,
+    -3361,-3361,-3361,-3361, 3650,-3361,-3361,-3361,-3361,-3361,
+    -3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,-3361,
+    -3361,-3361,-3361,-3361,-3361
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184, 3651,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 3651,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,
+    -3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,
+    -3363,-3363,-3363,-3363,-3363,-3363,-3363, 3652,-3363,-3363,
+    -3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,
+    -3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,-3363,
+    -3363,-3363, 3652,-3363,-3363,-3363,-3363,-3363,-3363,-3363,
+    -3363,-3363,-3363,-3363,-3363
+    },
+
+    {
+       27,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,
+    -3364,-3364,-3364, 3653,-3364,-3364,-3364,-3364,-3364,-3364,
+
+    -3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,
+    -3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,
+    -3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,
+    -3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,-3364,
+    -3364,-3364,-3364,-3364,-3364
+    },
+
+    {
+       27,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,
+    -3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,
+    -3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365, 3654,-3365,
+    -3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,
+    -3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,-3365,
+
+    -3365,-3365,-3365, 3654,-3365,-3365,-3365,-3365,-3365,-3365,
+    -3365,-3365,-3365,-3365,-3365
+    },
+
+    {
+       27,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,
+    -3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,
+    -3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,
+    -3366,-3366,-3366, 3655,-3366,-3366,-3366,-3366,-3366,-3366,
+    -3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366,
+    -3366,-3366,-3366,-3366,-3366,-3366,-3366,-3366, 3655,-3366,
+    -3366,-3366,-3366,-3366,-3366
+    },
+
+    {
+       27,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,
+
+    -3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,
+    -3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,
+    -3367,-3367,-3367, 3656,-3367,-3367,-3367,-3367,-3367,-3367,
+    -3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367,
+    -3367,-3367,-3367,-3367,-3367,-3367,-3367,-3367, 3656,-3367,
+    -3367,-3367,-3367,-3367,-3367
+    },
+
+    {
+       27,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,
+    -3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,
+    -3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,
+    -3368,-3368,-3368, 3657,-3368,-3368,-3368,-3368,-3368,-3368,
+
+    -3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368,
+    -3368,-3368,-3368,-3368,-3368,-3368,-3368,-3368, 3657,-3368,
+    -3368,-3368,-3368,-3368,-3368
+    },
+
+    {
+       27,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,
+    -3369,-3369,-3369,-3369, 3658,-3369,-3369,-3369,-3369,-3369,
+    -3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,
+    -3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,
+     3658,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,
+    -3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,-3369,
+    -3369,-3369,-3369,-3369,-3369
+
+    },
+
+    {
+       27,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,
+    -3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,
+    -3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,
+    -3370,-3370,-3370, 3659,-3370,-3370,-3370,-3370,-3370,-3370,
+    -3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370,
+    -3370,-3370,-3370,-3370,-3370,-3370,-3370,-3370, 3659,-3370,
+    -3370,-3370,-3370,-3370,-3370
+    },
+
+    {
+       27,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,
+    -3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,
+    -3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,
+
+    -3371,-3371,-3371, 3660,-3371,-3371,-3371,-3371,-3371,-3371,
+    -3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371,
+    -3371,-3371,-3371,-3371,-3371,-3371,-3371,-3371, 3660,-3371,
+    -3371,-3371,-3371,-3371,-3371
+    },
+
+    {
+       27,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,
+    -3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,
+    -3372,-3372,-3372,-3372,-3372,-3372,-3372, 3661,-3372,-3372,
+    -3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,
+    -3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,-3372,
+    -3372,-3372, 3661,-3372,-3372,-3372,-3372,-3372,-3372,-3372,
+
+    -3372,-3372,-3372,-3372,-3372
+    },
+
+    {
+       27,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373, 2011,
+    -3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,
+    -3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,
+    -3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,
+    -3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,
+    -3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,-3373,
+    -3373,-3373,-3373,-3373,-3373
+    },
+
+    {
+       27,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,
+    -3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,
+
+    -3374,-3374,-3374,-3374,-3374,-3374,-3374, 3662,-3374,-3374,
+    -3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,
+    -3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,-3374,
+    -3374,-3374, 3662,-3374,-3374,-3374,-3374,-3374,-3374,-3374,
+    -3374,-3374,-3374,-3374,-3374
+    },
+
+    {
+       27,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375, 2013,
+    -3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,
+    -3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,
+    -3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,
+    -3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,
+
+    -3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,-3375,
+    -3375,-3375,-3375,-3375,-3375
+    },
+
+    {
+       27,-3376, 3376, 3376,-3376,-3376,-3376,-3376,-3376,-3376,
+    -3376,-3376, 3377,-3376,-3376,-3376,-3376,-3376,-3376,-3376,
+    -3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,
+    -3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,
+    -3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,
+    -3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,-3376,
+    -3376,-3376,-3376,-3376,-3376
+    },
+
+    {
+       27,-3377,-3377,-3377,-3377,-3377,-3377,-3377,-3377,-3377,
+
+    -3377,-3377,-3377,-3377,-3377,-3377, 3663,-3377,-3377,-3377,
+    -3377,-3377,-3377,-3377,-3377,-3377,-3377,-3377,-3377, 3664,
+    -3377,-3377,-3377,-3377,-3377,-3377,-3377,-3377,-3377,-3377,
+    -3377,-3377, 3663,-3377,-3377,-3377,-3377,-3377,-3377,-3377,
+    -3377,-3377,-3377,-3377, 3664,-3377,-3377,-3377,-3377,-3377,
+    -3377,-3377,-3377,-3377,-3377
+    },
+
+    {
+       27,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,
+    -3378,-3378,-3378,-3378, 3665,-3378,-3378,-3378,-3378,-3378,
+    -3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,
+    -3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,
+
+     3665,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,
+    -3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,-3378,
+    -3378,-3378,-3378,-3378,-3378
+    },
+
+    {
+       27,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,
+    -3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,
+    -3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,
+    -3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,
+    -3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,
+    -3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,-3379,
+    -3379,-3379,-3379,-3379,-3379
+
+    },
+
+    {
+       27,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,
+    -3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,
+    -3380,-3380,-3380,-3380,-3380,-3380,-3380, 3666,-3380,-3380,
+    -3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,
+    -3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,-3380,
+    -3380,-3380, 3666,-3380,-3380,-3380,-3380,-3380,-3380,-3380,
+    -3380,-3380,-3380,-3380,-3380
+    },
+
+    {
+       27,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,
+    -3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,
+    -3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381, 3667,-3381,
+
+    -3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,
+    -3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,-3381,
+    -3381,-3381,-3381, 3667,-3381,-3381,-3381,-3381,-3381,-3381,
+    -3381,-3381,-3381,-3381,-3381
+    },
+
+    {
+       27,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,
+    -3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,
+    -3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,
+    -3382, 3668,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,
+    -3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,-3382,
+    -3382,-3382,-3382,-3382,-3382,-3382, 3668,-3382,-3382,-3382,
+
+    -3382,-3382,-3382,-3382,-3382
+    },
+
+    {
+       27,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,
+    -3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383, 3669,-3383,
+    -3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,
+    -3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,
+    -3383,-3383,-3383,-3383, 3669,-3383,-3383,-3383,-3383,-3383,
+    -3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,-3383,
+    -3383,-3383,-3383,-3383,-3383
+    },
+
+    {
+       27,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,
+    -3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,
+
+    -3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,
+    -3384,-3384,-3384, 3670,-3384,-3384,-3384,-3384,-3384,-3384,
+    -3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384,
+    -3384,-3384,-3384,-3384,-3384,-3384,-3384,-3384, 3670,-3384,
+    -3384,-3384,-3384,-3384,-3384
+    },
+
+    {
+       27,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,
+    -3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,
+    -3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,
+    -3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,
+    -3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,
+
+    -3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,-3385,
+    -3385,-3385,-3385,-3385,-3385
+    },
+
+    {
+       27,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,
+    -3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,
+    -3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,
+    -3386,-3386, 3671,-3386,-3386,-3386,-3386,-3386,-3386,-3386,
+    -3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,-3386,
+    -3386,-3386,-3386,-3386,-3386,-3386,-3386, 3671,-3386,-3386,
+    -3386,-3386,-3386,-3386,-3386
+    },
+
+    {
+       27,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,
+
+    -3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,
+    -3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,
+    -3387,-3387,-3387, 3672,-3387,-3387,-3387,-3387,-3387,-3387,
+    -3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387,
+    -3387,-3387,-3387,-3387,-3387,-3387,-3387,-3387, 3672,-3387,
+    -3387,-3387,-3387,-3387,-3387
+    },
+
+    {
+       27,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,
+    -3388,-3388,-3388,-3388, 3673,-3388,-3388,-3388,-3388,-3388,
+    -3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,
+    -3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,
+
+     3673,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,
+    -3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,-3388,
+    -3388,-3388,-3388,-3388,-3388
+    },
+
+    {
+       27,-3389, 3389, 3389,-3389,-3389,-3389,-3389,-3389,-3389,
+    -3389,-3389, 3390,-3389,-3389,-3389,-3389,-3389,-3389,-3389,
+    -3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,
+    -3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,
+    -3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,
+    -3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,-3389,
+    -3389,-3389,-3389,-3389,-3389
+
+    },
+
+    {
+       27,-3390,-3390,-3390,-3390,-3390,-3390,-3390,-3390,-3390,
+    -3390,-3390,-3390,-3390,-3390,-3390, 3674,-3390,-3390,-3390,
+    -3390,-3390,-3390,-3390,-3390,-3390,-3390,-3390,-3390, 3675,
+    -3390,-3390,-3390,-3390,-3390,-3390,-3390,-3390,-3390,-3390,
+    -3390,-3390, 3674,-3390,-3390,-3390,-3390,-3390,-3390,-3390,
+    -3390,-3390,-3390,-3390, 3675,-3390,-3390,-3390,-3390,-3390,
+    -3390,-3390,-3390,-3390,-3390
+    },
+
+    {
+       27,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,
+    -3391,-3391,-3391,-3391, 3676,-3391,-3391,-3391,-3391,-3391,
+    -3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,
+
+    -3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,
+     3676,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,
+    -3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,-3391,
+    -3391,-3391,-3391,-3391,-3391
+    },
+
+    {
+       27,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392, 3677,
+    -3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,
+    -3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,
+    -3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392, 3678,
+    -3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,
+    -3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,-3392,
+
+    -3392,-3392,-3392,-3392,-3392
+    },
+
+    {
+       27,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,
+    -3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,
+    -3393,-3393, 3679,-3393,-3393,-3393,-3393,-3393,-3393,-3393,
+    -3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,
+    -3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393, 3679,-3393,
+    -3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,-3393,
+    -3393,-3393,-3393,-3393,-3393
+    },
+
+    {
+       27,-3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394,
+    -3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394, 3680,-3394,
+
+    -3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394,
+    -3394,-3394,-3394,-3394, 3681,-3394,-3394,-3394,-3394,-3394,
+    -3394,-3394,-3394,-3394, 3680,-3394,-3394,-3394,-3394,-3394,
+    -3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394,-3394, 3681,
+    -3394,-3394,-3394,-3394,-3394
+    },
+
+    {
+       27,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,
+    -3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395, 3682,-3395,
+    -3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,
+    -3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,
+    -3395,-3395,-3395,-3395, 3682,-3395,-3395,-3395,-3395,-3395,
+
+    -3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,-3395,
+    -3395,-3395,-3395,-3395,-3395
+    },
+
+    {
+       27,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,
+    -3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396, 3683,-3396,
+    -3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,
+    -3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,
+    -3396,-3396,-3396,-3396, 3683,-3396,-3396,-3396,-3396,-3396,
+    -3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,-3396,
+    -3396,-3396,-3396,-3396,-3396
+    },
+
+    {
+       27,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,
+
+    -3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397, 3684,-3397,
+    -3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,
+    -3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,
+    -3397,-3397,-3397,-3397, 3684,-3397,-3397,-3397,-3397,-3397,
+    -3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,-3397,
+    -3397,-3397,-3397,-3397,-3397
+    },
+
+    {
+       27,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,
+    -3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,
+    -3398,-3398,-3398,-3398,-3398,-3398,-3398, 3685,-3398,-3398,
+    -3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,
+
+    -3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,-3398,
+    -3398,-3398, 3685,-3398,-3398,-3398,-3398,-3398,-3398,-3398,
+    -3398,-3398,-3398,-3398,-3398
+    },
+
+    {
+       27,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,
+    -3399,-3399,-3399, 3686,-3399,-3399,-3399,-3399,-3399,-3399,
+    -3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,
+    -3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,
+    -3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,
+    -3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,-3399,
+    -3399,-3399,-3399,-3399,-3399
+
+    },
+
+    {
+       27,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,
+    -3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,
+    -3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400, 3687,-3400,
+    -3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,
+    -3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,-3400,
+    -3400,-3400,-3400, 3687,-3400,-3400,-3400,-3400,-3400,-3400,
+    -3400,-3400,-3400,-3400,-3400
+    },
+
+    {
+       27,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,
+    -3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,
+    -3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,
+
+    -3401,-3401,-3401, 3688,-3401,-3401,-3401,-3401,-3401,-3401,
+    -3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401,
+    -3401,-3401,-3401,-3401,-3401,-3401,-3401,-3401, 3688,-3401,
+    -3401,-3401,-3401,-3401,-3401
+    },
+
+    {
+       27,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,
+    -3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,
+    -3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,
+    -3402,-3402,-3402, 3689,-3402,-3402,-3402,-3402,-3402,-3402,
+    -3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402,
+    -3402,-3402,-3402,-3402,-3402,-3402,-3402,-3402, 3689,-3402,
+
+    -3402,-3402,-3402,-3402,-3402
+    },
+
+    {
+       27,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,
+    -3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,
+    -3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,
+    -3403,-3403,-3403, 3690,-3403,-3403,-3403,-3403,-3403,-3403,
+    -3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403,
+    -3403,-3403,-3403,-3403,-3403,-3403,-3403,-3403, 3690,-3403,
+    -3403,-3403,-3403,-3403,-3403
+    },
+
+    {
+       27,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,
+    -3404,-3404,-3404,-3404, 3691,-3404,-3404,-3404,-3404,-3404,
+
+    -3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,
+    -3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,
+     3691,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,
+    -3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,-3404,
+    -3404,-3404,-3404,-3404,-3404
+    },
+
+    {
+       27,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,
+    -3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,
+    -3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,
+    -3405,-3405,-3405, 3692,-3405,-3405,-3405,-3405,-3405,-3405,
+    -3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405,
+
+    -3405,-3405,-3405,-3405,-3405,-3405,-3405,-3405, 3692,-3405,
+    -3405,-3405,-3405,-3405,-3405
+    },
+
+    {
+       27,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,
+    -3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,
+    -3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,
+    -3406,-3406,-3406, 3693,-3406,-3406,-3406,-3406,-3406,-3406,
+    -3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406,
+    -3406,-3406,-3406,-3406,-3406,-3406,-3406,-3406, 3693,-3406,
+    -3406,-3406,-3406,-3406,-3406
+    },
+
+    {
+       27,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,
+
+    -3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,
+    -3407,-3407,-3407,-3407,-3407,-3407,-3407, 3694,-3407,-3407,
+    -3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,
+    -3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,-3407,
+    -3407,-3407, 3694,-3407,-3407,-3407,-3407,-3407,-3407,-3407,
+    -3407,-3407,-3407,-3407,-3407
+    },
+
+    {
+       27,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408, 2055,
+    -3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,
+    -3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,
+    -3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,
+
+    -3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,
+    -3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,-3408,
+    -3408,-3408,-3408,-3408,-3408
+    },
+
+    {
+       27,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,
+    -3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,
+    -3409,-3409,-3409,-3409,-3409,-3409,-3409, 3695,-3409,-3409,
+    -3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,
+    -3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,-3409,
+    -3409,-3409, 3695,-3409,-3409,-3409,-3409,-3409,-3409,-3409,
+    -3409,-3409,-3409,-3409,-3409
+
+    },
+
+    {
+       27,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410, 2057,
+    -3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,
+    -3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,
+    -3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,
+    -3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,
+    -3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,-3410,
+    -3410,-3410,-3410,-3410,-3410
+    },
+
+    {
+       27,-3411, 3411, 3411,-3411,-3411,-3411,-3411,-3411,-3411,
+    -3411,-3411, 3412,-3411,-3411,-3411,-3411,-3411,-3411,-3411,
+    -3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,
+
+    -3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,
+    -3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,
+    -3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,-3411,
+    -3411,-3411,-3411,-3411,-3411
+    },
+
+    {
+       27,-3412,-3412,-3412,-3412,-3412,-3412,-3412,-3412,-3412,
+    -3412,-3412,-3412,-3412,-3412,-3412, 3696,-3412,-3412,-3412,
+    -3412,-3412,-3412,-3412,-3412,-3412,-3412,-3412,-3412, 3697,
+    -3412,-3412,-3412,-3412,-3412,-3412,-3412,-3412,-3412,-3412,
+    -3412,-3412, 3696,-3412,-3412,-3412,-3412,-3412,-3412,-3412,
+    -3412,-3412,-3412,-3412, 3697,-3412,-3412,-3412,-3412,-3412,
+
+    -3412,-3412,-3412,-3412,-3412
+    },
+
+    {
+       27,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,
+    -3413,-3413,-3413,-3413, 3698,-3413,-3413,-3413,-3413,-3413,
+    -3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,
+    -3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,
+     3698,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,
+    -3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,-3413,
+    -3413,-3413,-3413,-3413,-3413
+    },
+
+    {
+       27,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,
+    -3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,
+
+    -3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,
+    -3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,
+    -3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,
+    -3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,-3414,
+    -3414,-3414,-3414,-3414,-3414
+    },
+
+    {
+       27,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,
+    -3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,
+    -3415,-3415,-3415,-3415,-3415,-3415,-3415, 3699,-3415,-3415,
+    -3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,
+    -3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,-3415,
+
+    -3415,-3415, 3699,-3415,-3415,-3415,-3415,-3415,-3415,-3415,
+    -3415,-3415,-3415,-3415,-3415
+    },
+
+    {
+       27,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,
+    -3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,
+    -3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416, 3700,-3416,
+    -3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,
+    -3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,-3416,
+    -3416,-3416,-3416, 3700,-3416,-3416,-3416,-3416,-3416,-3416,
+    -3416,-3416,-3416,-3416,-3416
+    },
+
+    {
+       27,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,
+
+    -3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,
+    -3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,
+    -3417, 3701,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,
+    -3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,-3417,
+    -3417,-3417,-3417,-3417,-3417,-3417, 3701,-3417,-3417,-3417,
+    -3417,-3417,-3417,-3417,-3417
+    },
+
+    {
+       27,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,
+    -3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418, 3702,-3418,
+    -3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,
+    -3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,
+
+    -3418,-3418,-3418,-3418, 3702,-3418,-3418,-3418,-3418,-3418,
+    -3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,-3418,
+    -3418,-3418,-3418,-3418,-3418
+    },
+
+    {
+       27,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,
+    -3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,
+    -3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,
+    -3419,-3419,-3419, 3703,-3419,-3419,-3419,-3419,-3419,-3419,
+    -3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419,
+    -3419,-3419,-3419,-3419,-3419,-3419,-3419,-3419, 3703,-3419,
+    -3419,-3419,-3419,-3419,-3419
+
+    },
+
+    {
+       27,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,
+    -3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,
+    -3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,
+    -3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,
+    -3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,
+    -3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,-3420,
+    -3420,-3420,-3420,-3420,-3420
+    },
+
+    {
+       27,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,
+    -3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,
+    -3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,
+
+    -3421,-3421, 3704,-3421,-3421,-3421,-3421,-3421,-3421,-3421,
+    -3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,-3421,
+    -3421,-3421,-3421,-3421,-3421,-3421,-3421, 3704,-3421,-3421,
+    -3421,-3421,-3421,-3421,-3421
+    },
+
+    {
+       27,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,
+    -3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,
+    -3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,
+    -3422,-3422,-3422, 3705,-3422,-3422,-3422,-3422,-3422,-3422,
+    -3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422,
+    -3422,-3422,-3422,-3422,-3422,-3422,-3422,-3422, 3705,-3422,
+
+    -3422,-3422,-3422,-3422,-3422
+    },
+
+    {
+       27,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,
+    -3423,-3423,-3423,-3423, 3706,-3423,-3423,-3423,-3423,-3423,
+    -3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,
+    -3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,
+     3706,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,
+    -3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,-3423,
+    -3423,-3423,-3423,-3423,-3423
+    },
+
+    {
+       27,-3424, 3424, 3424,-3424,-3424,-3424,-3424,-3424,-3424,
+    -3424,-3424, 3425,-3424,-3424,-3424,-3424,-3424,-3424,-3424,
+
+    -3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,
+    -3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,
+    -3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,
+    -3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,-3424,
+    -3424,-3424,-3424,-3424,-3424
+    },
+
+    {
+       27,-3425,-3425,-3425,-3425,-3425,-3425,-3425,-3425,-3425,
+    -3425,-3425,-3425,-3425,-3425,-3425, 3707,-3425,-3425,-3425,
+    -3425,-3425,-3425,-3425,-3425,-3425,-3425,-3425,-3425, 3708,
+    -3425,-3425,-3425,-3425,-3425,-3425,-3425,-3425,-3425,-3425,
+    -3425,-3425, 3707,-3425,-3425,-3425,-3425,-3425,-3425,-3425,
+
+    -3425,-3425,-3425,-3425, 3708,-3425,-3425,-3425,-3425,-3425,
+    -3425,-3425,-3425,-3425,-3425
+    },
+
+    {
+       27,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,
+    -3426,-3426,-3426,-3426, 3709,-3426,-3426,-3426,-3426,-3426,
+    -3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,
+    -3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,
+     3709,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,
+    -3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,-3426,
+    -3426,-3426,-3426,-3426,-3426
+    },
+
+    {
+       27,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427, 3710,
+
+    -3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,
+    -3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,
+    -3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427, 3711,
+    -3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,
+    -3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,-3427,
+    -3427,-3427,-3427,-3427,-3427
+    },
+
+    {
+       27,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,
+    -3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,
+    -3428,-3428, 3712,-3428,-3428,-3428,-3428,-3428,-3428,-3428,
+    -3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,
+
+    -3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428, 3712,-3428,
+    -3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,-3428,
+    -3428,-3428,-3428,-3428,-3428
+    },
+
+    {
+       27,-3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429,
+    -3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429, 3713,-3429,
+    -3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429,
+    -3429,-3429,-3429,-3429, 3714,-3429,-3429,-3429,-3429,-3429,
+    -3429,-3429,-3429,-3429, 3713,-3429,-3429,-3429,-3429,-3429,
+    -3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429,-3429, 3714,
+    -3429,-3429,-3429,-3429,-3429
+
+    },
+
+    {
+       27,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,
+    -3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430, 3715,-3430,
+    -3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,
+    -3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,
+    -3430,-3430,-3430,-3430, 3715,-3430,-3430,-3430,-3430,-3430,
+    -3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,-3430,
+    -3430,-3430,-3430,-3430,-3430
+    },
+
+    {
+       27,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,
+    -3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431, 3716,-3431,
+    -3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,
+
+    -3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,
+    -3431,-3431,-3431,-3431, 3716,-3431,-3431,-3431,-3431,-3431,
+    -3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,-3431,
+    -3431,-3431,-3431,-3431,-3431
+    },
+
+    {
+       27,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,
+    -3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432, 3717,-3432,
+    -3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,
+    -3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,
+    -3432,-3432,-3432,-3432, 3717,-3432,-3432,-3432,-3432,-3432,
+    -3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,-3432,
+
+    -3432,-3432,-3432,-3432,-3432
+    },
+
+    {
+       27,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,
+    -3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,
+    -3433,-3433,-3433,-3433,-3433,-3433,-3433, 3718,-3433,-3433,
+    -3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,
+    -3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,-3433,
+    -3433,-3433, 3718,-3433,-3433,-3433,-3433,-3433,-3433,-3433,
+    -3433,-3433,-3433,-3433,-3433
+    },
+
+    {
+       27,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,
+    -3434,-3434,-3434, 3719,-3434,-3434,-3434,-3434,-3434,-3434,
+
+    -3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,
+    -3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,
+    -3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,
+    -3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,-3434,
+    -3434,-3434,-3434,-3434,-3434
+    },
+
+    {
+       27,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,
+    -3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,
+    -3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435, 3720,-3435,
+    -3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,
+    -3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,-3435,
+
+    -3435,-3435,-3435, 3720,-3435,-3435,-3435,-3435,-3435,-3435,
+    -3435,-3435,-3435,-3435,-3435
+    },
+
+    {
+       27,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,
+    -3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,
+    -3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,
+    -3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,
+    -3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,
+    -3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,-3436,
+    -3436,-3436,-3436,-3436,-3436
+    },
+
+    {
+       27,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,
+
+    -3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,
+    -3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,
+    -3437,-3437,-3437, 3721,-3437,-3437,-3437,-3437,-3437,-3437,
+    -3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437,
+    -3437,-3437,-3437,-3437,-3437,-3437,-3437,-3437, 3721,-3437,
+    -3437,-3437,-3437,-3437,-3437
+    },
+
+    {
+       27,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,
+    -3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,
+    -3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,
+    -3438,-3438,-3438, 3722,-3438,-3438,-3438,-3438,-3438,-3438,
+
+    -3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438,
+    -3438,-3438,-3438,-3438,-3438,-3438,-3438,-3438, 3722,-3438,
+    -3438,-3438,-3438,-3438,-3438
+    },
+
+    {
+       27,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,
+    -3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,
+    -3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,
+    -3439,-3439,-3439, 3723,-3439,-3439,-3439,-3439,-3439,-3439,
+    -3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439,
+    -3439,-3439,-3439,-3439,-3439,-3439,-3439,-3439, 3723,-3439,
+    -3439,-3439,-3439,-3439,-3439
+
+    },
+
+    {
+       27,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,
+    -3440,-3440,-3440,-3440, 3724,-3440,-3440,-3440,-3440,-3440,
+    -3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,
+    -3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,
+     3724,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,
+    -3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,-3440,
+    -3440,-3440,-3440,-3440,-3440
+    },
+
+    {
+       27,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,
+    -3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,
+    -3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,
+
+    -3441,-3441,-3441, 3725,-3441,-3441,-3441,-3441,-3441,-3441,
+    -3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441,
+    -3441,-3441,-3441,-3441,-3441,-3441,-3441,-3441, 3725,-3441,
+    -3441,-3441,-3441,-3441,-3441
+    },
+
+    {
+       27,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,
+    -3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,
+    -3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,
+    -3442,-3442,-3442, 3726,-3442,-3442,-3442,-3442,-3442,-3442,
+    -3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442,
+    -3442,-3442,-3442,-3442,-3442,-3442,-3442,-3442, 3726,-3442,
+
+    -3442,-3442,-3442,-3442,-3442
+    },
+
+    {
+       27,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,
+    -3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,
+    -3443,-3443,-3443,-3443,-3443,-3443,-3443, 3727,-3443,-3443,
+    -3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,
+    -3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,-3443,
+    -3443,-3443, 3727,-3443,-3443,-3443,-3443,-3443,-3443,-3443,
+    -3443,-3443,-3443,-3443,-3443
+    },
+
+    {
+       27,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444, 2100,
+    -3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,
+
+    -3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,
+    -3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,
+    -3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,
+    -3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,-3444,
+    -3444,-3444,-3444,-3444,-3444
+    },
+
+    {
+       27,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,
+    -3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,
+    -3445,-3445,-3445,-3445,-3445,-3445,-3445, 3728,-3445,-3445,
+    -3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,
+    -3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,-3445,
+
+    -3445,-3445, 3728,-3445,-3445,-3445,-3445,-3445,-3445,-3445,
+    -3445,-3445,-3445,-3445,-3445
+    },
+
+    {
+       27,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446, 2102,
+    -3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,
+    -3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,
+    -3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,
+    -3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,
+    -3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,-3446,
+    -3446,-3446,-3446,-3446,-3446
+    },
+
+    {
+       27,-3447, 3447, 3447,-3447,-3447,-3447,-3447,-3447,-3447,
+
+    -3447,-3447, 3448,-3447,-3447,-3447,-3447,-3447,-3447,-3447,
+    -3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,
+    -3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,
+    -3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,
+    -3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,-3447,
+    -3447,-3447,-3447,-3447,-3447
+    },
+
+    {
+       27,-3448,-3448,-3448,-3448,-3448,-3448,-3448,-3448,-3448,
+    -3448,-3448,-3448,-3448,-3448,-3448, 3729,-3448,-3448,-3448,
+    -3448,-3448,-3448,-3448,-3448,-3448,-3448,-3448,-3448, 3730,
+    -3448,-3448,-3448,-3448,-3448,-3448,-3448,-3448,-3448,-3448,
+
+    -3448,-3448, 3729,-3448,-3448,-3448,-3448,-3448,-3448,-3448,
+    -3448,-3448,-3448,-3448, 3730,-3448,-3448,-3448,-3448,-3448,
+    -3448,-3448,-3448,-3448,-3448
+    },
+
+    {
+       27,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,
+    -3449,-3449,-3449,-3449, 3731,-3449,-3449,-3449,-3449,-3449,
+    -3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,
+    -3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,
+     3731,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,
+    -3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,-3449,
+    -3449,-3449,-3449,-3449,-3449
+
+    },
+
+    {
+       27,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,
+    -3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,
+    -3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,
+    -3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,
+    -3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,
+    -3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,-3450,
+    -3450,-3450,-3450,-3450,-3450
+    },
+
+    {
+       27,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,
+    -3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,
+    -3451,-3451,-3451,-3451,-3451,-3451,-3451, 3732,-3451,-3451,
+
+    -3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,
+    -3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,-3451,
+    -3451,-3451, 3732,-3451,-3451,-3451,-3451,-3451,-3451,-3451,
+    -3451,-3451,-3451,-3451,-3451
+    },
+
+    {
+       27,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,
+    -3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,
+    -3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452, 3733,-3452,
+    -3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,
+    -3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,-3452,
+    -3452,-3452,-3452, 3733,-3452,-3452,-3452,-3452,-3452,-3452,
+
+    -3452,-3452,-3452,-3452,-3452
+    },
+
+    {
+       27,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,
+    -3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,
+    -3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,
+    -3453, 3734,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,
+    -3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,-3453,
+    -3453,-3453,-3453,-3453,-3453,-3453, 3734,-3453,-3453,-3453,
+    -3453,-3453,-3453,-3453,-3453
+    },
+
+    {
+       27,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,
+    -3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454, 3735,-3454,
+
+    -3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,
+    -3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,
+    -3454,-3454,-3454,-3454, 3735,-3454,-3454,-3454,-3454,-3454,
+    -3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,-3454,
+    -3454,-3454,-3454,-3454,-3454
+    },
+
+    {
+       27,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,
+    -3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,
+    -3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,
+    -3455,-3455,-3455, 3736,-3455,-3455,-3455,-3455,-3455,-3455,
+    -3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455,
+
+    -3455,-3455,-3455,-3455,-3455,-3455,-3455,-3455, 3736,-3455,
+    -3455,-3455,-3455,-3455,-3455
+    },
+
+    {
+       27,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,
+    -3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,
+    -3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,
+    -3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,
+    -3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,
+    -3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,-3456,
+    -3456,-3456,-3456,-3456,-3456
+    },
+
+    {
+       27,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,
+
+    -3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,
+    -3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,
+    -3457,-3457, 3737,-3457,-3457,-3457,-3457,-3457,-3457,-3457,
+    -3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,-3457,
+    -3457,-3457,-3457,-3457,-3457,-3457,-3457, 3737,-3457,-3457,
+    -3457,-3457,-3457,-3457,-3457
+    },
+
+    {
+       27,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,
+    -3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,
+    -3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,
+    -3458,-3458,-3458, 3738,-3458,-3458,-3458,-3458,-3458,-3458,
+
+    -3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458,
+    -3458,-3458,-3458,-3458,-3458,-3458,-3458,-3458, 3738,-3458,
+    -3458,-3458,-3458,-3458,-3458
+    },
+
+    {
+       27,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,
+    -3459,-3459,-3459,-3459, 3739,-3459,-3459,-3459,-3459,-3459,
+    -3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,
+    -3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,
+     3739,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,
+    -3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,-3459,
+    -3459,-3459,-3459,-3459,-3459
+
+    },
+
+    {
+       27,-3460, 3460, 3460,-3460,-3460,-3460,-3460,-3460,-3460,
+    -3460,-3460, 3461,-3460,-3460,-3460,-3460,-3460,-3460,-3460,
+    -3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,
+    -3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,
+    -3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,
+    -3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,-3460,
+    -3460,-3460,-3460,-3460,-3460
+    },
+
+    {
+       27,-3461,-3461,-3461,-3461,-3461,-3461,-3461,-3461,-3461,
+    -3461,-3461,-3461,-3461,-3461,-3461, 3740,-3461,-3461,-3461,
+    -3461,-3461,-3461,-3461,-3461,-3461,-3461,-3461,-3461, 3741,
+
+    -3461,-3461,-3461,-3461,-3461,-3461,-3461,-3461,-3461,-3461,
+    -3461,-3461, 3740,-3461,-3461,-3461,-3461,-3461,-3461,-3461,
+    -3461,-3461,-3461,-3461, 3741,-3461,-3461,-3461,-3461,-3461,
+    -3461,-3461,-3461,-3461,-3461
+    },
+
+    {
+       27,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,
+    -3462,-3462,-3462,-3462, 3742,-3462,-3462,-3462,-3462,-3462,
+    -3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,
+    -3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,
+     3742,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,
+    -3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,-3462,
+
+    -3462,-3462,-3462,-3462,-3462
+    },
+
+    {
+       27,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463, 3743,
+    -3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,
+    -3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,
+    -3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463, 3744,
+    -3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,
+    -3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,-3463,
+    -3463,-3463,-3463,-3463,-3463
+    },
+
+    {
+       27,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,
+    -3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,
+
+    -3464,-3464, 3745,-3464,-3464,-3464,-3464,-3464,-3464,-3464,
+    -3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,
+    -3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464, 3745,-3464,
+    -3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,-3464,
+    -3464,-3464,-3464,-3464,-3464
+    },
+
+    {
+       27,-3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465,
+    -3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465, 3746,-3465,
+    -3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465,
+    -3465,-3465,-3465,-3465, 3747,-3465,-3465,-3465,-3465,-3465,
+    -3465,-3465,-3465,-3465, 3746,-3465,-3465,-3465,-3465,-3465,
+
+    -3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465,-3465, 3747,
+    -3465,-3465,-3465,-3465,-3465
+    },
+
+    {
+       27,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,
+    -3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466, 3748,-3466,
+    -3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,
+    -3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,
+    -3466,-3466,-3466,-3466, 3748,-3466,-3466,-3466,-3466,-3466,
+    -3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,-3466,
+    -3466,-3466,-3466,-3466,-3466
+    },
+
+    {
+       27,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,
+
+    -3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467, 3749,-3467,
+    -3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,
+    -3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,
+    -3467,-3467,-3467,-3467, 3749,-3467,-3467,-3467,-3467,-3467,
+    -3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,-3467,
+    -3467,-3467,-3467,-3467,-3467
+    },
+
+    {
+       27,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,
+    -3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468, 3750,-3468,
+    -3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,
+    -3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,
+
+    -3468,-3468,-3468,-3468, 3750,-3468,-3468,-3468,-3468,-3468,
+    -3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,-3468,
+    -3468,-3468,-3468,-3468,-3468
+    },
+
+    {
+       27,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,
+    -3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,
+    -3469,-3469,-3469,-3469,-3469,-3469,-3469, 3751,-3469,-3469,
+    -3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,
+    -3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,-3469,
+    -3469,-3469, 3751,-3469,-3469,-3469,-3469,-3469,-3469,-3469,
+    -3469,-3469,-3469,-3469,-3469
+
+    },
+
+    {
+       27,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,
+    -3470,-3470,-3470, 3752,-3470,-3470,-3470,-3470,-3470,-3470,
+    -3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,
+    -3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,
+    -3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,
+    -3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,-3470,
+    -3470,-3470,-3470,-3470,-3470
+    },
+
+    {
+       27,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,
+    -3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,
+    -3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471, 3753,-3471,
+
+    -3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,
+    -3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,-3471,
+    -3471,-3471,-3471, 3753,-3471,-3471,-3471,-3471,-3471,-3471,
+    -3471,-3471,-3471,-3471,-3471
+    },
+
+    {
+       27,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,
+    -3472,-3472,-3472, 3754,-3472,-3472,-3472,-3472,-3472,-3472,
+    -3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,
+    -3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,
+    -3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,
+    -3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,-3472,
+
+    -3472,-3472,-3472,-3472,-3472
+    },
+
+    {
+       27,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,
+    -3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,
+    -3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,
+    -3473,-3473,-3473, 3755,-3473,-3473,-3473,-3473,-3473,-3473,
+    -3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473,
+    -3473,-3473,-3473,-3473,-3473,-3473,-3473,-3473, 3755,-3473,
+    -3473,-3473,-3473,-3473,-3473
+    },
+
+    {
+       27,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,
+    -3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,
+
+    -3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,
+    -3474,-3474,-3474, 3756,-3474,-3474,-3474,-3474,-3474,-3474,
+    -3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474,
+    -3474,-3474,-3474,-3474,-3474,-3474,-3474,-3474, 3756,-3474,
+    -3474,-3474,-3474,-3474,-3474
+    },
+
+    {
+       27,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,
+    -3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,
+    -3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,
+    -3475,-3475,-3475, 3757,-3475,-3475,-3475,-3475,-3475,-3475,
+    -3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475,
+
+    -3475,-3475,-3475,-3475,-3475,-3475,-3475,-3475, 3757,-3475,
+    -3475,-3475,-3475,-3475,-3475
+    },
+
+    {
+       27,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,
+    -3476,-3476,-3476,-3476, 3758,-3476,-3476,-3476,-3476,-3476,
+    -3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,
+    -3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,
+     3758,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,
+    -3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,-3476,
+    -3476,-3476,-3476,-3476,-3476
+    },
+
+    {
+       27,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,
+
+    -3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,
+    -3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,
+    -3477,-3477,-3477, 3759,-3477,-3477,-3477,-3477,-3477,-3477,
+    -3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477,
+    -3477,-3477,-3477,-3477,-3477,-3477,-3477,-3477, 3759,-3477,
+    -3477,-3477,-3477,-3477,-3477
+    },
+
+    {
+       27,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,
+    -3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,
+    -3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,
+    -3478,-3478,-3478, 3760,-3478,-3478,-3478,-3478,-3478,-3478,
+
+    -3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478,
+    -3478,-3478,-3478,-3478,-3478,-3478,-3478,-3478, 3760,-3478,
+    -3478,-3478,-3478,-3478,-3478
+    },
+
+    {
+       27,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,
+    -3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,
+    -3479,-3479,-3479,-3479,-3479,-3479,-3479, 3761,-3479,-3479,
+    -3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,
+    -3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,-3479,
+    -3479,-3479, 3761,-3479,-3479,-3479,-3479,-3479,-3479,-3479,
+    -3479,-3479,-3479,-3479,-3479
+
+    },
+
+    {
+       27,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480, 2145,
+    -3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,
+    -3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,
+    -3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,
+    -3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,
+    -3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,-3480,
+    -3480,-3480,-3480,-3480,-3480
+    },
+
+    {
+       27,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,
+    -3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,
+    -3481,-3481,-3481,-3481,-3481,-3481,-3481, 3762,-3481,-3481,
+
+    -3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,
+    -3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,-3481,
+    -3481,-3481, 3762,-3481,-3481,-3481,-3481,-3481,-3481,-3481,
+    -3481,-3481,-3481,-3481,-3481
+    },
+
+    {
+       27,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482, 2147,
+    -3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,
+    -3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,
+    -3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,
+    -3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,
+    -3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,-3482,
+
+    -3482,-3482,-3482,-3482,-3482
+    },
+
+    {
+       27,-3483, 3483, 3483,-3483,-3483,-3483,-3483,-3483,-3483,
+    -3483,-3483, 3484,-3483,-3483,-3483,-3483,-3483,-3483,-3483,
+    -3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,
+    -3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,
+    -3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,
+    -3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,-3483,
+    -3483,-3483,-3483,-3483,-3483
+    },
+
+    {
+       27,-3484,-3484,-3484,-3484,-3484,-3484,-3484,-3484,-3484,
+    -3484,-3484,-3484,-3484,-3484,-3484, 3763,-3484,-3484,-3484,
+
+    -3484,-3484,-3484,-3484,-3484,-3484,-3484,-3484,-3484, 3764,
+    -3484,-3484,-3484,-3484,-3484,-3484,-3484,-3484,-3484,-3484,
+    -3484,-3484, 3763,-3484,-3484,-3484,-3484,-3484,-3484,-3484,
+    -3484,-3484,-3484,-3484, 3764,-3484,-3484,-3484,-3484,-3484,
+    -3484,-3484,-3484,-3484,-3484
+    },
+
+    {
+       27,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,
+    -3485,-3485,-3485,-3485, 3765,-3485,-3485,-3485,-3485,-3485,
+    -3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,
+    -3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,
+     3765,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,
+
+    -3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,-3485,
+    -3485,-3485,-3485,-3485,-3485
+    },
+
+    {
+       27,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,
+    -3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,
+    -3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,
+    -3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,
+    -3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,
+    -3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,-3486,
+    -3486,-3486,-3486,-3486,-3486
+    },
+
+    {
+       27,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,
+
+    -3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,
+    -3487,-3487,-3487,-3487,-3487,-3487,-3487, 3766,-3487,-3487,
+    -3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,
+    -3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,-3487,
+    -3487,-3487, 3766,-3487,-3487,-3487,-3487,-3487,-3487,-3487,
+    -3487,-3487,-3487,-3487,-3487
+    },
+
+    {
+       27,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,
+    -3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,
+    -3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488, 3767,-3488,
+    -3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,
+
+    -3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,-3488,
+    -3488,-3488,-3488, 3767,-3488,-3488,-3488,-3488,-3488,-3488,
+    -3488,-3488,-3488,-3488,-3488
+    },
+
+    {
+       27,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,
+    -3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,
+    -3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,
+    -3489, 3768,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,
+    -3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,-3489,
+    -3489,-3489,-3489,-3489,-3489,-3489, 3768,-3489,-3489,-3489,
+    -3489,-3489,-3489,-3489,-3489
+
+    },
+
+    {
+       27,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,
+    -3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490, 3769,-3490,
+    -3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,
+    -3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,
+    -3490,-3490,-3490,-3490, 3769,-3490,-3490,-3490,-3490,-3490,
+    -3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,-3490,
+    -3490,-3490,-3490,-3490,-3490
+    },
+
+    {
+       27,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,
+    -3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,
+    -3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,
+
+    -3491,-3491,-3491, 3770,-3491,-3491,-3491,-3491,-3491,-3491,
+    -3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491,
+    -3491,-3491,-3491,-3491,-3491,-3491,-3491,-3491, 3770,-3491,
+    -3491,-3491,-3491,-3491,-3491
+    },
+
+    {
+       27,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,
+    -3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,
+    -3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,
+    -3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,
+    -3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,
+    -3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,-3492,
+
+    -3492,-3492,-3492,-3492,-3492
+    },
+
+    {
+       27,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,
+    -3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,
+    -3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,
+    -3493,-3493, 3771,-3493,-3493,-3493,-3493,-3493,-3493,-3493,
+    -3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,-3493,
+    -3493,-3493,-3493,-3493,-3493,-3493,-3493, 3771,-3493,-3493,
+    -3493,-3493,-3493,-3493,-3493
+    },
+
+    {
+       27,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,
+    -3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,
+
+    -3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,
+    -3494,-3494,-3494, 3772,-3494,-3494,-3494,-3494,-3494,-3494,
+    -3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494,
+    -3494,-3494,-3494,-3494,-3494,-3494,-3494,-3494, 3772,-3494,
+    -3494,-3494,-3494,-3494,-3494
+    },
+
+    {
+       27,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,
+    -3495,-3495,-3495,-3495, 3773,-3495,-3495,-3495,-3495,-3495,
+    -3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,
+    -3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,
+     3773,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,
+
+    -3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,-3495,
+    -3495,-3495,-3495,-3495,-3495
+    },
+
+    {
+       27,-3496, 3496, 3496,-3496,-3496,-3496,-3496,-3496,-3496,
+    -3496,-3496, 3497,-3496,-3496,-3496,-3496,-3496,-3496,-3496,
+    -3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,
+    -3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,
+    -3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,
+    -3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,-3496,
+    -3496,-3496,-3496,-3496,-3496
+    },
+
+    {
+       27,-3497,-3497,-3497,-3497,-3497,-3497,-3497,-3497,-3497,
+
+    -3497,-3497,-3497,-3497,-3497,-3497, 3774,-3497,-3497,-3497,
+    -3497,-3497,-3497,-3497,-3497,-3497,-3497,-3497,-3497, 3775,
+    -3497,-3497,-3497,-3497,-3497,-3497,-3497,-3497,-3497,-3497,
+    -3497,-3497, 3774,-3497,-3497,-3497,-3497,-3497,-3497,-3497,
+    -3497,-3497,-3497,-3497, 3775,-3497,-3497,-3497,-3497,-3497,
+    -3497,-3497,-3497,-3497,-3497
+    },
+
+    {
+       27,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,
+    -3498,-3498,-3498,-3498, 3776,-3498,-3498,-3498,-3498,-3498,
+    -3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,
+    -3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,
+
+     3776,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,
+    -3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,-3498,
+    -3498,-3498,-3498,-3498,-3498
+    },
+
+    {
+       27,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499, 3777,
+    -3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,
+    -3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,
+    -3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499, 3778,
+    -3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,
+    -3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,-3499,
+    -3499,-3499,-3499,-3499,-3499
+
+    },
+
+    {
+       27,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,
+    -3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,
+    -3500,-3500, 3779,-3500,-3500,-3500,-3500,-3500,-3500,-3500,
+    -3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,
+    -3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500, 3779,-3500,
+    -3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,-3500,
+    -3500,-3500,-3500,-3500,-3500
+    },
+
+    {
+       27,-3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501,
+    -3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501, 3780,-3501,
+    -3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501,
+
+    -3501,-3501,-3501,-3501, 3781,-3501,-3501,-3501,-3501,-3501,
+    -3501,-3501,-3501,-3501, 3780,-3501,-3501,-3501,-3501,-3501,
+    -3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501,-3501, 3781,
+    -3501,-3501,-3501,-3501,-3501
+    },
+
+    {
+       27,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,
+    -3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502, 3782,-3502,
+    -3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,
+    -3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,
+    -3502,-3502,-3502,-3502, 3782,-3502,-3502,-3502,-3502,-3502,
+    -3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,-3502,
+
+    -3502,-3502,-3502,-3502,-3502
+    },
+
+    {
+       27,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,
+    -3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503, 3783,-3503,
+    -3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,
+    -3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,
+    -3503,-3503,-3503,-3503, 3783,-3503,-3503,-3503,-3503,-3503,
+    -3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,-3503,
+    -3503,-3503,-3503,-3503,-3503
+    },
+
+    {
+       27,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,
+    -3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504, 3784,-3504,
+
+    -3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,
+    -3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,
+    -3504,-3504,-3504,-3504, 3784,-3504,-3504,-3504,-3504,-3504,
+    -3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,-3504,
+    -3504,-3504,-3504,-3504,-3504
+    },
+
+    {
+       27,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,
+    -3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,
+    -3505,-3505,-3505,-3505,-3505,-3505,-3505, 3785,-3505,-3505,
+    -3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,
+    -3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,-3505,
+
+    -3505,-3505, 3785,-3505,-3505,-3505,-3505,-3505,-3505,-3505,
+    -3505,-3505,-3505,-3505,-3505
+    },
+
+    {
+       27,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,
+    -3506,-3506,-3506, 3786,-3506,-3506,-3506,-3506,-3506,-3506,
+    -3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,
+    -3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,
+    -3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,
+    -3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,-3506,
+    -3506,-3506,-3506,-3506,-3506
+    },
+
+    {
+       27,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,
+
+    -3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,
+    -3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507, 3787,-3507,
+    -3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,
+    -3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,-3507,
+    -3507,-3507,-3507, 3787,-3507,-3507,-3507,-3507,-3507,-3507,
+    -3507,-3507,-3507,-3507,-3507
+    },
+
+    {
+       27,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,
+    -3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,
+    -3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,
+    -3508, 3788,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,
+
+    -3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,-3508,
+    -3508,-3508,-3508,-3508,-3508,-3508, 3788,-3508,-3508,-3508,
+    -3508,-3508,-3508,-3508,-3508
+    },
+
+    {
+       27,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,
+    -3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,
+    -3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,
+    -3509,-3509,-3509, 3789,-3509,-3509,-3509,-3509,-3509,-3509,
+    -3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509,
+    -3509,-3509,-3509,-3509,-3509,-3509,-3509,-3509, 3789,-3509,
+    -3509,-3509,-3509,-3509,-3509
+
+    },
+
+    {
+       27,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,
+    -3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,
+    -3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,
+    -3510,-3510,-3510, 3790,-3510,-3510,-3510,-3510,-3510,-3510,
+    -3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510,
+    -3510,-3510,-3510,-3510,-3510,-3510,-3510,-3510, 3790,-3510,
+    -3510,-3510,-3510,-3510,-3510
+    },
+
+    {
+       27,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,
+    -3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,
+    -3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,
+
+    -3511,-3511,-3511, 3791,-3511,-3511,-3511,-3511,-3511,-3511,
+    -3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511,
+    -3511,-3511,-3511,-3511,-3511,-3511,-3511,-3511, 3791,-3511,
+    -3511,-3511,-3511,-3511,-3511
+    },
+
+    {
+       27,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,
+    -3512,-3512,-3512,-3512, 3792,-3512,-3512,-3512,-3512,-3512,
+    -3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,
+    -3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,
+     3792,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,
+    -3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,-3512,
+
+    -3512,-3512,-3512,-3512,-3512
+    },
+
+    {
+       27,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,
+    -3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,
+    -3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,
+    -3513,-3513,-3513, 3793,-3513,-3513,-3513,-3513,-3513,-3513,
+    -3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513,
+    -3513,-3513,-3513,-3513,-3513,-3513,-3513,-3513, 3793,-3513,
+    -3513,-3513,-3513,-3513,-3513
+    },
+
+    {
+       27,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,
+    -3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,
+
+    -3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,
+    -3514,-3514,-3514, 3794,-3514,-3514,-3514,-3514,-3514,-3514,
+    -3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514,
+    -3514,-3514,-3514,-3514,-3514,-3514,-3514,-3514, 3794,-3514,
+    -3514,-3514,-3514,-3514,-3514
+    },
+
+    {
+       27,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,
+    -3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,
+    -3515,-3515,-3515,-3515,-3515,-3515,-3515, 3795,-3515,-3515,
+    -3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,
+    -3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,-3515,
+
+    -3515,-3515, 3795,-3515,-3515,-3515,-3515,-3515,-3515,-3515,
+    -3515,-3515,-3515,-3515,-3515
+    },
+
+    {
+       27,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516, 2190,
+    -3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,
+    -3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,
+    -3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,
+    -3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,
+    -3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,-3516,
+    -3516,-3516,-3516,-3516,-3516
+    },
+
+    {
+       27,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,
+
+    -3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,
+    -3517,-3517,-3517,-3517,-3517,-3517,-3517, 3796,-3517,-3517,
+    -3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,
+    -3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,-3517,
+    -3517,-3517, 3796,-3517,-3517,-3517,-3517,-3517,-3517,-3517,
+    -3517,-3517,-3517,-3517,-3517
+    },
+
+    {
+       27,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518, 2192,
+    -3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,
+    -3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,
+    -3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,
+
+    -3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,
+    -3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,-3518,
+    -3518,-3518,-3518,-3518,-3518
+    },
+
+    {
+       27,-3519, 3519, 3519,-3519,-3519,-3519,-3519,-3519,-3519,
+    -3519,-3519, 3520,-3519,-3519,-3519,-3519,-3519,-3519,-3519,
+    -3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,
+    -3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,
+    -3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,
+    -3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,-3519,
+    -3519,-3519,-3519,-3519,-3519
+
+    },
+
+    {
+       27,-3520,-3520,-3520,-3520,-3520,-3520,-3520,-3520,-3520,
+    -3520,-3520,-3520,-3520,-3520,-3520, 3797,-3520,-3520,-3520,
+    -3520,-3520,-3520,-3520,-3520,-3520,-3520,-3520,-3520, 3798,
+    -3520,-3520,-3520,-3520,-3520,-3520,-3520,-3520,-3520,-3520,
+    -3520,-3520, 3797,-3520,-3520,-3520,-3520,-3520,-3520,-3520,
+    -3520,-3520,-3520,-3520, 3798,-3520,-3520,-3520,-3520,-3520,
+    -3520,-3520,-3520,-3520,-3520
+    },
+
+    {
+       27,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,
+    -3521,-3521,-3521,-3521, 3799,-3521,-3521,-3521,-3521,-3521,
+    -3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,
+
+    -3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,
+     3799,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,
+    -3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,-3521,
+    -3521,-3521,-3521,-3521,-3521
+    },
+
+    {
+       27,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,
+    -3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,
+    -3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,
+    -3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,
+    -3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,
+    -3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,-3522,
+
+    -3522,-3522,-3522,-3522,-3522
+    },
+
+    {
+       27,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,
+    -3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,
+    -3523,-3523,-3523,-3523,-3523,-3523,-3523, 3800,-3523,-3523,
+    -3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,
+    -3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,-3523,
+    -3523,-3523, 3800,-3523,-3523,-3523,-3523,-3523,-3523,-3523,
+    -3523,-3523,-3523,-3523,-3523
+    },
+
+    {
+       27,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,
+    -3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,
+
+    -3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524, 3801,-3524,
+    -3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,
+    -3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,-3524,
+    -3524,-3524,-3524, 3801,-3524,-3524,-3524,-3524,-3524,-3524,
+    -3524,-3524,-3524,-3524,-3524
+    },
+
+    {
+       27,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,
+    -3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,
+    -3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,
+    -3525, 3802,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,
+    -3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,-3525,
+
+    -3525,-3525,-3525,-3525,-3525,-3525, 3802,-3525,-3525,-3525,
+    -3525,-3525,-3525,-3525,-3525
+    },
+
+    {
+       27,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,
+    -3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526, 3803,-3526,
+    -3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,
+    -3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,
+    -3526,-3526,-3526,-3526, 3803,-3526,-3526,-3526,-3526,-3526,
+    -3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,-3526,
+    -3526,-3526,-3526,-3526,-3526
+    },
+
+    {
+       27,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,
+
+    -3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,
+    -3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,
+    -3527,-3527,-3527, 3804,-3527,-3527,-3527,-3527,-3527,-3527,
+    -3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527,
+    -3527,-3527,-3527,-3527,-3527,-3527,-3527,-3527, 3804,-3527,
+    -3527,-3527,-3527,-3527,-3527
+    },
+
+    {
+       27,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,
+    -3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,
+    -3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,
+    -3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,
+
+    -3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,
+    -3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,-3528,
+    -3528,-3528,-3528,-3528,-3528
+    },
+
+    {
+       27,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,
+    -3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,
+    -3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,
+    -3529,-3529, 3805,-3529,-3529,-3529,-3529,-3529,-3529,-3529,
+    -3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,-3529,
+    -3529,-3529,-3529,-3529,-3529,-3529,-3529, 3805,-3529,-3529,
+    -3529,-3529,-3529,-3529,-3529
+
+    },
+
+    {
+       27,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,
+    -3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,
+    -3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,
+    -3530,-3530,-3530, 3806,-3530,-3530,-3530,-3530,-3530,-3530,
+    -3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530,
+    -3530,-3530,-3530,-3530,-3530,-3530,-3530,-3530, 3806,-3530,
+    -3530,-3530,-3530,-3530,-3530
+    },
+
+    {
+       27,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,
+    -3531,-3531,-3531,-3531, 3807,-3531,-3531,-3531,-3531,-3531,
+    -3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,
+
+    -3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,
+     3807,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,
+    -3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,-3531,
+    -3531,-3531,-3531,-3531,-3531
+    },
+
+    {
+       27,-3532, 3532, 3532,-3532,-3532,-3532,-3532,-3532,-3532,
+    -3532,-3532, 3533,-3532,-3532,-3532,-3532,-3532,-3532,-3532,
+    -3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,
+    -3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,
+    -3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,
+    -3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,-3532,
+
+    -3532,-3532,-3532,-3532,-3532
+    },
+
+    {
+       27,-3533,-3533,-3533,-3533,-3533,-3533,-3533,-3533,-3533,
+    -3533,-3533,-3533,-3533,-3533,-3533, 3808,-3533,-3533,-3533,
+    -3533,-3533,-3533,-3533,-3533,-3533,-3533,-3533,-3533, 3809,
+    -3533,-3533,-3533,-3533,-3533,-3533,-3533,-3533,-3533,-3533,
+    -3533,-3533, 3808,-3533,-3533,-3533,-3533,-3533,-3533,-3533,
+    -3533,-3533,-3533,-3533, 3809,-3533,-3533,-3533,-3533,-3533,
+    -3533,-3533,-3533,-3533,-3533
+    },
+
+    {
+       27,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,
+    -3534,-3534,-3534,-3534, 3810,-3534,-3534,-3534,-3534,-3534,
+
+    -3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,
+    -3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,
+     3810,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,
+    -3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,-3534,
+    -3534,-3534,-3534,-3534,-3534
+    },
+
+    {
+       27,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535, 3811,
+    -3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,
+    -3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,
+    -3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535, 3812,
+    -3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,
+
+    -3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,-3535,
+    -3535,-3535,-3535,-3535,-3535
+    },
+
+    {
+       27,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,
+    -3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,
+    -3536,-3536, 3813,-3536,-3536,-3536,-3536,-3536,-3536,-3536,
+    -3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,
+    -3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536, 3813,-3536,
+    -3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,-3536,
+    -3536,-3536,-3536,-3536,-3536
+    },
+
+    {
+       27,-3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537,
+
+    -3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537, 3814,-3537,
+    -3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537,
+    -3537,-3537,-3537,-3537, 3815,-3537,-3537,-3537,-3537,-3537,
+    -3537,-3537,-3537,-3537, 3814,-3537,-3537,-3537,-3537,-3537,
+    -3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537,-3537, 3815,
+    -3537,-3537,-3537,-3537,-3537
+    },
+
+    {
+       27,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,
+    -3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538, 3816,-3538,
+    -3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,
+    -3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,
+
+    -3538,-3538,-3538,-3538, 3816,-3538,-3538,-3538,-3538,-3538,
+    -3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,-3538,
+    -3538,-3538,-3538,-3538,-3538
+    },
+
+    {
+       27,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,
+    -3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539, 3817,-3539,
+    -3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,
+    -3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,
+    -3539,-3539,-3539,-3539, 3817,-3539,-3539,-3539,-3539,-3539,
+    -3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,-3539,
+    -3539,-3539,-3539,-3539,-3539
+
+    },
+
+    {
+       27,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,
+    -3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540, 3818,-3540,
+    -3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,
+    -3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,
+    -3540,-3540,-3540,-3540, 3818,-3540,-3540,-3540,-3540,-3540,
+    -3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,-3540,
+    -3540,-3540,-3540,-3540,-3540
+    },
+
+    {
+       27,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,
+    -3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,
+    -3541,-3541,-3541,-3541,-3541,-3541,-3541, 3819,-3541,-3541,
+
+    -3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,
+    -3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,-3541,
+    -3541,-3541, 3819,-3541,-3541,-3541,-3541,-3541,-3541,-3541,
+    -3541,-3541,-3541,-3541,-3541
+    },
+
+    {
+       27,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,
+    -3542,-3542,-3542, 3820,-3542,-3542,-3542,-3542,-3542,-3542,
+    -3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,
+    -3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,
+    -3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,
+    -3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,-3542,
+
+    -3542,-3542,-3542,-3542,-3542
+    },
+
+    {
+       27,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,
+    -3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,
+    -3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543, 3821,-3543,
+    -3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,
+    -3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,-3543,
+    -3543,-3543,-3543, 3821,-3543,-3543,-3543,-3543,-3543,-3543,
+    -3543,-3543,-3543,-3543,-3543
+    },
+
+    {
+       27,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,
+    -3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,
+
+    -3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544, 3822,
+    -3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,
+    -3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,-3544,
+    -3544,-3544,-3544,-3544, 3822,-3544,-3544,-3544,-3544,-3544,
+    -3544,-3544,-3544,-3544,-3544
+    },
+
+    {
+       27,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,
+    -3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,
+    -3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,
+    -3545,-3545,-3545, 3823,-3545,-3545,-3545,-3545,-3545,-3545,
+    -3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545,
+
+    -3545,-3545,-3545,-3545,-3545,-3545,-3545,-3545, 3823,-3545,
+    -3545,-3545,-3545,-3545,-3545
+    },
+
+    {
+       27,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,
+    -3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,
+    -3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,
+    -3546,-3546,-3546, 3824,-3546,-3546,-3546,-3546,-3546,-3546,
+    -3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546,
+    -3546,-3546,-3546,-3546,-3546,-3546,-3546,-3546, 3824,-3546,
+    -3546,-3546,-3546,-3546,-3546
+    },
+
+    {
+       27,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,
+
+    -3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,
+    -3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,
+    -3547,-3547,-3547, 3825,-3547,-3547,-3547,-3547,-3547,-3547,
+    -3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547,
+    -3547,-3547,-3547,-3547,-3547,-3547,-3547,-3547, 3825,-3547,
+    -3547,-3547,-3547,-3547,-3547
+    },
+
+    {
+       27,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,
+    -3548,-3548,-3548,-3548, 3826,-3548,-3548,-3548,-3548,-3548,
+    -3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,
+    -3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,
+
+     3826,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,
+    -3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,-3548,
+    -3548,-3548,-3548,-3548,-3548
+    },
+
+    {
+       27,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,
+    -3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,
+    -3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,
+    -3549,-3549,-3549, 3827,-3549,-3549,-3549,-3549,-3549,-3549,
+    -3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549,
+    -3549,-3549,-3549,-3549,-3549,-3549,-3549,-3549, 3827,-3549,
+    -3549,-3549,-3549,-3549,-3549
+
+    },
+
+    {
+       27,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,
+    -3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,
+    -3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,
+    -3550,-3550,-3550, 3828,-3550,-3550,-3550,-3550,-3550,-3550,
+    -3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550,
+    -3550,-3550,-3550,-3550,-3550,-3550,-3550,-3550, 3828,-3550,
+    -3550,-3550,-3550,-3550,-3550
+    },
+
+    {
+       27,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,
+    -3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,
+    -3551,-3551,-3551,-3551,-3551,-3551,-3551, 3829,-3551,-3551,
+
+    -3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,
+    -3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,-3551,
+    -3551,-3551, 3829,-3551,-3551,-3551,-3551,-3551,-3551,-3551,
+    -3551,-3551,-3551,-3551,-3551
+    },
+
+    {
+       27,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552, 2235,
+    -3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,
+    -3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,
+    -3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,
+    -3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,
+    -3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,-3552,
+
+    -3552,-3552,-3552,-3552,-3552
+    },
+
+    {
+       27,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,
+    -3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,
+    -3553,-3553,-3553,-3553,-3553,-3553,-3553, 3830,-3553,-3553,
+    -3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,
+    -3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,-3553,
+    -3553,-3553, 3830,-3553,-3553,-3553,-3553,-3553,-3553,-3553,
+    -3553,-3553,-3553,-3553,-3553
+    },
+
+    {
+       27,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554, 2237,
+    -3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,
+
+    -3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,
+    -3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,
+    -3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,
+    -3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,-3554,
+    -3554,-3554,-3554,-3554,-3554
+    },
+
+    {
+       27,-3555, 3555, 3555,-3555,-3555,-3555,-3555,-3555,-3555,
+    -3555,-3555, 3556,-3555,-3555,-3555,-3555,-3555,-3555,-3555,
+    -3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,
+    -3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,
+    -3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,
+
+    -3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,-3555,
+    -3555,-3555,-3555,-3555,-3555
+    },
+
+    {
+       27,-3556,-3556,-3556,-3556,-3556,-3556,-3556,-3556,-3556,
+    -3556,-3556,-3556,-3556,-3556,-3556, 3831,-3556,-3556,-3556,
+    -3556,-3556,-3556,-3556,-3556,-3556,-3556,-3556,-3556, 3832,
+    -3556,-3556,-3556,-3556,-3556,-3556,-3556,-3556,-3556,-3556,
+    -3556,-3556, 3831,-3556,-3556,-3556,-3556,-3556,-3556,-3556,
+    -3556,-3556,-3556,-3556, 3832,-3556,-3556,-3556,-3556,-3556,
+    -3556,-3556,-3556,-3556,-3556
+    },
+
+    {
+       27,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,
+
+    -3557,-3557,-3557,-3557, 3833,-3557,-3557,-3557,-3557,-3557,
+    -3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,
+    -3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,
+     3833,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,
+    -3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,-3557,
+    -3557,-3557,-3557,-3557,-3557
+    },
+
+    {
+       27,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,
+    -3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,
+    -3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,
+    -3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,
+
+    -3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,
+    -3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,-3558,
+    -3558,-3558,-3558,-3558,-3558
+    },
+
+    {
+       27,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,
+    -3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,
+    -3559,-3559,-3559,-3559,-3559,-3559,-3559, 3834,-3559,-3559,
+    -3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,
+    -3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,-3559,
+    -3559,-3559, 3834,-3559,-3559,-3559,-3559,-3559,-3559,-3559,
+    -3559,-3559,-3559,-3559,-3559
+
+    },
+
+    {
+       27,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,
+    -3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,
+    -3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560, 3835,-3560,
+    -3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,
+    -3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,-3560,
+    -3560,-3560,-3560, 3835,-3560,-3560,-3560,-3560,-3560,-3560,
+    -3560,-3560,-3560,-3560,-3560
+    },
+
+    {
+       27,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,
+    -3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,
+    -3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,
+
+    -3561, 3836,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,
+    -3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,-3561,
+    -3561,-3561,-3561,-3561,-3561,-3561, 3836,-3561,-3561,-3561,
+    -3561,-3561,-3561,-3561,-3561
+    },
+
+    {
+       27,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,
+    -3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562, 3837,-3562,
+    -3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,
+    -3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,
+    -3562,-3562,-3562,-3562, 3837,-3562,-3562,-3562,-3562,-3562,
+    -3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,-3562,
+
+    -3562,-3562,-3562,-3562,-3562
+    },
+
+    {
+       27,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,
+    -3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,
+    -3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,
+    -3563,-3563,-3563, 3838,-3563,-3563,-3563,-3563,-3563,-3563,
+    -3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563,
+    -3563,-3563,-3563,-3563,-3563,-3563,-3563,-3563, 3838,-3563,
+    -3563,-3563,-3563,-3563,-3563
+    },
+
+    {
+       27,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,
+    -3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,
+
+    -3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,
+    -3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,
+    -3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,
+    -3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,-3564,
+    -3564,-3564,-3564,-3564,-3564
+    },
+
+    {
+       27,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,
+    -3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,
+    -3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,
+    -3565,-3565, 3839,-3565,-3565,-3565,-3565,-3565,-3565,-3565,
+    -3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,-3565,
+
+    -3565,-3565,-3565,-3565,-3565,-3565,-3565, 3839,-3565,-3565,
+    -3565,-3565,-3565,-3565,-3565
+    },
+
+    {
+       27,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,
+    -3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,
+    -3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,
+    -3566,-3566,-3566, 3840,-3566,-3566,-3566,-3566,-3566,-3566,
+    -3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566,
+    -3566,-3566,-3566,-3566,-3566,-3566,-3566,-3566, 3840,-3566,
+    -3566,-3566,-3566,-3566,-3566
+    },
+
+    {
+       27,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,
+
+    -3567,-3567,-3567,-3567, 3841,-3567,-3567,-3567,-3567,-3567,
+    -3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,
+    -3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,
+     3841,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,
+    -3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,-3567,
+    -3567,-3567,-3567,-3567,-3567
+    },
+
+    {
+       27,-3568, 3568, 3568,-3568,-3568,-3568,-3568,-3568,-3568,
+    -3568,-3568, 3569,-3568,-3568,-3568,-3568,-3568,-3568,-3568,
+    -3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,
+    -3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,
+
+    -3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,
+    -3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,-3568,
+    -3568,-3568,-3568,-3568,-3568
+    },
+
+    {
+       27,-3569,-3569,-3569,-3569,-3569,-3569,-3569,-3569,-3569,
+    -3569,-3569,-3569,-3569,-3569,-3569, 3842,-3569,-3569,-3569,
+    -3569,-3569,-3569,-3569,-3569,-3569,-3569,-3569,-3569, 3843,
+    -3569,-3569,-3569,-3569,-3569,-3569,-3569,-3569,-3569,-3569,
+    -3569,-3569, 3842,-3569,-3569,-3569,-3569,-3569,-3569,-3569,
+    -3569,-3569,-3569,-3569, 3843,-3569,-3569,-3569,-3569,-3569,
+    -3569,-3569,-3569,-3569,-3569
+
+    },
+
+    {
+       27,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,
+    -3570,-3570,-3570,-3570, 3844,-3570,-3570,-3570,-3570,-3570,
+    -3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,
+    -3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,
+     3844,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,
+    -3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,-3570,
+    -3570,-3570,-3570,-3570,-3570
+    },
+
+    {
+       27,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571, 3845,
+    -3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,
+    -3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,
+
+    -3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571, 3846,
+    -3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,
+    -3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,-3571,
+    -3571,-3571,-3571,-3571,-3571
+    },
+
+    {
+       27,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,
+    -3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,
+    -3572,-3572, 3847,-3572,-3572,-3572,-3572,-3572,-3572,-3572,
+    -3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,
+    -3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572, 3847,-3572,
+    -3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,-3572,
+
+    -3572,-3572,-3572,-3572,-3572
+    },
+
+    {
+       27,-3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573,
+    -3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573, 3848,-3573,
+    -3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573,
+    -3573,-3573,-3573,-3573, 3849,-3573,-3573,-3573,-3573,-3573,
+    -3573,-3573,-3573,-3573, 3848,-3573,-3573,-3573,-3573,-3573,
+    -3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573,-3573, 3849,
+    -3573,-3573,-3573,-3573,-3573
+    },
+
+    {
+       27,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,
+    -3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574, 3850,-3574,
+
+    -3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,
+    -3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,
+    -3574,-3574,-3574,-3574, 3850,-3574,-3574,-3574,-3574,-3574,
+    -3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,-3574,
+    -3574,-3574,-3574,-3574,-3574
+    },
+
+    {
+       27,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,
+    -3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575, 3851,-3575,
+    -3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,
+    -3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,
+    -3575,-3575,-3575,-3575, 3851,-3575,-3575,-3575,-3575,-3575,
+
+    -3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,-3575,
+    -3575,-3575,-3575,-3575,-3575
+    },
+
+    {
+       27,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,
+    -3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576, 3852,-3576,
+    -3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,
+    -3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,
+    -3576,-3576,-3576,-3576, 3852,-3576,-3576,-3576,-3576,-3576,
+    -3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,-3576,
+    -3576,-3576,-3576,-3576,-3576
+    },
+
+    {
+       27,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,
+
+    -3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,
+    -3577,-3577,-3577,-3577,-3577,-3577,-3577, 3853,-3577,-3577,
+    -3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,
+    -3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,-3577,
+    -3577,-3577, 3853,-3577,-3577,-3577,-3577,-3577,-3577,-3577,
+    -3577,-3577,-3577,-3577,-3577
+    },
+
+    {
+       27,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,
+    -3578,-3578,-3578, 3854,-3578,-3578,-3578,-3578,-3578,-3578,
+    -3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,
+    -3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,
+
+    -3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,
+    -3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,-3578,
+    -3578,-3578,-3578,-3578,-3578
+    },
+
+    {
+       27,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,
+    -3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,
+    -3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579, 3855,-3579,
+    -3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,
+    -3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,-3579,
+    -3579,-3579,-3579, 3855,-3579,-3579,-3579,-3579,-3579,-3579,
+    -3579,-3579,-3579,-3579,-3579
+
+    },
+
+    {
+       27,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,
+    -3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,
+    -3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,
+    -3580, 3856,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,
+    -3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,-3580,
+    -3580,-3580,-3580,-3580,-3580,-3580, 3856,-3580,-3580,-3580,
+    -3580,-3580,-3580,-3580,-3580
+    },
+
+    {
+       27,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,
+    -3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,
+    -3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,
+
+    -3581,-3581,-3581, 3857,-3581,-3581,-3581,-3581,-3581,-3581,
+    -3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581,
+    -3581,-3581,-3581,-3581,-3581,-3581,-3581,-3581, 3857,-3581,
+    -3581,-3581,-3581,-3581,-3581
+    },
+
+    {
+       27,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,
+    -3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,
+    -3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,
+    -3582,-3582,-3582, 3858,-3582,-3582,-3582,-3582,-3582,-3582,
+    -3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582,
+    -3582,-3582,-3582,-3582,-3582,-3582,-3582,-3582, 3858,-3582,
+
+    -3582,-3582,-3582,-3582,-3582
+    },
+
+    {
+       27,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,
+    -3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,
+    -3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,
+    -3583,-3583,-3583, 3859,-3583,-3583,-3583,-3583,-3583,-3583,
+    -3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583,
+    -3583,-3583,-3583,-3583,-3583,-3583,-3583,-3583, 3859,-3583,
+    -3583,-3583,-3583,-3583,-3583
+    },
+
+    {
+       27,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,
+    -3584,-3584,-3584,-3584, 3860,-3584,-3584,-3584,-3584,-3584,
+
+    -3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,
+    -3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,
+     3860,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,
+    -3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,-3584,
+    -3584,-3584,-3584,-3584,-3584
+    },
+
+    {
+       27,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,
+    -3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,
+    -3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,
+    -3585,-3585,-3585, 3861,-3585,-3585,-3585,-3585,-3585,-3585,
+    -3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585,
+
+    -3585,-3585,-3585,-3585,-3585,-3585,-3585,-3585, 3861,-3585,
+    -3585,-3585,-3585,-3585,-3585
+    },
+
+    {
+       27,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,
+    -3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,
+    -3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,
+    -3586,-3586,-3586, 3862,-3586,-3586,-3586,-3586,-3586,-3586,
+    -3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586,
+    -3586,-3586,-3586,-3586,-3586,-3586,-3586,-3586, 3862,-3586,
+    -3586,-3586,-3586,-3586,-3586
+    },
+
+    {
+       27,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,
+
+    -3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,
+    -3587,-3587,-3587,-3587,-3587,-3587,-3587, 3863,-3587,-3587,
+    -3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,
+    -3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,-3587,
+    -3587,-3587, 3863,-3587,-3587,-3587,-3587,-3587,-3587,-3587,
+    -3587,-3587,-3587,-3587,-3587
+    },
+
+    {
+       27,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588, 2280,
+    -3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,
+    -3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,
+    -3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,
+
+    -3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,
+    -3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,-3588,
+    -3588,-3588,-3588,-3588,-3588
+    },
+
+    {
+       27,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,
+    -3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,
+    -3589,-3589,-3589,-3589,-3589,-3589,-3589, 3864,-3589,-3589,
+    -3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,
+    -3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,-3589,
+    -3589,-3589, 3864,-3589,-3589,-3589,-3589,-3589,-3589,-3589,
+    -3589,-3589,-3589,-3589,-3589
+
+    },
+
+    {
+       27,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590, 2282,
+    -3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,
+    -3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,
+    -3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,
+    -3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,
+    -3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,-3590,
+    -3590,-3590,-3590,-3590,-3590
+    },
+
+    {
+       27,-3591, 3591, 3591,-3591,-3591,-3591,-3591,-3591,-3591,
+    -3591,-3591, 3592,-3591,-3591,-3591,-3591,-3591,-3591,-3591,
+    -3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,
+
+    -3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,
+    -3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,
+    -3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,-3591,
+    -3591,-3591,-3591,-3591,-3591
+    },
+
+    {
+       27,-3592,-3592,-3592,-3592,-3592,-3592,-3592,-3592,-3592,
+    -3592,-3592,-3592,-3592,-3592,-3592, 3865,-3592,-3592,-3592,
+    -3592,-3592,-3592,-3592,-3592,-3592,-3592,-3592,-3592, 3866,
+    -3592,-3592,-3592,-3592,-3592,-3592,-3592,-3592,-3592,-3592,
+    -3592,-3592, 3865,-3592,-3592,-3592,-3592,-3592,-3592,-3592,
+    -3592,-3592,-3592,-3592, 3866,-3592,-3592,-3592,-3592,-3592,
+
+    -3592,-3592,-3592,-3592,-3592
+    },
+
+    {
+       27,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,
+    -3593,-3593,-3593,-3593, 3867,-3593,-3593,-3593,-3593,-3593,
+    -3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,
+    -3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,
+     3867,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,
+    -3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,-3593,
+    -3593,-3593,-3593,-3593,-3593
+    },
+
+    {
+       27,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,
+    -3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,
+
+    -3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,
+    -3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,
+    -3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,
+    -3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,-3594,
+    -3594,-3594,-3594,-3594,-3594
+    },
+
+    {
+       27,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,
+    -3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,
+    -3595,-3595,-3595,-3595,-3595,-3595,-3595, 3868,-3595,-3595,
+    -3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,
+    -3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,-3595,
+
+    -3595,-3595, 3868,-3595,-3595,-3595,-3595,-3595,-3595,-3595,
+    -3595,-3595,-3595,-3595,-3595
+    },
+
+    {
+       27,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,
+    -3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,
+    -3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596, 3869,-3596,
+    -3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,
+    -3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,-3596,
+    -3596,-3596,-3596, 3869,-3596,-3596,-3596,-3596,-3596,-3596,
+    -3596,-3596,-3596,-3596,-3596
+    },
+
+    {
+       27,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,
+
+    -3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,
+    -3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,
+    -3597, 3870,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,
+    -3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,-3597,
+    -3597,-3597,-3597,-3597,-3597,-3597, 3870,-3597,-3597,-3597,
+    -3597,-3597,-3597,-3597,-3597
+    },
+
+    {
+       27,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,
+    -3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598, 3871,-3598,
+    -3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,
+    -3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,
+
+    -3598,-3598,-3598,-3598, 3871,-3598,-3598,-3598,-3598,-3598,
+    -3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,-3598,
+    -3598,-3598,-3598,-3598,-3598
+    },
+
+    {
+       27,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,
+    -3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,
+    -3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,
+    -3599,-3599,-3599, 3872,-3599,-3599,-3599,-3599,-3599,-3599,
+    -3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599,
+    -3599,-3599,-3599,-3599,-3599,-3599,-3599,-3599, 3872,-3599,
+    -3599,-3599,-3599,-3599,-3599
+
+    },
+
+    {
+       27,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,
+    -3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,
+    -3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,
+    -3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,
+    -3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,
+    -3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,-3600,
+    -3600,-3600,-3600,-3600,-3600
+    },
+
+    {
+       27,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,
+    -3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,
+    -3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,
+
+    -3601,-3601, 3873,-3601,-3601,-3601,-3601,-3601,-3601,-3601,
+    -3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,-3601,
+    -3601,-3601,-3601,-3601,-3601,-3601,-3601, 3873,-3601,-3601,
+    -3601,-3601,-3601,-3601,-3601
+    },
+
+    {
+       27,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,
+    -3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,
+    -3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,
+    -3602,-3602,-3602, 3874,-3602,-3602,-3602,-3602,-3602,-3602,
+    -3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602,
+    -3602,-3602,-3602,-3602,-3602,-3602,-3602,-3602, 3874,-3602,
+
+    -3602,-3602,-3602,-3602,-3602
+    },
+
+    {
+       27,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,
+    -3603,-3603,-3603,-3603, 3875,-3603,-3603,-3603,-3603,-3603,
+    -3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,
+    -3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,
+     3875,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,
+    -3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,-3603,
+    -3603,-3603,-3603,-3603,-3603
+    },
+
+    {
+       27,-3604, 3604, 3604,-3604,-3604,-3604,-3604,-3604,-3604,
+    -3604,-3604, 3605,-3604,-3604,-3604,-3604,-3604,-3604,-3604,
+
+    -3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,
+    -3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,
+    -3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,
+    -3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,-3604,
+    -3604,-3604,-3604,-3604,-3604
+    },
+
+    {
+       27,-3605,-3605,-3605,-3605,-3605,-3605,-3605,-3605,-3605,
+    -3605,-3605,-3605,-3605,-3605,-3605, 3876,-3605,-3605,-3605,
+    -3605,-3605,-3605,-3605,-3605,-3605,-3605,-3605,-3605, 3877,
+    -3605,-3605,-3605,-3605,-3605,-3605,-3605,-3605,-3605,-3605,
+    -3605,-3605, 3876,-3605,-3605,-3605,-3605,-3605,-3605,-3605,
+
+    -3605,-3605,-3605,-3605, 3877,-3605,-3605,-3605,-3605,-3605,
+    -3605,-3605,-3605,-3605,-3605
+    },
+
+    {
+       27,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,
+    -3606,-3606,-3606,-3606, 3878,-3606,-3606,-3606,-3606,-3606,
+    -3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,
+    -3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,
+     3878,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,
+    -3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,-3606,
+    -3606,-3606,-3606,-3606,-3606
+    },
+
+    {
+       27,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607, 3879,
+
+    -3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,
+    -3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,
+    -3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607, 3880,
+    -3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,
+    -3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,-3607,
+    -3607,-3607,-3607,-3607,-3607
+    },
+
+    {
+       27,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,
+    -3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,
+    -3608,-3608, 3881,-3608,-3608,-3608,-3608,-3608,-3608,-3608,
+    -3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,
+
+    -3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608, 3881,-3608,
+    -3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,-3608,
+    -3608,-3608,-3608,-3608,-3608
+    },
+
+    {
+       27,-3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609,
+    -3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609, 3882,-3609,
+    -3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609,
+    -3609,-3609,-3609,-3609, 3883,-3609,-3609,-3609,-3609,-3609,
+    -3609,-3609,-3609,-3609, 3882,-3609,-3609,-3609,-3609,-3609,
+    -3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609,-3609, 3883,
+    -3609,-3609,-3609,-3609,-3609
+
+    },
+
+    {
+       27,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,
+    -3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610, 3884,-3610,
+    -3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,
+    -3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,
+    -3610,-3610,-3610,-3610, 3884,-3610,-3610,-3610,-3610,-3610,
+    -3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,-3610,
+    -3610,-3610,-3610,-3610,-3610
+    },
+
+    {
+       27,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,
+    -3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611, 3885,-3611,
+    -3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,
+
+    -3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,
+    -3611,-3611,-3611,-3611, 3885,-3611,-3611,-3611,-3611,-3611,
+    -3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,-3611,
+    -3611,-3611,-3611,-3611,-3611
+    },
+
+    {
+       27,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,
+    -3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612, 3886,-3612,
+    -3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,
+    -3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,
+    -3612,-3612,-3612,-3612, 3886,-3612,-3612,-3612,-3612,-3612,
+    -3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,-3612,
+
+    -3612,-3612,-3612,-3612,-3612
+    },
+
+    {
+       27,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,
+    -3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,
+    -3613,-3613,-3613,-3613,-3613,-3613,-3613, 3887,-3613,-3613,
+    -3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,
+    -3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,-3613,
+    -3613,-3613, 3887,-3613,-3613,-3613,-3613,-3613,-3613,-3613,
+    -3613,-3613,-3613,-3613,-3613
+    },
+
+    {
+       27,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,
+    -3614,-3614,-3614, 3888,-3614,-3614,-3614,-3614,-3614,-3614,
+
+    -3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,
+    -3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,
+    -3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,
+    -3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,-3614,
+    -3614,-3614,-3614,-3614,-3614
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  367,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366, 3889,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+
+      366,  366,  366,  366,  366,  366,  366, 3889,  366,  366,
+      366,  366,  366,  366,  366
+    },
+
+    {
+       27,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,
+    -3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,
+    -3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,
+    -3616,-3616,-3616, 3890,-3616,-3616,-3616,-3616,-3616,-3616,
+    -3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616,
+    -3616,-3616,-3616,-3616,-3616,-3616,-3616,-3616, 3890,-3616,
+    -3616,-3616,-3616,-3616,-3616
+    },
+
+    {
+       27,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,
+
+    -3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,
+    -3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,
+    -3617,-3617, 3891,-3617,-3617,-3617,-3617,-3617,-3617,-3617,
+    -3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,-3617,
+    -3617,-3617,-3617,-3617,-3617,-3617,-3617, 3891,-3617,-3617,
+    -3617,-3617,-3617,-3617,-3617
+    },
+
+    {
+       27,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,
+    -3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618, 3892,-3618,
+    -3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,
+    -3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,
+
+    -3618,-3618,-3618,-3618, 3892,-3618,-3618,-3618,-3618,-3618,
+    -3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,-3618,
+    -3618,-3618,-3618,-3618,-3618
+    },
+
+    {
+       27,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,
+    -3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619, 3893,-3619,
+    -3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,
+    -3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,
+    -3619,-3619,-3619,-3619, 3893,-3619,-3619,-3619,-3619,-3619,
+    -3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,-3619,
+    -3619,-3619,-3619,-3619,-3619
+
+    },
+
+    {
+       27,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,
+    -3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,
+    -3620,-3620,-3620,-3620,-3620,-3620, 3894,-3620,-3620,-3620,
+    -3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,
+    -3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,
+    -3620, 3894,-3620,-3620,-3620,-3620,-3620,-3620,-3620,-3620,
+    -3620,-3620,-3620,-3620,-3620
+    },
+
+    {
+       27,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,
+    -3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,
+    -3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,
+
+    -3621,-3621, 3895,-3621,-3621,-3621,-3621,-3621,-3621,-3621,
+    -3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,-3621,
+    -3621,-3621,-3621,-3621,-3621,-3621,-3621, 3895,-3621,-3621,
+    -3621,-3621,-3621,-3621,-3621
+    },
+
+    {
+       27,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,
+    -3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,
+    -3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,
+    -3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,
+    -3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,
+    -3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,-3622,
+
+    -3622,-3622,-3622,-3622,-3622
+    },
+
+    {
+       27,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,
+    -3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,
+    -3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,
+    -3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,
+    -3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,
+    -3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,-3623,
+    -3623,-3623,-3623,-3623,-3623
+    },
+
+    {
+       27,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,
+    -3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,
+
+    -3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,
+    -3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,
+    -3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,
+    -3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,-3624,
+    -3624,-3624,-3624,-3624,-3624
+    },
+
+    {
+       27,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,
+    -3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,
+    -3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,
+    -3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,
+    -3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,
+
+    -3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,
+    -3625,-3625,-3625,-3625,-3625
+    },
+
+    {
+       27,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,
+    -3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,
+    -3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,
+    -3626,-3626, 3896,-3626,-3626,-3626,-3626,-3626,-3626,-3626,
+    -3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,-3626,
+    -3626,-3626,-3626,-3626,-3626,-3626,-3626, 3896,-3626,-3626,
+    -3626,-3626,-3626,-3626,-3626
+    },
+
+    {
+       27,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,
+
+    -3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,
+    -3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,
+    -3627,-3627,-3627, 3897,-3627,-3627,-3627,-3627,-3627,-3627,
+    -3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627,
+    -3627,-3627,-3627,-3627,-3627,-3627,-3627,-3627, 3897,-3627,
+    -3627,-3627,-3627,-3627,-3627
+    },
+
+    {
+       27,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,
+    -3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,
+    -3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,
+    -3628,-3628,-3628, 3898,-3628,-3628,-3628,-3628,-3628,-3628,
+
+    -3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628,
+    -3628,-3628,-3628,-3628,-3628,-3628,-3628,-3628, 3898,-3628,
+    -3628,-3628,-3628,-3628,-3628
+    },
+
+    {
+       27,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,
+    -3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,
+    -3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629, 3899,-3629,
+    -3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,
+    -3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,-3629,
+    -3629,-3629,-3629, 3899,-3629,-3629,-3629,-3629,-3629,-3629,
+    -3629,-3629,-3629,-3629,-3629
+
+    },
+
+    {
+       27,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,
+    -3630,-3630,-3630,-3630, 3900,-3630,-3630,-3630,-3630,-3630,
+    -3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,
+    -3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,
+     3900,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,
+    -3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,-3630,
+    -3630,-3630,-3630,-3630,-3630
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184, 3901,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3901,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,
+    -3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,
+    -3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,
+    -3632,-3632,-3632, 3902,-3632,-3632,-3632,-3632,-3632,-3632,
+    -3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632,
+    -3632,-3632,-3632,-3632,-3632,-3632,-3632,-3632, 3902,-3632,
+
+    -3632,-3632,-3632,-3632,-3632
+    },
+
+    {
+       27,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,
+    -3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,
+    -3633,-3633,-3633,-3633,-3633,-3633,-3633, 3903,-3633,-3633,
+    -3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,
+    -3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,-3633,
+    -3633,-3633, 3903,-3633,-3633,-3633,-3633,-3633,-3633,-3633,
+    -3633,-3633,-3633,-3633,-3633
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 2342,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,
+    -3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,
+    -3635,-3635,-3635,-3635,-3635,-3635,-3635, 3904,-3635,-3635,
+    -3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,
+    -3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,-3635,
+
+    -3635,-3635, 3904,-3635,-3635,-3635,-3635,-3635,-3635,-3635,
+    -3635,-3635,-3635,-3635,-3635
+    },
+
+    {
+       27,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,
+    -3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,
+    -3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,
+    -3636,-3636, 3905,-3636,-3636,-3636,-3636,-3636,-3636,-3636,
+    -3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,-3636,
+    -3636,-3636,-3636,-3636,-3636,-3636,-3636, 3905,-3636,-3636,
+    -3636,-3636,-3636,-3636,-3636
+    },
+
+    {
+       27,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,
+
+    -3637,-3637,-3637, 3906,-3637,-3637,-3637,-3637,-3637,-3637,
+    -3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,
+    -3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,
+    -3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,
+    -3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,-3637,
+    -3637,-3637,-3637,-3637,-3637
+    },
+
+    {
+       27,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,
+    -3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638, 3907,-3638,
+    -3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,
+    -3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,
+
+    -3638,-3638,-3638,-3638, 3907,-3638,-3638,-3638,-3638,-3638,
+    -3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,-3638,
+    -3638,-3638,-3638,-3638,-3638
+    },
+
+    {
+       27,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,
+    -3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,
+    -3639,-3639,-3639,-3639,-3639,-3639, 3908,-3639,-3639,-3639,
+    -3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,
+    -3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,
+    -3639, 3908,-3639,-3639,-3639,-3639,-3639,-3639,-3639,-3639,
+    -3639,-3639,-3639,-3639,-3639
+
+    },
+
+    {
+       27,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,
+    -3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,
+    -3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640, 3909,-3640,
+    -3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,
+    -3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,-3640,
+    -3640,-3640,-3640, 3909,-3640,-3640,-3640,-3640,-3640,-3640,
+    -3640,-3640,-3640,-3640,-3640
+    },
+
+    {
+       27,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,
+    -3641,-3641,-3641,-3641, 3910,-3641,-3641,-3641,-3641,-3641,
+    -3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,
+
+    -3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,
+     3910,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,
+    -3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,-3641,
+    -3641,-3641,-3641,-3641,-3641
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3911,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 3911,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 3912,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3913,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 3913,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 3914,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 3914,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184, 3915,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3915,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184, 3916,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 3916,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,
+    -3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,
+    -3648,-3648,-3648,-3648,-3648,-3648,-3648, 3917,-3648,-3648,
+    -3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,
+
+    -3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,-3648,
+    -3648,-3648, 3917,-3648,-3648,-3648,-3648,-3648,-3648,-3648,
+    -3648,-3648,-3648,-3648,-3648
+    },
+
+    {
+       27,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,
+    -3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,
+    -3649,-3649,-3649,-3649,-3649,-3649,-3649, 3918,-3649,-3649,
+    -3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,
+    -3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,-3649,
+    -3649,-3649, 3918,-3649,-3649,-3649,-3649,-3649,-3649,-3649,
+    -3649,-3649,-3649,-3649,-3649
+
+    },
+
+    {
+       27,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,
+    -3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,
+    -3650,-3650,-3650,-3650,-3650,-3650,-3650, 3919,-3650,-3650,
+    -3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,
+    -3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,-3650,
+    -3650,-3650, 3919,-3650,-3650,-3650,-3650,-3650,-3650,-3650,
+    -3650,-3650,-3650,-3650,-3650
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184, 3920,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 3920,  184,  184
+    },
+
+    {
+       27,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,
+    -3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,
+    -3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,
+    -3652,-3652,-3652, 3921,-3652,-3652,-3652,-3652,-3652,-3652,
+    -3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652,
+    -3652,-3652,-3652,-3652,-3652,-3652,-3652,-3652, 3921,-3652,
+
+    -3652,-3652,-3652,-3652,-3652
+    },
+
+    {
+       27,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,
+    -3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,
+    -3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,
+    -3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,
+    -3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,
+    -3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,-3653,
+    -3653,-3653,-3653,-3653,-3653
+    },
+
+    {
+       27,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,
+    -3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,
+
+    -3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,
+    -3654,-3654, 3922,-3654,-3654,-3654,-3654,-3654,-3654,-3654,
+    -3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,-3654,
+    -3654,-3654,-3654,-3654,-3654,-3654,-3654, 3922,-3654,-3654,
+    -3654,-3654,-3654,-3654,-3654
+    },
+
+    {
+       27,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,
+    -3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,
+    -3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,
+    -3655,-3655, 3923,-3655,-3655,-3655,-3655,-3655,-3655,-3655,
+    -3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,-3655,
+
+    -3655,-3655,-3655,-3655,-3655,-3655,-3655, 3923,-3655,-3655,
+    -3655,-3655,-3655,-3655,-3655
+    },
+
+    {
+       27,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,
+    -3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656, 3924,-3656,
+    -3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,
+    -3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,
+    -3656,-3656,-3656,-3656, 3924,-3656,-3656,-3656,-3656,-3656,
+    -3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,-3656,
+    -3656,-3656,-3656,-3656,-3656
+    },
+
+    {
+       27,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,
+
+    -3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657, 3925,-3657,
+    -3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,
+    -3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,
+    -3657,-3657,-3657,-3657, 3925,-3657,-3657,-3657,-3657,-3657,
+    -3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,-3657,
+    -3657,-3657,-3657,-3657,-3657
+    },
+
+    {
+       27,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,
+    -3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,
+    -3658,-3658,-3658,-3658,-3658,-3658, 3926,-3658,-3658,-3658,
+    -3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,
+
+    -3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,
+    -3658, 3926,-3658,-3658,-3658,-3658,-3658,-3658,-3658,-3658,
+    -3658,-3658,-3658,-3658,-3658
+    },
+
+    {
+       27,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,
+    -3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,
+    -3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,
+    -3659,-3659, 3927,-3659,-3659,-3659,-3659,-3659,-3659,-3659,
+    -3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,-3659,
+    -3659,-3659,-3659,-3659,-3659,-3659,-3659, 3927,-3659,-3659,
+    -3659,-3659,-3659,-3659,-3659
+
+    },
+
+    {
+       27,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,
+    -3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,
+    -3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,
+    -3660,-3660, 3928,-3660,-3660,-3660,-3660,-3660,-3660,-3660,
+    -3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,-3660,
+    -3660,-3660,-3660,-3660,-3660,-3660,-3660, 3928,-3660,-3660,
+    -3660,-3660,-3660,-3660,-3660
+    },
+
+    {
+       27,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,
+    -3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,
+    -3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,
+
+    -3661,-3661,-3661, 3929,-3661,-3661,-3661,-3661,-3661,-3661,
+    -3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661,
+    -3661,-3661,-3661,-3661,-3661,-3661,-3661,-3661, 3929,-3661,
+    -3661,-3661,-3661,-3661,-3661
+    },
+
+    {
+       27,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,
+    -3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,
+    -3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,
+    -3662,-3662,-3662, 3930,-3662,-3662,-3662,-3662,-3662,-3662,
+    -3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662,
+    -3662,-3662,-3662,-3662,-3662,-3662,-3662,-3662, 3930,-3662,
+
+    -3662,-3662,-3662,-3662,-3662
+    },
+
+    {
+       27,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,
+    -3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,
+    -3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663, 3931,-3663,
+    -3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,
+    -3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,-3663,
+    -3663,-3663,-3663, 3931,-3663,-3663,-3663,-3663,-3663,-3663,
+    -3663,-3663,-3663,-3663,-3663
+    },
+
+    {
+       27,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,
+    -3664,-3664,-3664,-3664, 3932,-3664,-3664,-3664,-3664,-3664,
+
+    -3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,
+    -3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,
+     3932,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,
+    -3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,-3664,
+    -3664,-3664,-3664,-3664,-3664
+    },
+
+    {
+       27,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,
+    -3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,
+    -3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,
+    -3665, 3933,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,
+    -3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,-3665,
+
+    -3665,-3665,-3665,-3665,-3665,-3665, 3933,-3665,-3665,-3665,
+    -3665,-3665,-3665,-3665,-3665
+    },
+
+    {
+       27,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,
+    -3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,
+    -3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,
+    -3666,-3666,-3666, 3934,-3666,-3666,-3666,-3666,-3666,-3666,
+    -3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666,
+    -3666,-3666,-3666,-3666,-3666,-3666,-3666,-3666, 3934,-3666,
+    -3666,-3666,-3666,-3666,-3666
+    },
+
+    {
+       27,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,
+
+    -3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,
+    -3667,-3667,-3667,-3667,-3667,-3667,-3667, 3935,-3667,-3667,
+    -3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,
+    -3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,-3667,
+    -3667,-3667, 3935,-3667,-3667,-3667,-3667,-3667,-3667,-3667,
+    -3667,-3667,-3667,-3667,-3667
+    },
+
+    {
+       27,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668, 2386,
+    -3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,
+    -3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,
+    -3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,
+
+    -3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,
+    -3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,-3668,
+    -3668,-3668,-3668,-3668,-3668
+    },
+
+    {
+       27,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,
+    -3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,
+    -3669,-3669,-3669,-3669,-3669,-3669,-3669, 3936,-3669,-3669,
+    -3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,
+    -3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,-3669,
+    -3669,-3669, 3936,-3669,-3669,-3669,-3669,-3669,-3669,-3669,
+    -3669,-3669,-3669,-3669,-3669
+
+    },
+
+    {
+       27,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,
+    -3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,
+    -3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,
+    -3670,-3670, 3937,-3670,-3670,-3670,-3670,-3670,-3670,-3670,
+    -3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,-3670,
+    -3670,-3670,-3670,-3670,-3670,-3670,-3670, 3937,-3670,-3670,
+    -3670,-3670,-3670,-3670,-3670
+    },
+
+    {
+       27,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,
+    -3671,-3671,-3671, 3938,-3671,-3671,-3671,-3671,-3671,-3671,
+    -3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,
+
+    -3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,
+    -3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,
+    -3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,-3671,
+    -3671,-3671,-3671,-3671,-3671
+    },
+
+    {
+       27,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,
+    -3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672, 3939,-3672,
+    -3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,
+    -3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,
+    -3672,-3672,-3672,-3672, 3939,-3672,-3672,-3672,-3672,-3672,
+    -3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,-3672,
+
+    -3672,-3672,-3672,-3672,-3672
+    },
+
+    {
+       27,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,
+    -3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,
+    -3673,-3673,-3673,-3673,-3673,-3673, 3940,-3673,-3673,-3673,
+    -3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,
+    -3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,
+    -3673, 3940,-3673,-3673,-3673,-3673,-3673,-3673,-3673,-3673,
+    -3673,-3673,-3673,-3673,-3673
+    },
+
+    {
+       27,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,
+    -3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,
+
+    -3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674, 3941,-3674,
+    -3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,
+    -3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,-3674,
+    -3674,-3674,-3674, 3941,-3674,-3674,-3674,-3674,-3674,-3674,
+    -3674,-3674,-3674,-3674,-3674
+    },
+
+    {
+       27,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,
+    -3675,-3675,-3675,-3675, 3942,-3675,-3675,-3675,-3675,-3675,
+    -3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,
+    -3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,
+     3942,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,
+
+    -3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,-3675,
+    -3675,-3675,-3675,-3675,-3675
+    },
+
+    {
+       27,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,
+    -3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,
+    -3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,
+    -3676, 3943,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,
+    -3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,-3676,
+    -3676,-3676,-3676,-3676,-3676,-3676, 3943,-3676,-3676,-3676,
+    -3676,-3676,-3676,-3676,-3676
+    },
+
+    {
+       27,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,
+
+    -3677,-3677,-3677, 3944,-3677,-3677,-3677,-3677,-3677,-3677,
+    -3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,
+    -3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,
+    -3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,
+    -3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,-3677,
+    -3677,-3677,-3677,-3677,-3677
+    },
+
+    {
+       27,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,
+    -3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,
+    -3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,
+    -3678,-3678, 3945,-3678,-3678,-3678,-3678,-3678,-3678,-3678,
+
+    -3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,-3678,
+    -3678,-3678,-3678,-3678,-3678,-3678,-3678, 3945,-3678,-3678,
+    -3678,-3678,-3678,-3678,-3678
+    },
+
+    {
+       27,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,
+    -3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,
+    -3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679, 3946,-3679,
+    -3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,
+    -3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,-3679,
+    -3679,-3679,-3679, 3946,-3679,-3679,-3679,-3679,-3679,-3679,
+    -3679,-3679,-3679,-3679,-3679
+
+    },
+
+    {
+       27,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,
+    -3680,-3680,-3680,-3680,-3680,-3680, 3947,-3680,-3680,-3680,
+    -3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,
+    -3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,
+    -3680,-3680, 3947,-3680,-3680,-3680,-3680,-3680,-3680,-3680,
+    -3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,-3680,
+    -3680,-3680,-3680,-3680,-3680
+    },
+
+    {
+       27,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,
+    -3681,-3681,-3681,-3681,-3681, 3948,-3681,-3681,-3681,-3681,
+    -3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,
+
+    -3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,
+    -3681, 3948,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,
+    -3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,-3681,
+    -3681,-3681,-3681,-3681,-3681
+    },
+
+    {
+       27,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,
+    -3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,
+    -3682,-3682,-3682,-3682,-3682,-3682,-3682, 3949,-3682,-3682,
+    -3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,
+    -3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,-3682,
+    -3682,-3682, 3949,-3682,-3682,-3682,-3682,-3682,-3682,-3682,
+
+    -3682,-3682,-3682,-3682,-3682
+    },
+
+    {
+       27,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,
+    -3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,
+    -3683,-3683,-3683,-3683,-3683,-3683,-3683, 3950,-3683,-3683,
+    -3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,
+    -3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,-3683,
+    -3683,-3683, 3950,-3683,-3683,-3683,-3683,-3683,-3683,-3683,
+    -3683,-3683,-3683,-3683,-3683
+    },
+
+    {
+       27,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,
+    -3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,
+
+    -3684,-3684,-3684,-3684,-3684,-3684,-3684, 3951,-3684,-3684,
+    -3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,
+    -3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,-3684,
+    -3684,-3684, 3951,-3684,-3684,-3684,-3684,-3684,-3684,-3684,
+    -3684,-3684,-3684,-3684,-3684
+    },
+
+    {
+       27,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,
+    -3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,
+    -3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,
+    -3685,-3685,-3685, 3952,-3685,-3685,-3685,-3685,-3685,-3685,
+    -3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685,
+
+    -3685,-3685,-3685,-3685,-3685,-3685,-3685,-3685, 3952,-3685,
+    -3685,-3685,-3685,-3685,-3685
+    },
+
+    {
+       27,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,
+    -3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,
+    -3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,
+    -3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,
+    -3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,
+    -3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,-3686,
+    -3686,-3686,-3686,-3686,-3686
+    },
+
+    {
+       27,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,
+
+    -3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,
+    -3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,
+    -3687,-3687, 3953,-3687,-3687,-3687,-3687,-3687,-3687,-3687,
+    -3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,-3687,
+    -3687,-3687,-3687,-3687,-3687,-3687,-3687, 3953,-3687,-3687,
+    -3687,-3687,-3687,-3687,-3687
+    },
+
+    {
+       27,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,
+    -3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,
+    -3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,
+    -3688,-3688, 3954,-3688,-3688,-3688,-3688,-3688,-3688,-3688,
+
+    -3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,-3688,
+    -3688,-3688,-3688,-3688,-3688,-3688,-3688, 3954,-3688,-3688,
+    -3688,-3688,-3688,-3688,-3688
+    },
+
+    {
+       27,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,
+    -3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689, 3955,-3689,
+    -3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,
+    -3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,
+    -3689,-3689,-3689,-3689, 3955,-3689,-3689,-3689,-3689,-3689,
+    -3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,-3689,
+    -3689,-3689,-3689,-3689,-3689
+
+    },
+
+    {
+       27,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,
+    -3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690, 3956,-3690,
+    -3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,
+    -3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,
+    -3690,-3690,-3690,-3690, 3956,-3690,-3690,-3690,-3690,-3690,
+    -3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,-3690,
+    -3690,-3690,-3690,-3690,-3690
+    },
+
+    {
+       27,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,
+    -3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,
+    -3691,-3691,-3691,-3691,-3691,-3691, 3957,-3691,-3691,-3691,
+
+    -3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,
+    -3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,
+    -3691, 3957,-3691,-3691,-3691,-3691,-3691,-3691,-3691,-3691,
+    -3691,-3691,-3691,-3691,-3691
+    },
+
+    {
+       27,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,
+    -3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,
+    -3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,
+    -3692,-3692, 3958,-3692,-3692,-3692,-3692,-3692,-3692,-3692,
+    -3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,-3692,
+    -3692,-3692,-3692,-3692,-3692,-3692,-3692, 3958,-3692,-3692,
+
+    -3692,-3692,-3692,-3692,-3692
+    },
+
+    {
+       27,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,
+    -3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,
+    -3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,
+    -3693,-3693, 3959,-3693,-3693,-3693,-3693,-3693,-3693,-3693,
+    -3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,-3693,
+    -3693,-3693,-3693,-3693,-3693,-3693,-3693, 3959,-3693,-3693,
+    -3693,-3693,-3693,-3693,-3693
+    },
+
+    {
+       27,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,
+    -3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,
+
+    -3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,
+    -3694,-3694,-3694, 3960,-3694,-3694,-3694,-3694,-3694,-3694,
+    -3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694,
+    -3694,-3694,-3694,-3694,-3694,-3694,-3694,-3694, 3960,-3694,
+    -3694,-3694,-3694,-3694,-3694
+    },
+
+    {
+       27,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,
+    -3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,
+    -3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,
+    -3695,-3695,-3695, 3961,-3695,-3695,-3695,-3695,-3695,-3695,
+    -3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695,
+
+    -3695,-3695,-3695,-3695,-3695,-3695,-3695,-3695, 3961,-3695,
+    -3695,-3695,-3695,-3695,-3695
+    },
+
+    {
+       27,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,
+    -3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,
+    -3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696, 3962,-3696,
+    -3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,
+    -3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,-3696,
+    -3696,-3696,-3696, 3962,-3696,-3696,-3696,-3696,-3696,-3696,
+    -3696,-3696,-3696,-3696,-3696
+    },
+
+    {
+       27,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,
+
+    -3697,-3697,-3697,-3697, 3963,-3697,-3697,-3697,-3697,-3697,
+    -3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,
+    -3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,
+     3963,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,
+    -3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,-3697,
+    -3697,-3697,-3697,-3697,-3697
+    },
+
+    {
+       27,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,
+    -3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,
+    -3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,
+    -3698, 3964,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,
+
+    -3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,-3698,
+    -3698,-3698,-3698,-3698,-3698,-3698, 3964,-3698,-3698,-3698,
+    -3698,-3698,-3698,-3698,-3698
+    },
+
+    {
+       27,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,
+    -3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,
+    -3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,
+    -3699,-3699,-3699, 3965,-3699,-3699,-3699,-3699,-3699,-3699,
+    -3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699,
+    -3699,-3699,-3699,-3699,-3699,-3699,-3699,-3699, 3965,-3699,
+    -3699,-3699,-3699,-3699,-3699
+
+    },
+
+    {
+       27,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,
+    -3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,
+    -3700,-3700,-3700,-3700,-3700,-3700,-3700, 3966,-3700,-3700,
+    -3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,
+    -3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,-3700,
+    -3700,-3700, 3966,-3700,-3700,-3700,-3700,-3700,-3700,-3700,
+    -3700,-3700,-3700,-3700,-3700
+    },
+
+    {
+       27,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701, 2426,
+    -3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,
+    -3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,
+
+    -3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,
+    -3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,
+    -3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,-3701,
+    -3701,-3701,-3701,-3701,-3701
+    },
+
+    {
+       27,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,
+    -3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,
+    -3702,-3702,-3702,-3702,-3702,-3702,-3702, 3967,-3702,-3702,
+    -3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,
+    -3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,-3702,
+    -3702,-3702, 3967,-3702,-3702,-3702,-3702,-3702,-3702,-3702,
+
+    -3702,-3702,-3702,-3702,-3702
+    },
+
+    {
+       27,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,
+    -3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,
+    -3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,
+    -3703,-3703, 3968,-3703,-3703,-3703,-3703,-3703,-3703,-3703,
+    -3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,-3703,
+    -3703,-3703,-3703,-3703,-3703,-3703,-3703, 3968,-3703,-3703,
+    -3703,-3703,-3703,-3703,-3703
+    },
+
+    {
+       27,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,
+    -3704,-3704,-3704, 3969,-3704,-3704,-3704,-3704,-3704,-3704,
+
+    -3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,
+    -3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,
+    -3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,
+    -3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,-3704,
+    -3704,-3704,-3704,-3704,-3704
+    },
+
+    {
+       27,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,
+    -3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705, 3970,-3705,
+    -3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,
+    -3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,
+    -3705,-3705,-3705,-3705, 3970,-3705,-3705,-3705,-3705,-3705,
+
+    -3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,-3705,
+    -3705,-3705,-3705,-3705,-3705
+    },
+
+    {
+       27,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,
+    -3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,
+    -3706,-3706,-3706,-3706,-3706,-3706, 3971,-3706,-3706,-3706,
+    -3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,
+    -3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,
+    -3706, 3971,-3706,-3706,-3706,-3706,-3706,-3706,-3706,-3706,
+    -3706,-3706,-3706,-3706,-3706
+    },
+
+    {
+       27,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,
+
+    -3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,
+    -3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707, 3972,-3707,
+    -3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,
+    -3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,-3707,
+    -3707,-3707,-3707, 3972,-3707,-3707,-3707,-3707,-3707,-3707,
+    -3707,-3707,-3707,-3707,-3707
+    },
+
+    {
+       27,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,
+    -3708,-3708,-3708,-3708, 3973,-3708,-3708,-3708,-3708,-3708,
+    -3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,
+    -3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,
+
+     3973,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,
+    -3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,-3708,
+    -3708,-3708,-3708,-3708,-3708
+    },
+
+    {
+       27,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,
+    -3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,
+    -3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,
+    -3709, 3974,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,
+    -3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,-3709,
+    -3709,-3709,-3709,-3709,-3709,-3709, 3974,-3709,-3709,-3709,
+    -3709,-3709,-3709,-3709,-3709
+
+    },
+
+    {
+       27,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,
+    -3710,-3710,-3710, 3975,-3710,-3710,-3710,-3710,-3710,-3710,
+    -3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,
+    -3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,
+    -3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,
+    -3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,-3710,
+    -3710,-3710,-3710,-3710,-3710
+    },
+
+    {
+       27,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,
+    -3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,
+    -3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,
+
+    -3711,-3711, 3976,-3711,-3711,-3711,-3711,-3711,-3711,-3711,
+    -3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,-3711,
+    -3711,-3711,-3711,-3711,-3711,-3711,-3711, 3976,-3711,-3711,
+    -3711,-3711,-3711,-3711,-3711
+    },
+
+    {
+       27,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,
+    -3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,
+    -3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712, 3977,-3712,
+    -3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,
+    -3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,-3712,
+    -3712,-3712,-3712, 3977,-3712,-3712,-3712,-3712,-3712,-3712,
+
+    -3712,-3712,-3712,-3712,-3712
+    },
+
+    {
+       27,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,
+    -3713,-3713,-3713,-3713,-3713,-3713, 3978,-3713,-3713,-3713,
+    -3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,
+    -3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,
+    -3713,-3713, 3978,-3713,-3713,-3713,-3713,-3713,-3713,-3713,
+    -3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,-3713,
+    -3713,-3713,-3713,-3713,-3713
+    },
+
+    {
+       27,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,
+    -3714,-3714,-3714,-3714,-3714, 3979,-3714,-3714,-3714,-3714,
+
+    -3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,
+    -3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,
+    -3714, 3979,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,
+    -3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,-3714,
+    -3714,-3714,-3714,-3714,-3714
+    },
+
+    {
+       27,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,
+    -3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,
+    -3715,-3715,-3715,-3715,-3715,-3715,-3715, 3980,-3715,-3715,
+    -3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,
+    -3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,-3715,
+
+    -3715,-3715, 3980,-3715,-3715,-3715,-3715,-3715,-3715,-3715,
+    -3715,-3715,-3715,-3715,-3715
+    },
+
+    {
+       27,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,
+    -3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,
+    -3716,-3716,-3716,-3716,-3716,-3716,-3716, 3981,-3716,-3716,
+    -3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,
+    -3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,-3716,
+    -3716,-3716, 3981,-3716,-3716,-3716,-3716,-3716,-3716,-3716,
+    -3716,-3716,-3716,-3716,-3716
+    },
+
+    {
+       27,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,
+
+    -3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,
+    -3717,-3717,-3717,-3717,-3717,-3717,-3717, 3982,-3717,-3717,
+    -3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,
+    -3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,-3717,
+    -3717,-3717, 3982,-3717,-3717,-3717,-3717,-3717,-3717,-3717,
+    -3717,-3717,-3717,-3717,-3717
+    },
+
+    {
+       27,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,
+    -3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,
+    -3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,
+    -3718,-3718,-3718, 3983,-3718,-3718,-3718,-3718,-3718,-3718,
+
+    -3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718,
+    -3718,-3718,-3718,-3718,-3718,-3718,-3718,-3718, 3983,-3718,
+    -3718,-3718,-3718,-3718,-3718
+    },
+
+    {
+       27,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,
+    -3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,
+    -3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,
+    -3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,
+    -3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,
+    -3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,-3719,
+    -3719,-3719,-3719,-3719,-3719
+
+    },
+
+    {
+       27,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,
+    -3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,
+    -3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,
+    -3720,-3720, 3984,-3720,-3720,-3720,-3720,-3720,-3720,-3720,
+    -3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,-3720,
+    -3720,-3720,-3720,-3720,-3720,-3720,-3720, 3984,-3720,-3720,
+    -3720,-3720,-3720,-3720,-3720
+    },
+
+    {
+       27,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,
+    -3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,
+    -3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,
+
+    -3721,-3721, 3985,-3721,-3721,-3721,-3721,-3721,-3721,-3721,
+    -3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,-3721,
+    -3721,-3721,-3721,-3721,-3721,-3721,-3721, 3985,-3721,-3721,
+    -3721,-3721,-3721,-3721,-3721
+    },
+
+    {
+       27,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,
+    -3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722, 3986,-3722,
+    -3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,
+    -3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,
+    -3722,-3722,-3722,-3722, 3986,-3722,-3722,-3722,-3722,-3722,
+    -3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,-3722,
+
+    -3722,-3722,-3722,-3722,-3722
+    },
+
+    {
+       27,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,
+    -3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723, 3987,-3723,
+    -3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,
+    -3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,
+    -3723,-3723,-3723,-3723, 3987,-3723,-3723,-3723,-3723,-3723,
+    -3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,-3723,
+    -3723,-3723,-3723,-3723,-3723
+    },
+
+    {
+       27,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,
+    -3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,
+
+    -3724,-3724,-3724,-3724,-3724,-3724, 3988,-3724,-3724,-3724,
+    -3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,
+    -3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,
+    -3724, 3988,-3724,-3724,-3724,-3724,-3724,-3724,-3724,-3724,
+    -3724,-3724,-3724,-3724,-3724
+    },
+
+    {
+       27,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,
+    -3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,
+    -3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,
+    -3725,-3725, 3989,-3725,-3725,-3725,-3725,-3725,-3725,-3725,
+    -3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,-3725,
+
+    -3725,-3725,-3725,-3725,-3725,-3725,-3725, 3989,-3725,-3725,
+    -3725,-3725,-3725,-3725,-3725
+    },
+
+    {
+       27,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,
+    -3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,
+    -3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,
+    -3726,-3726, 3990,-3726,-3726,-3726,-3726,-3726,-3726,-3726,
+    -3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,-3726,
+    -3726,-3726,-3726,-3726,-3726,-3726,-3726, 3990,-3726,-3726,
+    -3726,-3726,-3726,-3726,-3726
+    },
+
+    {
+       27,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,
+
+    -3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,
+    -3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,
+    -3727,-3727,-3727, 3991,-3727,-3727,-3727,-3727,-3727,-3727,
+    -3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727,
+    -3727,-3727,-3727,-3727,-3727,-3727,-3727,-3727, 3991,-3727,
+    -3727,-3727,-3727,-3727,-3727
+    },
+
+    {
+       27,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,
+    -3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,
+    -3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,
+    -3728,-3728,-3728, 3992,-3728,-3728,-3728,-3728,-3728,-3728,
+
+    -3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728,
+    -3728,-3728,-3728,-3728,-3728,-3728,-3728,-3728, 3992,-3728,
+    -3728,-3728,-3728,-3728,-3728
+    },
+
+    {
+       27,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,
+    -3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,
+    -3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729, 3993,-3729,
+    -3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,
+    -3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,-3729,
+    -3729,-3729,-3729, 3993,-3729,-3729,-3729,-3729,-3729,-3729,
+    -3729,-3729,-3729,-3729,-3729
+
+    },
+
+    {
+       27,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,
+    -3730,-3730,-3730,-3730, 3994,-3730,-3730,-3730,-3730,-3730,
+    -3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,
+    -3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,
+     3994,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,
+    -3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,-3730,
+    -3730,-3730,-3730,-3730,-3730
+    },
+
+    {
+       27,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,
+    -3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,
+    -3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,
+
+    -3731, 3995,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,
+    -3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,-3731,
+    -3731,-3731,-3731,-3731,-3731,-3731, 3995,-3731,-3731,-3731,
+    -3731,-3731,-3731,-3731,-3731
+    },
+
+    {
+       27,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,
+    -3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,
+    -3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,
+    -3732,-3732,-3732, 3996,-3732,-3732,-3732,-3732,-3732,-3732,
+    -3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732,
+    -3732,-3732,-3732,-3732,-3732,-3732,-3732,-3732, 3996,-3732,
+
+    -3732,-3732,-3732,-3732,-3732
+    },
+
+    {
+       27,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,
+    -3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,
+    -3733,-3733,-3733,-3733,-3733,-3733,-3733, 3997,-3733,-3733,
+    -3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,
+    -3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,-3733,
+    -3733,-3733, 3997,-3733,-3733,-3733,-3733,-3733,-3733,-3733,
+    -3733,-3733,-3733,-3733,-3733
+    },
+
+    {
+       27,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734, 2467,
+    -3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,
+
+    -3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,
+    -3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,
+    -3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,
+    -3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,-3734,
+    -3734,-3734,-3734,-3734,-3734
+    },
+
+    {
+       27,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,
+    -3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,
+    -3735,-3735,-3735,-3735,-3735,-3735,-3735, 3998,-3735,-3735,
+    -3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,
+    -3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,-3735,
+
+    -3735,-3735, 3998,-3735,-3735,-3735,-3735,-3735,-3735,-3735,
+    -3735,-3735,-3735,-3735,-3735
+    },
+
+    {
+       27,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,
+    -3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,
+    -3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,
+    -3736,-3736, 3999,-3736,-3736,-3736,-3736,-3736,-3736,-3736,
+    -3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,-3736,
+    -3736,-3736,-3736,-3736,-3736,-3736,-3736, 3999,-3736,-3736,
+    -3736,-3736,-3736,-3736,-3736
+    },
+
+    {
+       27,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,
+
+    -3737,-3737,-3737, 4000,-3737,-3737,-3737,-3737,-3737,-3737,
+    -3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,
+    -3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,
+    -3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,
+    -3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,-3737,
+    -3737,-3737,-3737,-3737,-3737
+    },
+
+    {
+       27,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,
+    -3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738, 4001,-3738,
+    -3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,
+    -3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,
+
+    -3738,-3738,-3738,-3738, 4001,-3738,-3738,-3738,-3738,-3738,
+    -3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,-3738,
+    -3738,-3738,-3738,-3738,-3738
+    },
+
+    {
+       27,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,
+    -3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,
+    -3739,-3739,-3739,-3739,-3739,-3739, 4002,-3739,-3739,-3739,
+    -3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,
+    -3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,
+    -3739, 4002,-3739,-3739,-3739,-3739,-3739,-3739,-3739,-3739,
+    -3739,-3739,-3739,-3739,-3739
+
+    },
+
+    {
+       27,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,
+    -3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,
+    -3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740, 4003,-3740,
+    -3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,
+    -3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,-3740,
+    -3740,-3740,-3740, 4003,-3740,-3740,-3740,-3740,-3740,-3740,
+    -3740,-3740,-3740,-3740,-3740
+    },
+
+    {
+       27,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,
+    -3741,-3741,-3741,-3741, 4004,-3741,-3741,-3741,-3741,-3741,
+    -3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,
+
+    -3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,
+     4004,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,
+    -3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,-3741,
+    -3741,-3741,-3741,-3741,-3741
+    },
+
+    {
+       27,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,
+    -3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,
+    -3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,
+    -3742, 4005,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,
+    -3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,-3742,
+    -3742,-3742,-3742,-3742,-3742,-3742, 4005,-3742,-3742,-3742,
+
+    -3742,-3742,-3742,-3742,-3742
+    },
+
+    {
+       27,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,
+    -3743,-3743,-3743, 4006,-3743,-3743,-3743,-3743,-3743,-3743,
+    -3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,
+    -3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,
+    -3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,
+    -3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,-3743,
+    -3743,-3743,-3743,-3743,-3743
+    },
+
+    {
+       27,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,
+    -3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,
+
+    -3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,
+    -3744,-3744, 4007,-3744,-3744,-3744,-3744,-3744,-3744,-3744,
+    -3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,-3744,
+    -3744,-3744,-3744,-3744,-3744,-3744,-3744, 4007,-3744,-3744,
+    -3744,-3744,-3744,-3744,-3744
+    },
+
+    {
+       27,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,
+    -3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,
+    -3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745, 4008,-3745,
+    -3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,
+    -3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,-3745,
+
+    -3745,-3745,-3745, 4008,-3745,-3745,-3745,-3745,-3745,-3745,
+    -3745,-3745,-3745,-3745,-3745
+    },
+
+    {
+       27,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,
+    -3746,-3746,-3746,-3746,-3746,-3746, 4009,-3746,-3746,-3746,
+    -3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,
+    -3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,
+    -3746,-3746, 4009,-3746,-3746,-3746,-3746,-3746,-3746,-3746,
+    -3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,-3746,
+    -3746,-3746,-3746,-3746,-3746
+    },
+
+    {
+       27,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,
+
+    -3747,-3747,-3747,-3747,-3747, 4010,-3747,-3747,-3747,-3747,
+    -3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,
+    -3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,
+    -3747, 4010,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,
+    -3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,-3747,
+    -3747,-3747,-3747,-3747,-3747
+    },
+
+    {
+       27,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,
+    -3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,
+    -3748,-3748,-3748,-3748,-3748,-3748,-3748, 4011,-3748,-3748,
+    -3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,
+
+    -3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,-3748,
+    -3748,-3748, 4011,-3748,-3748,-3748,-3748,-3748,-3748,-3748,
+    -3748,-3748,-3748,-3748,-3748
+    },
+
+    {
+       27,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,
+    -3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,
+    -3749,-3749,-3749,-3749,-3749,-3749,-3749, 4012,-3749,-3749,
+    -3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,
+    -3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,-3749,
+    -3749,-3749, 4012,-3749,-3749,-3749,-3749,-3749,-3749,-3749,
+    -3749,-3749,-3749,-3749,-3749
+
+    },
+
+    {
+       27,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,
+    -3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,
+    -3750,-3750,-3750,-3750,-3750,-3750,-3750, 4013,-3750,-3750,
+    -3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,
+    -3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,-3750,
+    -3750,-3750, 4013,-3750,-3750,-3750,-3750,-3750,-3750,-3750,
+    -3750,-3750,-3750,-3750,-3750
+    },
+
+    {
+       27,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,
+    -3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,
+    -3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,
+
+    -3751,-3751,-3751, 4014,-3751,-3751,-3751,-3751,-3751,-3751,
+    -3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751,
+    -3751,-3751,-3751,-3751,-3751,-3751,-3751,-3751, 4014,-3751,
+    -3751,-3751,-3751,-3751,-3751
+    },
+
+    {
+       27,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,
+    -3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,
+    -3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,
+    -3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,
+    -3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,
+    -3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,-3752,
+
+    -3752,-3752,-3752,-3752,-3752
+    },
+
+    {
+       27,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,
+    -3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,
+    -3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,
+    -3753,-3753, 4015,-3753,-3753,-3753,-3753,-3753,-3753,-3753,
+    -3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,-3753,
+    -3753,-3753,-3753,-3753,-3753,-3753,-3753, 4015,-3753,-3753,
+    -3753,-3753,-3753,-3753,-3753
+    },
+
+    {
+       27,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,
+    -3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,
+
+    -3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,
+    -3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,
+    -3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,
+    -3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,-3754,
+    -3754,-3754,-3754,-3754,-3754
+    },
+
+    {
+       27,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,
+    -3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,
+    -3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,
+    -3755,-3755, 4016,-3755,-3755,-3755,-3755,-3755,-3755,-3755,
+    -3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,-3755,
+
+    -3755,-3755,-3755,-3755,-3755,-3755,-3755, 4016,-3755,-3755,
+    -3755,-3755,-3755,-3755,-3755
+    },
+
+    {
+       27,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,
+    -3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756, 4017,-3756,
+    -3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,
+    -3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,
+    -3756,-3756,-3756,-3756, 4017,-3756,-3756,-3756,-3756,-3756,
+    -3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,-3756,
+    -3756,-3756,-3756,-3756,-3756
+    },
+
+    {
+       27,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,
+
+    -3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757, 4018,-3757,
+    -3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,
+    -3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,
+    -3757,-3757,-3757,-3757, 4018,-3757,-3757,-3757,-3757,-3757,
+    -3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,-3757,
+    -3757,-3757,-3757,-3757,-3757
+    },
+
+    {
+       27,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,
+    -3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,
+    -3758,-3758,-3758,-3758,-3758,-3758, 4019,-3758,-3758,-3758,
+    -3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,
+
+    -3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,
+    -3758, 4019,-3758,-3758,-3758,-3758,-3758,-3758,-3758,-3758,
+    -3758,-3758,-3758,-3758,-3758
+    },
+
+    {
+       27,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,
+    -3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,
+    -3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,
+    -3759,-3759, 4020,-3759,-3759,-3759,-3759,-3759,-3759,-3759,
+    -3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,-3759,
+    -3759,-3759,-3759,-3759,-3759,-3759,-3759, 4020,-3759,-3759,
+    -3759,-3759,-3759,-3759,-3759
+
+    },
+
+    {
+       27,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,
+    -3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,
+    -3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,
+    -3760,-3760, 4021,-3760,-3760,-3760,-3760,-3760,-3760,-3760,
+    -3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,-3760,
+    -3760,-3760,-3760,-3760,-3760,-3760,-3760, 4021,-3760,-3760,
+    -3760,-3760,-3760,-3760,-3760
+    },
+
+    {
+       27,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,
+    -3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,
+    -3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,
+
+    -3761,-3761,-3761, 4022,-3761,-3761,-3761,-3761,-3761,-3761,
+    -3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761,
+    -3761,-3761,-3761,-3761,-3761,-3761,-3761,-3761, 4022,-3761,
+    -3761,-3761,-3761,-3761,-3761
+    },
+
+    {
+       27,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,
+    -3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,
+    -3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,
+    -3762,-3762,-3762, 4023,-3762,-3762,-3762,-3762,-3762,-3762,
+    -3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762,
+    -3762,-3762,-3762,-3762,-3762,-3762,-3762,-3762, 4023,-3762,
+
+    -3762,-3762,-3762,-3762,-3762
+    },
+
+    {
+       27,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,
+    -3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,
+    -3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763, 4024,-3763,
+    -3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,
+    -3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,-3763,
+    -3763,-3763,-3763, 4024,-3763,-3763,-3763,-3763,-3763,-3763,
+    -3763,-3763,-3763,-3763,-3763
+    },
+
+    {
+       27,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,
+    -3764,-3764,-3764,-3764, 4025,-3764,-3764,-3764,-3764,-3764,
+
+    -3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,
+    -3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,
+     4025,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,
+    -3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,-3764,
+    -3764,-3764,-3764,-3764,-3764
+    },
+
+    {
+       27,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,
+    -3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,
+    -3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,
+    -3765, 4026,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,
+    -3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,-3765,
+
+    -3765,-3765,-3765,-3765,-3765,-3765, 4026,-3765,-3765,-3765,
+    -3765,-3765,-3765,-3765,-3765
+    },
+
+    {
+       27,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,
+    -3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,
+    -3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,
+    -3766,-3766,-3766, 4027,-3766,-3766,-3766,-3766,-3766,-3766,
+    -3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766,
+    -3766,-3766,-3766,-3766,-3766,-3766,-3766,-3766, 4027,-3766,
+    -3766,-3766,-3766,-3766,-3766
+    },
+
+    {
+       27,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,
+
+    -3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,
+    -3767,-3767,-3767,-3767,-3767,-3767,-3767, 4028,-3767,-3767,
+    -3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,
+    -3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,-3767,
+    -3767,-3767, 4028,-3767,-3767,-3767,-3767,-3767,-3767,-3767,
+    -3767,-3767,-3767,-3767,-3767
+    },
+
+    {
+       27,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768, 2508,
+    -3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,
+    -3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,
+    -3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,
+
+    -3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,
+    -3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,-3768,
+    -3768,-3768,-3768,-3768,-3768
+    },
+
+    {
+       27,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,
+    -3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,
+    -3769,-3769,-3769,-3769,-3769,-3769,-3769, 4029,-3769,-3769,
+    -3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,
+    -3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,-3769,
+    -3769,-3769, 4029,-3769,-3769,-3769,-3769,-3769,-3769,-3769,
+    -3769,-3769,-3769,-3769,-3769
+
+    },
+
+    {
+       27,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,
+    -3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,
+    -3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,
+    -3770,-3770, 4030,-3770,-3770,-3770,-3770,-3770,-3770,-3770,
+    -3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,-3770,
+    -3770,-3770,-3770,-3770,-3770,-3770,-3770, 4030,-3770,-3770,
+    -3770,-3770,-3770,-3770,-3770
+    },
+
+    {
+       27,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,
+    -3771,-3771,-3771, 4031,-3771,-3771,-3771,-3771,-3771,-3771,
+    -3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,
+
+    -3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,
+    -3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,
+    -3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,-3771,
+    -3771,-3771,-3771,-3771,-3771
+    },
+
+    {
+       27,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,
+    -3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772, 4032,-3772,
+    -3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,
+    -3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,
+    -3772,-3772,-3772,-3772, 4032,-3772,-3772,-3772,-3772,-3772,
+    -3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,-3772,
+
+    -3772,-3772,-3772,-3772,-3772
+    },
+
+    {
+       27,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,
+    -3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,
+    -3773,-3773,-3773,-3773,-3773,-3773, 4033,-3773,-3773,-3773,
+    -3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,
+    -3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,
+    -3773, 4033,-3773,-3773,-3773,-3773,-3773,-3773,-3773,-3773,
+    -3773,-3773,-3773,-3773,-3773
+    },
+
+    {
+       27,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,
+    -3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,
+
+    -3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774, 4034,-3774,
+    -3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,
+    -3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,-3774,
+    -3774,-3774,-3774, 4034,-3774,-3774,-3774,-3774,-3774,-3774,
+    -3774,-3774,-3774,-3774,-3774
+    },
+
+    {
+       27,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,
+    -3775,-3775,-3775,-3775, 4035,-3775,-3775,-3775,-3775,-3775,
+    -3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,
+    -3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,
+     4035,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,
+
+    -3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,-3775,
+    -3775,-3775,-3775,-3775,-3775
+    },
+
+    {
+       27,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,
+    -3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,
+    -3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,
+    -3776, 4036,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,
+    -3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,-3776,
+    -3776,-3776,-3776,-3776,-3776,-3776, 4036,-3776,-3776,-3776,
+    -3776,-3776,-3776,-3776,-3776
+    },
+
+    {
+       27,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,
+
+    -3777,-3777,-3777, 4037,-3777,-3777,-3777,-3777,-3777,-3777,
+    -3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,
+    -3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,
+    -3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,
+    -3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,
+    -3777,-3777,-3777,-3777,-3777
+    },
+
+    {
+       27,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,
+    -3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,
+    -3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,
+    -3778,-3778, 4038,-3778,-3778,-3778,-3778,-3778,-3778,-3778,
+
+    -3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,-3778,
+    -3778,-3778,-3778,-3778,-3778,-3778,-3778, 4038,-3778,-3778,
+    -3778,-3778,-3778,-3778,-3778
+    },
+
+    {
+       27,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,
+    -3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,
+    -3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779, 4039,-3779,
+    -3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,
+    -3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,-3779,
+    -3779,-3779,-3779, 4039,-3779,-3779,-3779,-3779,-3779,-3779,
+    -3779,-3779,-3779,-3779,-3779
+
+    },
+
+    {
+       27,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,
+    -3780,-3780,-3780,-3780,-3780,-3780, 4040,-3780,-3780,-3780,
+    -3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,
+    -3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,
+    -3780,-3780, 4040,-3780,-3780,-3780,-3780,-3780,-3780,-3780,
+    -3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,-3780,
+    -3780,-3780,-3780,-3780,-3780
+    },
+
+    {
+       27,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,
+    -3781,-3781,-3781,-3781,-3781, 4041,-3781,-3781,-3781,-3781,
+    -3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,
+
+    -3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,
+    -3781, 4041,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,
+    -3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,-3781,
+    -3781,-3781,-3781,-3781,-3781
+    },
+
+    {
+       27,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,
+    -3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,
+    -3782,-3782,-3782,-3782,-3782,-3782,-3782, 4042,-3782,-3782,
+    -3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,
+    -3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,-3782,
+    -3782,-3782, 4042,-3782,-3782,-3782,-3782,-3782,-3782,-3782,
+
+    -3782,-3782,-3782,-3782,-3782
+    },
+
+    {
+       27,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,
+    -3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,
+    -3783,-3783,-3783,-3783,-3783,-3783,-3783, 4043,-3783,-3783,
+    -3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,
+    -3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,-3783,
+    -3783,-3783, 4043,-3783,-3783,-3783,-3783,-3783,-3783,-3783,
+    -3783,-3783,-3783,-3783,-3783
+    },
+
+    {
+       27,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,
+    -3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,
+
+    -3784,-3784,-3784,-3784,-3784,-3784,-3784, 4044,-3784,-3784,
+    -3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,
+    -3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,-3784,
+    -3784,-3784, 4044,-3784,-3784,-3784,-3784,-3784,-3784,-3784,
+    -3784,-3784,-3784,-3784,-3784
+    },
+
+    {
+       27,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,
+    -3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,
+    -3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,
+    -3785,-3785,-3785, 4045,-3785,-3785,-3785,-3785,-3785,-3785,
+    -3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785,
+
+    -3785,-3785,-3785,-3785,-3785,-3785,-3785,-3785, 4045,-3785,
+    -3785,-3785,-3785,-3785,-3785
+    },
+
+    {
+       27,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,
+    -3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,
+    -3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,
+    -3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,
+    -3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,
+    -3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,-3786,
+    -3786,-3786,-3786,-3786,-3786
+    },
+
+    {
+       27,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,
+
+    -3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,
+    -3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,
+    -3787,-3787, 4046,-3787,-3787,-3787,-3787,-3787,-3787,-3787,
+    -3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,-3787,
+    -3787,-3787,-3787,-3787,-3787,-3787,-3787, 4046,-3787,-3787,
+    -3787,-3787,-3787,-3787,-3787
+    },
+
+    {
+       27,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,
+    -3788,-3788,-3788, 2531,-3788,-3788,-3788,-3788,-3788,-3788,
+    -3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,
+    -3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,
+
+    -3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,
+    -3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,-3788,
+    -3788,-3788,-3788,-3788,-3788
+    },
+
+    {
+       27,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,
+    -3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,
+    -3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,
+    -3789,-3789, 4047,-3789,-3789,-3789,-3789,-3789,-3789,-3789,
+    -3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,-3789,
+    -3789,-3789,-3789,-3789,-3789,-3789,-3789, 4047,-3789,-3789,
+    -3789,-3789,-3789,-3789,-3789
+
+    },
+
+    {
+       27,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,
+    -3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790, 4048,-3790,
+    -3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,
+    -3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,
+    -3790,-3790,-3790,-3790, 4048,-3790,-3790,-3790,-3790,-3790,
+    -3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,-3790,
+    -3790,-3790,-3790,-3790,-3790
+    },
+
+    {
+       27,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,
+    -3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791, 4049,-3791,
+    -3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,
+
+    -3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,
+    -3791,-3791,-3791,-3791, 4049,-3791,-3791,-3791,-3791,-3791,
+    -3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,-3791,
+    -3791,-3791,-3791,-3791,-3791
+    },
+
+    {
+       27,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,
+    -3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,
+    -3792,-3792,-3792,-3792,-3792,-3792, 4050,-3792,-3792,-3792,
+    -3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,
+    -3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,
+    -3792, 4050,-3792,-3792,-3792,-3792,-3792,-3792,-3792,-3792,
+
+    -3792,-3792,-3792,-3792,-3792
+    },
+
+    {
+       27,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,
+    -3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,
+    -3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,
+    -3793,-3793, 4051,-3793,-3793,-3793,-3793,-3793,-3793,-3793,
+    -3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,-3793,
+    -3793,-3793,-3793,-3793,-3793,-3793,-3793, 4051,-3793,-3793,
+    -3793,-3793,-3793,-3793,-3793
+    },
+
+    {
+       27,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,
+    -3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,
+
+    -3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,
+    -3794,-3794, 4052,-3794,-3794,-3794,-3794,-3794,-3794,-3794,
+    -3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,-3794,
+    -3794,-3794,-3794,-3794,-3794,-3794,-3794, 4052,-3794,-3794,
+    -3794,-3794,-3794,-3794,-3794
+    },
+
+    {
+       27,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,
+    -3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,
+    -3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,
+    -3795,-3795,-3795, 4053,-3795,-3795,-3795,-3795,-3795,-3795,
+    -3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795,
+
+    -3795,-3795,-3795,-3795,-3795,-3795,-3795,-3795, 4053,-3795,
+    -3795,-3795,-3795,-3795,-3795
+    },
+
+    {
+       27,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,
+    -3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,
+    -3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,
+    -3796,-3796,-3796, 4054,-3796,-3796,-3796,-3796,-3796,-3796,
+    -3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796,
+    -3796,-3796,-3796,-3796,-3796,-3796,-3796,-3796, 4054,-3796,
+    -3796,-3796,-3796,-3796,-3796
+    },
+
+    {
+       27,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,
+
+    -3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,
+    -3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797, 4055,-3797,
+    -3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,
+    -3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,-3797,
+    -3797,-3797,-3797, 4055,-3797,-3797,-3797,-3797,-3797,-3797,
+    -3797,-3797,-3797,-3797,-3797
+    },
+
+    {
+       27,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,
+    -3798,-3798,-3798,-3798, 4056,-3798,-3798,-3798,-3798,-3798,
+    -3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,
+    -3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,
+
+     4056,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,
+    -3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,-3798,
+    -3798,-3798,-3798,-3798,-3798
+    },
+
+    {
+       27,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,
+    -3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,
+    -3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,
+    -3799, 4057,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,
+    -3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,-3799,
+    -3799,-3799,-3799,-3799,-3799,-3799, 4057,-3799,-3799,-3799,
+    -3799,-3799,-3799,-3799,-3799
+
+    },
+
+    {
+       27,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,
+    -3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,
+    -3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,
+    -3800,-3800,-3800, 4058,-3800,-3800,-3800,-3800,-3800,-3800,
+    -3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800,
+    -3800,-3800,-3800,-3800,-3800,-3800,-3800,-3800, 4058,-3800,
+    -3800,-3800,-3800,-3800,-3800
+    },
+
+    {
+       27,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,
+    -3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,
+    -3801,-3801,-3801,-3801,-3801,-3801,-3801, 4059,-3801,-3801,
+
+    -3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,
+    -3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,-3801,
+    -3801,-3801, 4059,-3801,-3801,-3801,-3801,-3801,-3801,-3801,
+    -3801,-3801,-3801,-3801,-3801
+    },
+
+    {
+       27,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802, 2550,
+    -3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,
+    -3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,
+    -3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,
+    -3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,
+    -3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,-3802,
+
+    -3802,-3802,-3802,-3802,-3802
+    },
+
+    {
+       27,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,
+    -3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,
+    -3803,-3803,-3803,-3803,-3803,-3803,-3803, 4060,-3803,-3803,
+    -3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,
+    -3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,-3803,
+    -3803,-3803, 4060,-3803,-3803,-3803,-3803,-3803,-3803,-3803,
+    -3803,-3803,-3803,-3803,-3803
+    },
+
+    {
+       27,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,
+    -3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,
+
+    -3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,
+    -3804,-3804, 4061,-3804,-3804,-3804,-3804,-3804,-3804,-3804,
+    -3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,-3804,
+    -3804,-3804,-3804,-3804,-3804,-3804,-3804, 4061,-3804,-3804,
+    -3804,-3804,-3804,-3804,-3804
+    },
+
+    {
+       27,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,
+    -3805,-3805,-3805, 4062,-3805,-3805,-3805,-3805,-3805,-3805,
+    -3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,
+    -3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,
+    -3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,
+
+    -3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,-3805,
+    -3805,-3805,-3805,-3805,-3805
+    },
+
+    {
+       27,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,
+    -3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806, 4063,-3806,
+    -3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,
+    -3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,
+    -3806,-3806,-3806,-3806, 4063,-3806,-3806,-3806,-3806,-3806,
+    -3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,-3806,
+    -3806,-3806,-3806,-3806,-3806
+    },
+
+    {
+       27,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,
+
+    -3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,
+    -3807,-3807,-3807,-3807,-3807,-3807, 4064,-3807,-3807,-3807,
+    -3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,
+    -3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,
+    -3807, 4064,-3807,-3807,-3807,-3807,-3807,-3807,-3807,-3807,
+    -3807,-3807,-3807,-3807,-3807
+    },
+
+    {
+       27,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,
+    -3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,
+    -3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808, 4065,-3808,
+    -3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,
+
+    -3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,-3808,
+    -3808,-3808,-3808, 4065,-3808,-3808,-3808,-3808,-3808,-3808,
+    -3808,-3808,-3808,-3808,-3808
+    },
+
+    {
+       27,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,
+    -3809,-3809,-3809,-3809, 4066,-3809,-3809,-3809,-3809,-3809,
+    -3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,
+    -3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,
+     4066,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,
+    -3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,-3809,
+    -3809,-3809,-3809,-3809,-3809
+
+    },
+
+    {
+       27,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,
+    -3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,
+    -3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,
+    -3810, 4067,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,
+    -3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,-3810,
+    -3810,-3810,-3810,-3810,-3810,-3810, 4067,-3810,-3810,-3810,
+    -3810,-3810,-3810,-3810,-3810
+    },
+
+    {
+       27,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,
+    -3811,-3811,-3811, 4068,-3811,-3811,-3811,-3811,-3811,-3811,
+    -3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,
+
+    -3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,
+    -3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,
+    -3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,-3811,
+    -3811,-3811,-3811,-3811,-3811
+    },
+
+    {
+       27,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,
+    -3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,
+    -3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,
+    -3812,-3812, 4069,-3812,-3812,-3812,-3812,-3812,-3812,-3812,
+    -3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,-3812,
+    -3812,-3812,-3812,-3812,-3812,-3812,-3812, 4069,-3812,-3812,
+
+    -3812,-3812,-3812,-3812,-3812
+    },
+
+    {
+       27,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,
+    -3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,
+    -3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813, 4070,-3813,
+    -3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,
+    -3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,-3813,
+    -3813,-3813,-3813, 4070,-3813,-3813,-3813,-3813,-3813,-3813,
+    -3813,-3813,-3813,-3813,-3813
+    },
+
+    {
+       27,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,
+    -3814,-3814,-3814,-3814,-3814,-3814, 4071,-3814,-3814,-3814,
+
+    -3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,
+    -3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,
+    -3814,-3814, 4071,-3814,-3814,-3814,-3814,-3814,-3814,-3814,
+    -3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,-3814,
+    -3814,-3814,-3814,-3814,-3814
+    },
+
+    {
+       27,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,
+    -3815,-3815,-3815,-3815,-3815, 4072,-3815,-3815,-3815,-3815,
+    -3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,
+    -3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,
+    -3815, 4072,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,
+
+    -3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,-3815,
+    -3815,-3815,-3815,-3815,-3815
+    },
+
+    {
+       27,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,
+    -3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,
+    -3816,-3816,-3816,-3816,-3816,-3816,-3816, 4073,-3816,-3816,
+    -3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,
+    -3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,-3816,
+    -3816,-3816, 4073,-3816,-3816,-3816,-3816,-3816,-3816,-3816,
+    -3816,-3816,-3816,-3816,-3816
+    },
+
+    {
+       27,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,
+
+    -3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,
+    -3817,-3817,-3817,-3817,-3817,-3817,-3817, 4074,-3817,-3817,
+    -3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,
+    -3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,-3817,
+    -3817,-3817, 4074,-3817,-3817,-3817,-3817,-3817,-3817,-3817,
+    -3817,-3817,-3817,-3817,-3817
+    },
+
+    {
+       27,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,
+    -3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,
+    -3818,-3818,-3818,-3818,-3818,-3818,-3818, 4075,-3818,-3818,
+    -3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,
+
+    -3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,-3818,
+    -3818,-3818, 4075,-3818,-3818,-3818,-3818,-3818,-3818,-3818,
+    -3818,-3818,-3818,-3818,-3818
+    },
+
+    {
+       27,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,
+    -3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,
+    -3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,
+    -3819,-3819,-3819, 4076,-3819,-3819,-3819,-3819,-3819,-3819,
+    -3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819,
+    -3819,-3819,-3819,-3819,-3819,-3819,-3819,-3819, 4076,-3819,
+    -3819,-3819,-3819,-3819,-3819
+
+    },
+
+    {
+       27,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,
+    -3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,
+    -3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,
+    -3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,
+    -3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,
+    -3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,-3820,
+    -3820,-3820,-3820,-3820,-3820
+    },
+
+    {
+       27,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,
+    -3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,
+    -3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,
+
+    -3821,-3821, 4077,-3821,-3821,-3821,-3821,-3821,-3821,-3821,
+    -3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,-3821,
+    -3821,-3821,-3821,-3821,-3821,-3821,-3821, 4077,-3821,-3821,
+    -3821,-3821,-3821,-3821,-3821
+    },
+
+    {
+       27,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,
+    -3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,
+    -3822, 4078,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,
+    -3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,
+    -3822,-3822,-3822,-3822,-3822,-3822,-3822, 4078,-3822,-3822,
+    -3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,-3822,
+
+    -3822,-3822,-3822,-3822,-3822
+    },
+
+    {
+       27,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,
+    -3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,
+    -3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,
+    -3823,-3823, 4079,-3823,-3823,-3823,-3823,-3823,-3823,-3823,
+    -3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,-3823,
+    -3823,-3823,-3823,-3823,-3823,-3823,-3823, 4079,-3823,-3823,
+    -3823,-3823,-3823,-3823,-3823
+    },
+
+    {
+       27,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,
+    -3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824, 4080,-3824,
+
+    -3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,
+    -3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,
+    -3824,-3824,-3824,-3824, 4080,-3824,-3824,-3824,-3824,-3824,
+    -3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,-3824,
+    -3824,-3824,-3824,-3824,-3824
+    },
+
+    {
+       27,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,
+    -3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825, 4081,-3825,
+    -3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,
+    -3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,
+    -3825,-3825,-3825,-3825, 4081,-3825,-3825,-3825,-3825,-3825,
+
+    -3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,-3825,
+    -3825,-3825,-3825,-3825,-3825
+    },
+
+    {
+       27,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,
+    -3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,
+    -3826,-3826,-3826,-3826,-3826,-3826, 4082,-3826,-3826,-3826,
+    -3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,
+    -3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,
+    -3826, 4082,-3826,-3826,-3826,-3826,-3826,-3826,-3826,-3826,
+    -3826,-3826,-3826,-3826,-3826
+    },
+
+    {
+       27,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,
+
+    -3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,
+    -3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,
+    -3827,-3827, 4083,-3827,-3827,-3827,-3827,-3827,-3827,-3827,
+    -3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,-3827,
+    -3827,-3827,-3827,-3827,-3827,-3827,-3827, 4083,-3827,-3827,
+    -3827,-3827,-3827,-3827,-3827
+    },
+
+    {
+       27,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,
+    -3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,
+    -3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,
+    -3828,-3828, 4084,-3828,-3828,-3828,-3828,-3828,-3828,-3828,
+
+    -3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,-3828,
+    -3828,-3828,-3828,-3828,-3828,-3828,-3828, 4084,-3828,-3828,
+    -3828,-3828,-3828,-3828,-3828
+    },
+
+    {
+       27,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,
+    -3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,
+    -3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,
+    -3829,-3829,-3829, 4085,-3829,-3829,-3829,-3829,-3829,-3829,
+    -3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829,
+    -3829,-3829,-3829,-3829,-3829,-3829,-3829,-3829, 4085,-3829,
+    -3829,-3829,-3829,-3829,-3829
+
+    },
+
+    {
+       27,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,
+    -3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,
+    -3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,
+    -3830,-3830,-3830, 4086,-3830,-3830,-3830,-3830,-3830,-3830,
+    -3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830,
+    -3830,-3830,-3830,-3830,-3830,-3830,-3830,-3830, 4086,-3830,
+    -3830,-3830,-3830,-3830,-3830
+    },
+
+    {
+       27,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,
+    -3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,
+    -3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831, 4087,-3831,
+
+    -3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,
+    -3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,-3831,
+    -3831,-3831,-3831, 4087,-3831,-3831,-3831,-3831,-3831,-3831,
+    -3831,-3831,-3831,-3831,-3831
+    },
+
+    {
+       27,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,
+    -3832,-3832,-3832,-3832, 4088,-3832,-3832,-3832,-3832,-3832,
+    -3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,
+    -3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,
+     4088,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,
+    -3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,-3832,
+
+    -3832,-3832,-3832,-3832,-3832
+    },
+
+    {
+       27,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,
+    -3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,
+    -3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,
+    -3833, 4089,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,
+    -3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,-3833,
+    -3833,-3833,-3833,-3833,-3833,-3833, 4089,-3833,-3833,-3833,
+    -3833,-3833,-3833,-3833,-3833
+    },
+
+    {
+       27,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,
+    -3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,
+
+    -3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,
+    -3834,-3834,-3834, 4090,-3834,-3834,-3834,-3834,-3834,-3834,
+    -3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834,
+    -3834,-3834,-3834,-3834,-3834,-3834,-3834,-3834, 4090,-3834,
+    -3834,-3834,-3834,-3834,-3834
+    },
+
+    {
+       27,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,
+    -3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,
+    -3835,-3835,-3835,-3835,-3835,-3835,-3835, 4091,-3835,-3835,
+    -3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,
+    -3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,-3835,
+
+    -3835,-3835, 4091,-3835,-3835,-3835,-3835,-3835,-3835,-3835,
+    -3835,-3835,-3835,-3835,-3835
+    },
+
+    {
+       27,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836, 2591,
+    -3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,
+    -3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,
+    -3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,
+    -3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,
+    -3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,-3836,
+    -3836,-3836,-3836,-3836,-3836
+    },
+
+    {
+       27,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,
+
+    -3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,
+    -3837,-3837,-3837,-3837,-3837,-3837,-3837, 4092,-3837,-3837,
+    -3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,
+    -3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,-3837,
+    -3837,-3837, 4092,-3837,-3837,-3837,-3837,-3837,-3837,-3837,
+    -3837,-3837,-3837,-3837,-3837
+    },
+
+    {
+       27,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,
+    -3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,
+    -3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,
+    -3838,-3838, 4093,-3838,-3838,-3838,-3838,-3838,-3838,-3838,
+
+    -3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,-3838,
+    -3838,-3838,-3838,-3838,-3838,-3838,-3838, 4093,-3838,-3838,
+    -3838,-3838,-3838,-3838,-3838
+    },
+
+    {
+       27,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,
+    -3839,-3839,-3839, 4094,-3839,-3839,-3839,-3839,-3839,-3839,
+    -3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,
+    -3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,
+    -3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,
+    -3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,-3839,
+    -3839,-3839,-3839,-3839,-3839
+
+    },
+
+    {
+       27,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,
+    -3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840, 4095,-3840,
+    -3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,
+    -3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,
+    -3840,-3840,-3840,-3840, 4095,-3840,-3840,-3840,-3840,-3840,
+    -3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,-3840,
+    -3840,-3840,-3840,-3840,-3840
+    },
+
+    {
+       27,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,
+    -3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,
+    -3841,-3841,-3841,-3841,-3841,-3841, 4096,-3841,-3841,-3841,
+
+    -3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,
+    -3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,
+    -3841, 4096,-3841,-3841,-3841,-3841,-3841,-3841,-3841,-3841,
+    -3841,-3841,-3841,-3841,-3841
+    },
+
+    {
+       27,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,
+    -3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,
+    -3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842, 4097,-3842,
+    -3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,
+    -3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,-3842,
+    -3842,-3842,-3842, 4097,-3842,-3842,-3842,-3842,-3842,-3842,
+
+    -3842,-3842,-3842,-3842,-3842
+    },
+
+    {
+       27,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,
+    -3843,-3843,-3843,-3843, 4098,-3843,-3843,-3843,-3843,-3843,
+    -3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,
+    -3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,
+     4098,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,
+    -3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,-3843,
+    -3843,-3843,-3843,-3843,-3843
+    },
+
+    {
+       27,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,
+    -3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,
+
+    -3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,
+    -3844, 4099,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,
+    -3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,-3844,
+    -3844,-3844,-3844,-3844,-3844,-3844, 4099,-3844,-3844,-3844,
+    -3844,-3844,-3844,-3844,-3844
+    },
+
+    {
+       27,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,
+    -3845,-3845,-3845, 4100,-3845,-3845,-3845,-3845,-3845,-3845,
+    -3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,
+    -3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,
+    -3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,
+
+    -3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,-3845,
+    -3845,-3845,-3845,-3845,-3845
+    },
+
+    {
+       27,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,
+    -3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,
+    -3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,
+    -3846,-3846, 4101,-3846,-3846,-3846,-3846,-3846,-3846,-3846,
+    -3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,-3846,
+    -3846,-3846,-3846,-3846,-3846,-3846,-3846, 4101,-3846,-3846,
+    -3846,-3846,-3846,-3846,-3846
+    },
+
+    {
+       27,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,
+
+    -3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,
+    -3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847, 4102,-3847,
+    -3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,
+    -3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,-3847,
+    -3847,-3847,-3847, 4102,-3847,-3847,-3847,-3847,-3847,-3847,
+    -3847,-3847,-3847,-3847,-3847
+    },
+
+    {
+       27,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,
+    -3848,-3848,-3848,-3848,-3848,-3848, 4103,-3848,-3848,-3848,
+    -3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,
+    -3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,
+
+    -3848,-3848, 4103,-3848,-3848,-3848,-3848,-3848,-3848,-3848,
+    -3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,-3848,
+    -3848,-3848,-3848,-3848,-3848
+    },
+
+    {
+       27,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,
+    -3849,-3849,-3849,-3849,-3849, 4104,-3849,-3849,-3849,-3849,
+    -3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,
+    -3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,
+    -3849, 4104,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,
+    -3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,-3849,
+    -3849,-3849,-3849,-3849,-3849
+
+    },
+
+    {
+       27,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,
+    -3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,
+    -3850,-3850,-3850,-3850,-3850,-3850,-3850, 4105,-3850,-3850,
+    -3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,
+    -3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,-3850,
+    -3850,-3850, 4105,-3850,-3850,-3850,-3850,-3850,-3850,-3850,
+    -3850,-3850,-3850,-3850,-3850
+    },
+
+    {
+       27,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,
+    -3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,
+    -3851,-3851,-3851,-3851,-3851,-3851,-3851, 4106,-3851,-3851,
+
+    -3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,
+    -3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,-3851,
+    -3851,-3851, 4106,-3851,-3851,-3851,-3851,-3851,-3851,-3851,
+    -3851,-3851,-3851,-3851,-3851
+    },
+
+    {
+       27,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,
+    -3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,
+    -3852,-3852,-3852,-3852,-3852,-3852,-3852, 4107,-3852,-3852,
+    -3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,
+    -3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,-3852,
+    -3852,-3852, 4107,-3852,-3852,-3852,-3852,-3852,-3852,-3852,
+
+    -3852,-3852,-3852,-3852,-3852
+    },
+
+    {
+       27,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,
+    -3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,
+    -3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,
+    -3853,-3853,-3853, 4108,-3853,-3853,-3853,-3853,-3853,-3853,
+    -3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853,
+    -3853,-3853,-3853,-3853,-3853,-3853,-3853,-3853, 4108,-3853,
+    -3853,-3853,-3853,-3853,-3853
+    },
+
+    {
+       27,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,
+    -3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,
+
+    -3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,
+    -3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,
+    -3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,
+    -3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,-3854,
+    -3854,-3854,-3854,-3854,-3854
+    },
+
+    {
+       27,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,
+    -3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,
+    -3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,
+    -3855,-3855, 4109,-3855,-3855,-3855,-3855,-3855,-3855,-3855,
+    -3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,-3855,
+
+    -3855,-3855,-3855,-3855,-3855,-3855,-3855, 4109,-3855,-3855,
+    -3855,-3855,-3855,-3855,-3855
+    },
+
+    {
+       27,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,
+    -3856,-3856,-3856, 2614,-3856,-3856,-3856,-3856,-3856,-3856,
+    -3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,
+    -3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,
+    -3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,
+    -3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,-3856,
+    -3856,-3856,-3856,-3856,-3856
+    },
+
+    {
+       27,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,
+
+    -3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,
+    -3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,
+    -3857,-3857, 4110,-3857,-3857,-3857,-3857,-3857,-3857,-3857,
+    -3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,-3857,
+    -3857,-3857,-3857,-3857,-3857,-3857,-3857, 4110,-3857,-3857,
+    -3857,-3857,-3857,-3857,-3857
+    },
+
+    {
+       27,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,
+    -3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858, 4111,-3858,
+    -3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,
+    -3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,
+
+    -3858,-3858,-3858,-3858, 4111,-3858,-3858,-3858,-3858,-3858,
+    -3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,-3858,
+    -3858,-3858,-3858,-3858,-3858
+    },
+
+    {
+       27,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,
+    -3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859, 4112,-3859,
+    -3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,
+    -3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,
+    -3859,-3859,-3859,-3859, 4112,-3859,-3859,-3859,-3859,-3859,
+    -3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,-3859,
+    -3859,-3859,-3859,-3859,-3859
+
+    },
+
+    {
+       27,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,
+    -3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,
+    -3860,-3860,-3860,-3860,-3860,-3860, 4113,-3860,-3860,-3860,
+    -3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,
+    -3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,
+    -3860, 4113,-3860,-3860,-3860,-3860,-3860,-3860,-3860,-3860,
+    -3860,-3860,-3860,-3860,-3860
+    },
+
+    {
+       27,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,
+    -3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,
+    -3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,
+
+    -3861,-3861, 4114,-3861,-3861,-3861,-3861,-3861,-3861,-3861,
+    -3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,-3861,
+    -3861,-3861,-3861,-3861,-3861,-3861,-3861, 4114,-3861,-3861,
+    -3861,-3861,-3861,-3861,-3861
+    },
+
+    {
+       27,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,
+    -3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,
+    -3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,
+    -3862,-3862, 4115,-3862,-3862,-3862,-3862,-3862,-3862,-3862,
+    -3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,-3862,
+    -3862,-3862,-3862,-3862,-3862,-3862,-3862, 4115,-3862,-3862,
+
+    -3862,-3862,-3862,-3862,-3862
+    },
+
+    {
+       27,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,
+    -3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,
+    -3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,
+    -3863,-3863,-3863, 4116,-3863,-3863,-3863,-3863,-3863,-3863,
+    -3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863,
+    -3863,-3863,-3863,-3863,-3863,-3863,-3863,-3863, 4116,-3863,
+    -3863,-3863,-3863,-3863,-3863
+    },
+
+    {
+       27,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,
+    -3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,
+
+    -3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,
+    -3864,-3864,-3864, 4117,-3864,-3864,-3864,-3864,-3864,-3864,
+    -3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864,
+    -3864,-3864,-3864,-3864,-3864,-3864,-3864,-3864, 4117,-3864,
+    -3864,-3864,-3864,-3864,-3864
+    },
+
+    {
+       27,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,
+    -3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,
+    -3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865, 4118,-3865,
+    -3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,
+    -3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,-3865,
+
+    -3865,-3865,-3865, 4118,-3865,-3865,-3865,-3865,-3865,-3865,
+    -3865,-3865,-3865,-3865,-3865
+    },
+
+    {
+       27,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,
+    -3866,-3866,-3866,-3866, 4119,-3866,-3866,-3866,-3866,-3866,
+    -3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,
+    -3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,
+     4119,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,
+    -3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,-3866,
+    -3866,-3866,-3866,-3866,-3866
+    },
+
+    {
+       27,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,
+
+    -3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,
+    -3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,
+    -3867, 4120,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,
+    -3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,-3867,
+    -3867,-3867,-3867,-3867,-3867,-3867, 4120,-3867,-3867,-3867,
+    -3867,-3867,-3867,-3867,-3867
+    },
+
+    {
+       27,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,
+    -3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,
+    -3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,
+    -3868,-3868,-3868, 4121,-3868,-3868,-3868,-3868,-3868,-3868,
+
+    -3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868,
+    -3868,-3868,-3868,-3868,-3868,-3868,-3868,-3868, 4121,-3868,
+    -3868,-3868,-3868,-3868,-3868
+    },
+
+    {
+       27,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,
+    -3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,
+    -3869,-3869,-3869,-3869,-3869,-3869,-3869, 4122,-3869,-3869,
+    -3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,
+    -3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,-3869,
+    -3869,-3869, 4122,-3869,-3869,-3869,-3869,-3869,-3869,-3869,
+    -3869,-3869,-3869,-3869,-3869
+
+    },
+
+    {
+       27,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870, 2633,
+    -3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,
+    -3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,
+    -3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,
+    -3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,
+    -3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,-3870,
+    -3870,-3870,-3870,-3870,-3870
+    },
+
+    {
+       27,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,
+    -3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,
+    -3871,-3871,-3871,-3871,-3871,-3871,-3871, 4123,-3871,-3871,
+
+    -3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,
+    -3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,-3871,
+    -3871,-3871, 4123,-3871,-3871,-3871,-3871,-3871,-3871,-3871,
+    -3871,-3871,-3871,-3871,-3871
+    },
+
+    {
+       27,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,
+    -3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,
+    -3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,
+    -3872,-3872, 4124,-3872,-3872,-3872,-3872,-3872,-3872,-3872,
+    -3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,-3872,
+    -3872,-3872,-3872,-3872,-3872,-3872,-3872, 4124,-3872,-3872,
+
+    -3872,-3872,-3872,-3872,-3872
+    },
+
+    {
+       27,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,
+    -3873,-3873,-3873, 4125,-3873,-3873,-3873,-3873,-3873,-3873,
+    -3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,
+    -3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,
+    -3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,
+    -3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,-3873,
+    -3873,-3873,-3873,-3873,-3873
+    },
+
+    {
+       27,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,
+    -3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874, 4126,-3874,
+
+    -3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,
+    -3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,
+    -3874,-3874,-3874,-3874, 4126,-3874,-3874,-3874,-3874,-3874,
+    -3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,-3874,
+    -3874,-3874,-3874,-3874,-3874
+    },
+
+    {
+       27,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,
+    -3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,
+    -3875,-3875,-3875,-3875,-3875,-3875, 4127,-3875,-3875,-3875,
+    -3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,
+    -3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,
+
+    -3875, 4127,-3875,-3875,-3875,-3875,-3875,-3875,-3875,-3875,
+    -3875,-3875,-3875,-3875,-3875
+    },
+
+    {
+       27,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,
+    -3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,
+    -3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876, 4128,-3876,
+    -3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,
+    -3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,-3876,
+    -3876,-3876,-3876, 4128,-3876,-3876,-3876,-3876,-3876,-3876,
+    -3876,-3876,-3876,-3876,-3876
+    },
+
+    {
+       27,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,
+
+    -3877,-3877,-3877,-3877, 4129,-3877,-3877,-3877,-3877,-3877,
+    -3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,
+    -3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,
+     4129,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,
+    -3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,-3877,
+    -3877,-3877,-3877,-3877,-3877
+    },
+
+    {
+       27,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,
+    -3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,
+    -3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,
+    -3878, 4130,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,
+
+    -3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,-3878,
+    -3878,-3878,-3878,-3878,-3878,-3878, 4130,-3878,-3878,-3878,
+    -3878,-3878,-3878,-3878,-3878
+    },
+
+    {
+       27,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,
+    -3879,-3879,-3879, 4131,-3879,-3879,-3879,-3879,-3879,-3879,
+    -3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,
+    -3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,
+    -3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,
+    -3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,-3879,
+    -3879,-3879,-3879,-3879,-3879
+
+    },
+
+    {
+       27,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,
+    -3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,
+    -3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,
+    -3880,-3880, 4132,-3880,-3880,-3880,-3880,-3880,-3880,-3880,
+    -3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,-3880,
+    -3880,-3880,-3880,-3880,-3880,-3880,-3880, 4132,-3880,-3880,
+    -3880,-3880,-3880,-3880,-3880
+    },
+
+    {
+       27,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,
+    -3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,
+    -3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881, 4133,-3881,
+
+    -3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,
+    -3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,-3881,
+    -3881,-3881,-3881, 4133,-3881,-3881,-3881,-3881,-3881,-3881,
+    -3881,-3881,-3881,-3881,-3881
+    },
+
+    {
+       27,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,
+    -3882,-3882,-3882,-3882,-3882,-3882, 4134,-3882,-3882,-3882,
+    -3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,
+    -3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,
+    -3882,-3882, 4134,-3882,-3882,-3882,-3882,-3882,-3882,-3882,
+    -3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,-3882,
+
+    -3882,-3882,-3882,-3882,-3882
+    },
+
+    {
+       27,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,
+    -3883,-3883,-3883,-3883,-3883, 4135,-3883,-3883,-3883,-3883,
+    -3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,
+    -3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,
+    -3883, 4135,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,
+    -3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,-3883,
+    -3883,-3883,-3883,-3883,-3883
+    },
+
+    {
+       27,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,
+    -3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,
+
+    -3884,-3884,-3884,-3884,-3884,-3884,-3884, 4136,-3884,-3884,
+    -3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,
+    -3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,-3884,
+    -3884,-3884, 4136,-3884,-3884,-3884,-3884,-3884,-3884,-3884,
+    -3884,-3884,-3884,-3884,-3884
+    },
+
+    {
+       27,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,
+    -3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,
+    -3885,-3885,-3885,-3885,-3885,-3885,-3885, 4137,-3885,-3885,
+    -3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,
+    -3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,-3885,
+
+    -3885,-3885, 4137,-3885,-3885,-3885,-3885,-3885,-3885,-3885,
+    -3885,-3885,-3885,-3885,-3885
+    },
+
+    {
+       27,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,
+    -3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,
+    -3886,-3886,-3886,-3886,-3886,-3886,-3886, 4138,-3886,-3886,
+    -3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,
+    -3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,-3886,
+    -3886,-3886, 4138,-3886,-3886,-3886,-3886,-3886,-3886,-3886,
+    -3886,-3886,-3886,-3886,-3886
+    },
+
+    {
+       27,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,
+
+    -3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,
+    -3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,
+    -3887,-3887,-3887, 4139,-3887,-3887,-3887,-3887,-3887,-3887,
+    -3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887,
+    -3887,-3887,-3887,-3887,-3887,-3887,-3887,-3887, 4139,-3887,
+    -3887,-3887,-3887,-3887,-3887
+    },
+
+    {
+       27,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,
+    -3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,
+    -3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,
+    -3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,
+
+    -3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,
+    -3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,-3888,
+    -3888,-3888,-3888,-3888,-3888
+    },
+
+    {
+       27,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366, 4140,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
+      366,  366,  366,  366,  366
+
+    },
+
+    {
+       27,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,
+    -3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,
+    -3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,
+    -3890,-3890, 4141,-3890,-3890,-3890,-3890,-3890,-3890,-3890,
+    -3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,-3890,
+    -3890,-3890,-3890,-3890,-3890,-3890,-3890, 4141,-3890,-3890,
+    -3890,-3890,-3890,-3890,-3890
+    },
+
+    {
+       27,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,
+    -3891,-3891,-3891, 4142,-3891,-3891,-3891,-3891,-3891,-3891,
+    -3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,
+
+    -3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,
+    -3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,
+    -3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,-3891,
+    -3891,-3891,-3891,-3891,-3891
+    },
+
+    {
+       27,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,
+    -3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,
+    -3892,-3892,-3892,-3892,-3892,-3892,-3892, 4143,-3892,-3892,
+    -3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,
+    -3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,-3892,
+    -3892,-3892, 4143,-3892,-3892,-3892,-3892,-3892,-3892,-3892,
+
+    -3892,-3892,-3892,-3892,-3892
+    },
+
+    {
+       27,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,
+    -3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,
+    -3893,-3893,-3893,-3893,-3893,-3893,-3893, 4144,-3893,-3893,
+    -3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,
+    -3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,-3893,
+    -3893,-3893, 4144,-3893,-3893,-3893,-3893,-3893,-3893,-3893,
+    -3893,-3893,-3893,-3893,-3893
+    },
+
+    {
+       27,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,
+    -3894,-3894,-3894, 4145,-3894,-3894,-3894,-3894,-3894,-3894,
+
+    -3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,
+    -3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,
+    -3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,
+    -3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,-3894,
+    -3894,-3894,-3894,-3894,-3894
+    },
+
+    {
+       27,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,
+    -3895,-3895,-3895, 4146,-3895,-3895,-3895,-3895,-3895,-3895,
+    -3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,
+    -3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,
+    -3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,
+
+    -3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,-3895,
+    -3895,-3895,-3895,-3895,-3895
+    },
+
+    {
+       27,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,
+    -3896,-3896,-3896, 4147,-3896,-3896,-3896,-3896,-3896,-3896,
+    -3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,
+    -3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,
+    -3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,
+    -3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,-3896,
+    -3896,-3896,-3896,-3896,-3896
+    },
+
+    {
+       27,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,
+
+    -3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897, 4148,-3897,
+    -3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,
+    -3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,
+    -3897,-3897,-3897,-3897, 4148,-3897,-3897,-3897,-3897,-3897,
+    -3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,-3897,
+    -3897,-3897,-3897,-3897,-3897
+    },
+
+    {
+       27,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,
+    -3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898, 4149,-3898,
+    -3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,
+    -3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,
+
+    -3898,-3898,-3898,-3898, 4149,-3898,-3898,-3898,-3898,-3898,
+    -3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,-3898,
+    -3898,-3898,-3898,-3898,-3898
+    },
+
+    {
+       27,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,
+    -3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,
+    -3899,-3899,-3899,-3899,-3899,-3899,-3899, 4150,-3899,-3899,
+    -3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,
+    -3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,-3899,
+    -3899,-3899, 4150,-3899,-3899,-3899,-3899,-3899,-3899,-3899,
+    -3899,-3899,-3899,-3899,-3899
+
+    },
+
+    {
+       27,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,
+    -3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,
+    -3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,
+    -3900, 4151,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,
+    -3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,-3900,
+    -3900,-3900,-3900,-3900,-3900,-3900, 4151,-3900,-3900,-3900,
+    -3900,-3900,-3900,-3900,-3900
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 2677,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,
+    -3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,
+    -3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,
+    -3902,-3902, 4152,-3902,-3902,-3902,-3902,-3902,-3902,-3902,
+    -3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,-3902,
+    -3902,-3902,-3902,-3902,-3902,-3902,-3902, 4152,-3902,-3902,
+
+    -3902,-3902,-3902,-3902,-3902
+    },
+
+    {
+       27,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,
+    -3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,
+    -3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,
+    -3903,-3903,-3903, 4153,-3903,-3903,-3903,-3903,-3903,-3903,
+    -3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903,
+    -3903,-3903,-3903,-3903,-3903,-3903,-3903,-3903, 4153,-3903,
+    -3903,-3903,-3903,-3903,-3903
+    },
+
+    {
+       27,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,
+    -3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,
+
+    -3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,
+    -3904,-3904,-3904, 4154,-3904,-3904,-3904,-3904,-3904,-3904,
+    -3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904,
+    -3904,-3904,-3904,-3904,-3904,-3904,-3904,-3904, 4154,-3904,
+    -3904,-3904,-3904,-3904,-3904
+    },
+
+    {
+       27,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,
+    -3905,-3905,-3905, 4155,-3905,-3905,-3905,-3905,-3905,-3905,
+    -3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,
+    -3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,
+    -3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,
+
+    -3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,-3905,
+    -3905,-3905,-3905,-3905,-3905
+    },
+
+    {
+       27,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,
+    -3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,
+    -3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,
+    -3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,
+    -3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,
+    -3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,-3906,
+    -3906,-3906,-3906,-3906,-3906
+    },
+
+    {
+       27,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,
+
+    -3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,
+    -3907,-3907,-3907,-3907,-3907,-3907,-3907, 4156,-3907,-3907,
+    -3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,
+    -3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,-3907,
+    -3907,-3907, 4156,-3907,-3907,-3907,-3907,-3907,-3907,-3907,
+    -3907,-3907,-3907,-3907,-3907
+    },
+
+    {
+       27,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,
+    -3908,-3908,-3908, 4157,-3908,-3908,-3908,-3908,-3908,-3908,
+    -3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,
+    -3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,
+
+    -3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,
+    -3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,-3908,
+    -3908,-3908,-3908,-3908,-3908
+    },
+
+    {
+       27,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,
+    -3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,
+    -3909,-3909,-3909,-3909,-3909,-3909,-3909, 4158,-3909,-3909,
+    -3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,
+    -3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,-3909,
+    -3909,-3909, 4158,-3909,-3909,-3909,-3909,-3909,-3909,-3909,
+    -3909,-3909,-3909,-3909,-3909
+
+    },
+
+    {
+       27,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,
+    -3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,
+    -3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,
+    -3910, 4159,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,
+    -3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,-3910,
+    -3910,-3910,-3910,-3910,-3910,-3910, 4159,-3910,-3910,-3910,
+    -3910,-3910,-3910,-3910,-3910
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 2694,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3912, 4160, 4160,-3912,-3912,-3912,-3912,-3912,-3912,
+    -3912,-3912, 4161,-3912,-3912,-3912,-3912,-3912,-3912,-3912,
+    -3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,
+    -3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,
+    -3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,
+    -3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,-3912,
+
+    -3912,-3912,-3912,-3912,-3912
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4162,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 4162,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184, 4163,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 4163,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4164,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184, 4164,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 4165,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 4165,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,
+
+    -3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,
+    -3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,
+    -3917,-3917,-3917, 4166,-3917,-3917,-3917,-3917,-3917,-3917,
+    -3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917,
+    -3917,-3917,-3917,-3917,-3917,-3917,-3917,-3917, 4166,-3917,
+    -3917,-3917,-3917,-3917,-3917
+    },
+
+    {
+       27,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,
+    -3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,
+    -3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,
+    -3918,-3918,-3918, 4167,-3918,-3918,-3918,-3918,-3918,-3918,
+
+    -3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918,
+    -3918,-3918,-3918,-3918,-3918,-3918,-3918,-3918, 4167,-3918,
+    -3918,-3918,-3918,-3918,-3918
+    },
+
+    {
+       27,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,
+    -3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,
+    -3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,
+    -3919,-3919,-3919, 4168,-3919,-3919,-3919,-3919,-3919,-3919,
+    -3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919,
+    -3919,-3919,-3919,-3919,-3919,-3919,-3919,-3919, 4168,-3919,
+    -3919,-3919,-3919,-3919,-3919
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4169,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 4170,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,
+    -3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,
+    -3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,
+
+    -3921,-3921, 4171,-3921,-3921,-3921,-3921,-3921,-3921,-3921,
+    -3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,-3921,
+    -3921,-3921,-3921,-3921,-3921,-3921,-3921, 4171,-3921,-3921,
+    -3921,-3921,-3921,-3921,-3921
+    },
+
+    {
+       27,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,
+    -3922,-3922,-3922, 4172,-3922,-3922,-3922,-3922,-3922,-3922,
+    -3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,
+    -3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,
+    -3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,
+    -3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,-3922,
+
+    -3922,-3922,-3922,-3922,-3922
+    },
+
+    {
+       27,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,
+    -3923,-3923,-3923, 4173,-3923,-3923,-3923,-3923,-3923,-3923,
+    -3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,
+    -3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,
+    -3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,
+    -3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,-3923,
+    -3923,-3923,-3923,-3923,-3923
+    },
+
+    {
+       27,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,
+    -3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,
+
+    -3924,-3924,-3924,-3924,-3924,-3924,-3924, 4174,-3924,-3924,
+    -3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,
+    -3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,-3924,
+    -3924,-3924, 4174,-3924,-3924,-3924,-3924,-3924,-3924,-3924,
+    -3924,-3924,-3924,-3924,-3924
+    },
+
+    {
+       27,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,
+    -3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,
+    -3925,-3925,-3925,-3925,-3925,-3925,-3925, 4175,-3925,-3925,
+    -3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,
+    -3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,-3925,
+
+    -3925,-3925, 4175,-3925,-3925,-3925,-3925,-3925,-3925,-3925,
+    -3925,-3925,-3925,-3925,-3925
+    },
+
+    {
+       27,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,
+    -3926,-3926,-3926, 4176,-3926,-3926,-3926,-3926,-3926,-3926,
+    -3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,
+    -3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,
+    -3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,
+    -3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,-3926,
+    -3926,-3926,-3926,-3926,-3926
+    },
+
+    {
+       27,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,
+
+    -3927,-3927,-3927, 4177,-3927,-3927,-3927,-3927,-3927,-3927,
+    -3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,
+    -3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,
+    -3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,
+    -3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,-3927,
+    -3927,-3927,-3927,-3927,-3927
+    },
+
+    {
+       27,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,
+    -3928,-3928,-3928, 4178,-3928,-3928,-3928,-3928,-3928,-3928,
+    -3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,
+    -3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,
+
+    -3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,
+    -3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,-3928,
+    -3928,-3928,-3928,-3928,-3928
+    },
+
+    {
+       27,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,
+    -3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929, 4179,-3929,
+    -3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,
+    -3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,
+    -3929,-3929,-3929,-3929, 4179,-3929,-3929,-3929,-3929,-3929,
+    -3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,-3929,
+    -3929,-3929,-3929,-3929,-3929
+
+    },
+
+    {
+       27,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,
+    -3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930, 4180,-3930,
+    -3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,
+    -3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,
+    -3930,-3930,-3930,-3930, 4180,-3930,-3930,-3930,-3930,-3930,
+    -3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,-3930,
+    -3930,-3930,-3930,-3930,-3930
+    },
+
+    {
+       27,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,
+    -3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,
+    -3931,-3931,-3931,-3931,-3931,-3931,-3931, 4181,-3931,-3931,
+
+    -3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,
+    -3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,-3931,
+    -3931,-3931, 4181,-3931,-3931,-3931,-3931,-3931,-3931,-3931,
+    -3931,-3931,-3931,-3931,-3931
+    },
+
+    {
+       27,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,
+    -3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,
+    -3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,
+    -3932, 4182,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,
+    -3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,-3932,
+    -3932,-3932,-3932,-3932,-3932,-3932, 4182,-3932,-3932,-3932,
+
+    -3932,-3932,-3932,-3932,-3932
+    },
+
+    {
+       27,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933, 2723,
+    -3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,
+    -3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,
+    -3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,
+    -3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,
+    -3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,-3933,
+    -3933,-3933,-3933,-3933,-3933
+    },
+
+    {
+       27,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,
+    -3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,
+
+    -3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,
+    -3934,-3934, 4183,-3934,-3934,-3934,-3934,-3934,-3934,-3934,
+    -3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,-3934,
+    -3934,-3934,-3934,-3934,-3934,-3934,-3934, 4183,-3934,-3934,
+    -3934,-3934,-3934,-3934,-3934
+    },
+
+    {
+       27,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,
+    -3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,
+    -3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,
+    -3935,-3935,-3935, 4184,-3935,-3935,-3935,-3935,-3935,-3935,
+    -3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935,
+
+    -3935,-3935,-3935,-3935,-3935,-3935,-3935,-3935, 4184,-3935,
+    -3935,-3935,-3935,-3935,-3935
+    },
+
+    {
+       27,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,
+    -3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,
+    -3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,
+    -3936,-3936,-3936, 4185,-3936,-3936,-3936,-3936,-3936,-3936,
+    -3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936,
+    -3936,-3936,-3936,-3936,-3936,-3936,-3936,-3936, 4185,-3936,
+    -3936,-3936,-3936,-3936,-3936
+    },
+
+    {
+       27,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,
+
+    -3937,-3937,-3937, 4186,-3937,-3937,-3937,-3937,-3937,-3937,
+    -3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,
+    -3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,
+    -3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,
+    -3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,-3937,
+    -3937,-3937,-3937,-3937,-3937
+    },
+
+    {
+       27,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,
+    -3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,
+    -3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,
+    -3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,
+
+    -3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,
+    -3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,-3938,
+    -3938,-3938,-3938,-3938,-3938
+    },
+
+    {
+       27,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,
+    -3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,
+    -3939,-3939,-3939,-3939,-3939,-3939,-3939, 4187,-3939,-3939,
+    -3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,
+    -3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,-3939,
+    -3939,-3939, 4187,-3939,-3939,-3939,-3939,-3939,-3939,-3939,
+    -3939,-3939,-3939,-3939,-3939
+
+    },
+
+    {
+       27,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,
+    -3940,-3940,-3940, 4188,-3940,-3940,-3940,-3940,-3940,-3940,
+    -3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,
+    -3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,
+    -3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,
+    -3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,-3940,
+    -3940,-3940,-3940,-3940,-3940
+    },
+
+    {
+       27,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,
+    -3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,
+    -3941,-3941,-3941,-3941,-3941,-3941,-3941, 4189,-3941,-3941,
+
+    -3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,
+    -3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,-3941,
+    -3941,-3941, 4189,-3941,-3941,-3941,-3941,-3941,-3941,-3941,
+    -3941,-3941,-3941,-3941,-3941
+    },
+
+    {
+       27,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,
+    -3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,
+    -3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,
+    -3942, 4190,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,
+    -3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,-3942,
+    -3942,-3942,-3942,-3942,-3942,-3942, 4190,-3942,-3942,-3942,
+
+    -3942,-3942,-3942,-3942,-3942
+    },
+
+    {
+       27,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943, 2737,
+    -3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,
+    -3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,
+    -3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,
+    -3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,
+    -3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,-3943,
+    -3943,-3943,-3943,-3943,-3943
+    },
+
+    {
+       27,-3944, 4191, 4191,-3944,-3944,-3944,-3944,-3944,-3944,
+    -3944,-3944, 4192,-3944,-3944,-3944,-3944,-3944,-3944,-3944,
+
+    -3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,
+    -3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,
+    -3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,
+    -3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,-3944,
+    -3944,-3944,-3944,-3944,-3944
+    },
+
+    {
+       27,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,
+    -3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,
+    -3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,
+    -3945,-3945,-3945, 4193,-3945,-3945,-3945,-3945,-3945,-3945,
+    -3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945,
+
+    -3945,-3945,-3945,-3945,-3945,-3945,-3945,-3945, 4193,-3945,
+    -3945,-3945,-3945,-3945,-3945
+    },
+
+    {
+       27,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,
+    -3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,
+    -3946,-3946,-3946,-3946,-3946,-3946,-3946, 4194,-3946,-3946,
+    -3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,
+    -3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,-3946,
+    -3946,-3946, 4194,-3946,-3946,-3946,-3946,-3946,-3946,-3946,
+    -3946,-3946,-3946,-3946,-3946
+    },
+
+    {
+       27,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,
+
+    -3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,
+    -3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,
+    -3947,-3947,-3947, 4195,-3947,-3947,-3947,-3947,-3947,-3947,
+    -3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947,
+    -3947,-3947,-3947,-3947,-3947,-3947,-3947,-3947, 4195,-3947,
+    -3947,-3947,-3947,-3947,-3947
+    },
+
+    {
+       27,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,
+    -3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,
+    -3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,
+    -3948,-3948, 4196,-3948,-3948,-3948,-3948,-3948,-3948,-3948,
+
+    -3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,-3948,
+    -3948,-3948,-3948,-3948,-3948,-3948,-3948, 4196,-3948,-3948,
+    -3948,-3948,-3948,-3948,-3948
+    },
+
+    {
+       27,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,
+    -3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,
+    -3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,
+    -3949,-3949,-3949, 4197,-3949,-3949,-3949,-3949,-3949,-3949,
+    -3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949,
+    -3949,-3949,-3949,-3949,-3949,-3949,-3949,-3949, 4197,-3949,
+    -3949,-3949,-3949,-3949,-3949
+
+    },
+
+    {
+       27,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,
+    -3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,
+    -3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,
+    -3950,-3950,-3950, 4198,-3950,-3950,-3950,-3950,-3950,-3950,
+    -3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950,
+    -3950,-3950,-3950,-3950,-3950,-3950,-3950,-3950, 4198,-3950,
+    -3950,-3950,-3950,-3950,-3950
+    },
+
+    {
+       27,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,
+    -3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,
+    -3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,
+
+    -3951,-3951,-3951, 4199,-3951,-3951,-3951,-3951,-3951,-3951,
+    -3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951,
+    -3951,-3951,-3951,-3951,-3951,-3951,-3951,-3951, 4199,-3951,
+    -3951,-3951,-3951,-3951,-3951
+    },
+
+    {
+       27,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,
+    -3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,
+    -3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,
+    -3952,-3952, 4200,-3952,-3952,-3952,-3952,-3952,-3952,-3952,
+    -3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,-3952,
+    -3952,-3952,-3952,-3952,-3952,-3952,-3952, 4200,-3952,-3952,
+
+    -3952,-3952,-3952,-3952,-3952
+    },
+
+    {
+       27,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,
+    -3953,-3953,-3953, 4201,-3953,-3953,-3953,-3953,-3953,-3953,
+    -3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,
+    -3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,
+    -3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,
+    -3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,-3953,
+    -3953,-3953,-3953,-3953,-3953
+    },
+
+    {
+       27,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,
+    -3954,-3954,-3954, 4202,-3954,-3954,-3954,-3954,-3954,-3954,
+
+    -3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,
+    -3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,
+    -3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,
+    -3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,-3954,
+    -3954,-3954,-3954,-3954,-3954
+    },
+
+    {
+       27,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,
+    -3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,
+    -3955,-3955,-3955,-3955,-3955,-3955,-3955, 4203,-3955,-3955,
+    -3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,
+    -3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,-3955,
+
+    -3955,-3955, 4203,-3955,-3955,-3955,-3955,-3955,-3955,-3955,
+    -3955,-3955,-3955,-3955,-3955
+    },
+
+    {
+       27,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,
+    -3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,
+    -3956,-3956,-3956,-3956,-3956,-3956,-3956, 4204,-3956,-3956,
+    -3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,
+    -3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,-3956,
+    -3956,-3956, 4204,-3956,-3956,-3956,-3956,-3956,-3956,-3956,
+    -3956,-3956,-3956,-3956,-3956
+    },
+
+    {
+       27,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,
+
+    -3957,-3957,-3957, 4205,-3957,-3957,-3957,-3957,-3957,-3957,
+    -3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,
+    -3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,
+    -3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,
+    -3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,-3957,
+    -3957,-3957,-3957,-3957,-3957
+    },
+
+    {
+       27,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,
+    -3958,-3958,-3958, 4206,-3958,-3958,-3958,-3958,-3958,-3958,
+    -3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,
+    -3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,
+
+    -3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,
+    -3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,-3958,
+    -3958,-3958,-3958,-3958,-3958
+    },
+
+    {
+       27,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,
+    -3959,-3959,-3959, 4207,-3959,-3959,-3959,-3959,-3959,-3959,
+    -3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,
+    -3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,
+    -3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,
+    -3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,-3959,
+    -3959,-3959,-3959,-3959,-3959
+
+    },
+
+    {
+       27,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,
+    -3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960, 4208,-3960,
+    -3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,
+    -3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,
+    -3960,-3960,-3960,-3960, 4208,-3960,-3960,-3960,-3960,-3960,
+    -3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,-3960,
+    -3960,-3960,-3960,-3960,-3960
+    },
+
+    {
+       27,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,
+    -3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961, 4209,-3961,
+    -3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,
+
+    -3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,
+    -3961,-3961,-3961,-3961, 4209,-3961,-3961,-3961,-3961,-3961,
+    -3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,-3961,
+    -3961,-3961,-3961,-3961,-3961
+    },
+
+    {
+       27,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,
+    -3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,
+    -3962,-3962,-3962,-3962,-3962,-3962,-3962, 4210,-3962,-3962,
+    -3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,
+    -3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,-3962,
+    -3962,-3962, 4210,-3962,-3962,-3962,-3962,-3962,-3962,-3962,
+
+    -3962,-3962,-3962,-3962,-3962
+    },
+
+    {
+       27,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,
+    -3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,
+    -3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,
+    -3963, 4211,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,
+    -3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,-3963,
+    -3963,-3963,-3963,-3963,-3963,-3963, 4211,-3963,-3963,-3963,
+    -3963,-3963,-3963,-3963,-3963
+    },
+
+    {
+       27,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964, 2765,
+    -3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,
+
+    -3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,
+    -3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,
+    -3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,
+    -3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,-3964,
+    -3964,-3964,-3964,-3964,-3964
+    },
+
+    {
+       27,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,
+    -3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,
+    -3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,
+    -3965,-3965, 4212,-3965,-3965,-3965,-3965,-3965,-3965,-3965,
+    -3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,-3965,
+
+    -3965,-3965,-3965,-3965,-3965,-3965,-3965, 4212,-3965,-3965,
+    -3965,-3965,-3965,-3965,-3965
+    },
+
+    {
+       27,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,
+    -3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,
+    -3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,
+    -3966,-3966,-3966, 4213,-3966,-3966,-3966,-3966,-3966,-3966,
+    -3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966,
+    -3966,-3966,-3966,-3966,-3966,-3966,-3966,-3966, 4213,-3966,
+    -3966,-3966,-3966,-3966,-3966
+    },
+
+    {
+       27,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,
+
+    -3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,
+    -3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,
+    -3967,-3967,-3967, 4214,-3967,-3967,-3967,-3967,-3967,-3967,
+    -3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967,
+    -3967,-3967,-3967,-3967,-3967,-3967,-3967,-3967, 4214,-3967,
+    -3967,-3967,-3967,-3967,-3967
+    },
+
+    {
+       27,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,
+    -3968,-3968,-3968, 4215,-3968,-3968,-3968,-3968,-3968,-3968,
+    -3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,
+    -3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,
+
+    -3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,
+    -3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,-3968,
+    -3968,-3968,-3968,-3968,-3968
+    },
+
+    {
+       27,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,
+    -3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,
+    -3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,
+    -3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,
+    -3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,
+    -3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,-3969,
+    -3969,-3969,-3969,-3969,-3969
+
+    },
+
+    {
+       27,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,
+    -3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,
+    -3970,-3970,-3970,-3970,-3970,-3970,-3970, 4216,-3970,-3970,
+    -3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,
+    -3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,-3970,
+    -3970,-3970, 4216,-3970,-3970,-3970,-3970,-3970,-3970,-3970,
+    -3970,-3970,-3970,-3970,-3970
+    },
+
+    {
+       27,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,
+    -3971,-3971,-3971, 4217,-3971,-3971,-3971,-3971,-3971,-3971,
+    -3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,
+
+    -3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,
+    -3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,
+    -3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,-3971,
+    -3971,-3971,-3971,-3971,-3971
+    },
+
+    {
+       27,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,
+    -3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,
+    -3972,-3972,-3972,-3972,-3972,-3972,-3972, 4218,-3972,-3972,
+    -3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,
+    -3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,-3972,
+    -3972,-3972, 4218,-3972,-3972,-3972,-3972,-3972,-3972,-3972,
+
+    -3972,-3972,-3972,-3972,-3972
+    },
+
+    {
+       27,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,
+    -3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,
+    -3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,
+    -3973, 4219,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,
+    -3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,-3973,
+    -3973,-3973,-3973,-3973,-3973,-3973, 4219,-3973,-3973,-3973,
+    -3973,-3973,-3973,-3973,-3973
+    },
+
+    {
+       27,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974, 2779,
+    -3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,
+
+    -3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,
+    -3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,
+    -3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,
+    -3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,-3974,
+    -3974,-3974,-3974,-3974,-3974
+    },
+
+    {
+       27,-3975, 4220, 4220,-3975,-3975,-3975,-3975,-3975,-3975,
+    -3975,-3975, 4221,-3975,-3975,-3975,-3975,-3975,-3975,-3975,
+    -3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,
+    -3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,
+    -3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,
+
+    -3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,-3975,
+    -3975,-3975,-3975,-3975,-3975
+    },
+
+    {
+       27,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,
+    -3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,
+    -3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,
+    -3976,-3976,-3976, 4222,-3976,-3976,-3976,-3976,-3976,-3976,
+    -3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976,
+    -3976,-3976,-3976,-3976,-3976,-3976,-3976,-3976, 4222,-3976,
+    -3976,-3976,-3976,-3976,-3976
+    },
+
+    {
+       27,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,
+
+    -3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,
+    -3977,-3977,-3977,-3977,-3977,-3977,-3977, 4223,-3977,-3977,
+    -3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,
+    -3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,-3977,
+    -3977,-3977, 4223,-3977,-3977,-3977,-3977,-3977,-3977,-3977,
+    -3977,-3977,-3977,-3977,-3977
+    },
+
+    {
+       27,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,
+    -3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,
+    -3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,
+    -3978,-3978,-3978, 4224,-3978,-3978,-3978,-3978,-3978,-3978,
+
+    -3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978,
+    -3978,-3978,-3978,-3978,-3978,-3978,-3978,-3978, 4224,-3978,
+    -3978,-3978,-3978,-3978,-3978
+    },
+
+    {
+       27,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,
+    -3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,
+    -3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,
+    -3979,-3979, 4225,-3979,-3979,-3979,-3979,-3979,-3979,-3979,
+    -3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,-3979,
+    -3979,-3979,-3979,-3979,-3979,-3979,-3979, 4225,-3979,-3979,
+    -3979,-3979,-3979,-3979,-3979
+
+    },
+
+    {
+       27,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,
+    -3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,
+    -3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,
+    -3980,-3980,-3980, 4226,-3980,-3980,-3980,-3980,-3980,-3980,
+    -3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980,
+    -3980,-3980,-3980,-3980,-3980,-3980,-3980,-3980, 4226,-3980,
+    -3980,-3980,-3980,-3980,-3980
+    },
+
+    {
+       27,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,
+    -3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,
+    -3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,
+
+    -3981,-3981,-3981, 4227,-3981,-3981,-3981,-3981,-3981,-3981,
+    -3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981,
+    -3981,-3981,-3981,-3981,-3981,-3981,-3981,-3981, 4227,-3981,
+    -3981,-3981,-3981,-3981,-3981
+    },
+
+    {
+       27,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,
+    -3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,
+    -3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,
+    -3982,-3982,-3982, 4228,-3982,-3982,-3982,-3982,-3982,-3982,
+    -3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982,
+    -3982,-3982,-3982,-3982,-3982,-3982,-3982,-3982, 4228,-3982,
+
+    -3982,-3982,-3982,-3982,-3982
+    },
+
+    {
+       27,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,
+    -3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,
+    -3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,
+    -3983,-3983, 4229,-3983,-3983,-3983,-3983,-3983,-3983,-3983,
+    -3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,-3983,
+    -3983,-3983,-3983,-3983,-3983,-3983,-3983, 4229,-3983,-3983,
+    -3983,-3983,-3983,-3983,-3983
+    },
+
+    {
+       27,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,
+    -3984,-3984,-3984, 4230,-3984,-3984,-3984,-3984,-3984,-3984,
+
+    -3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,
+    -3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,
+    -3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,
+    -3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,-3984,
+    -3984,-3984,-3984,-3984,-3984
+    },
+
+    {
+       27,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,
+    -3985,-3985,-3985, 4231,-3985,-3985,-3985,-3985,-3985,-3985,
+    -3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,
+    -3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,
+    -3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,
+
+    -3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,-3985,
+    -3985,-3985,-3985,-3985,-3985
+    },
+
+    {
+       27,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,
+    -3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,
+    -3986,-3986,-3986,-3986,-3986,-3986,-3986, 4232,-3986,-3986,
+    -3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,
+    -3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,-3986,
+    -3986,-3986, 4232,-3986,-3986,-3986,-3986,-3986,-3986,-3986,
+    -3986,-3986,-3986,-3986,-3986
+    },
+
+    {
+       27,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,
+
+    -3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,
+    -3987,-3987,-3987,-3987,-3987,-3987,-3987, 4233,-3987,-3987,
+    -3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,
+    -3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,-3987,
+    -3987,-3987, 4233,-3987,-3987,-3987,-3987,-3987,-3987,-3987,
+    -3987,-3987,-3987,-3987,-3987
+    },
+
+    {
+       27,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,
+    -3988,-3988,-3988, 4234,-3988,-3988,-3988,-3988,-3988,-3988,
+    -3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,
+    -3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,
+
+    -3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,
+    -3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,-3988,
+    -3988,-3988,-3988,-3988,-3988
+    },
+
+    {
+       27,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,
+    -3989,-3989,-3989, 4235,-3989,-3989,-3989,-3989,-3989,-3989,
+    -3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,
+    -3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,
+    -3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,
+    -3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,-3989,
+    -3989,-3989,-3989,-3989,-3989
+
+    },
+
+    {
+       27,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,
+    -3990,-3990,-3990, 4236,-3990,-3990,-3990,-3990,-3990,-3990,
+    -3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,
+    -3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,
+    -3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,
+    -3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,-3990,
+    -3990,-3990,-3990,-3990,-3990
+    },
+
+    {
+       27,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,
+    -3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991, 4237,-3991,
+    -3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,
+
+    -3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,
+    -3991,-3991,-3991,-3991, 4237,-3991,-3991,-3991,-3991,-3991,
+    -3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,-3991,
+    -3991,-3991,-3991,-3991,-3991
+    },
+
+    {
+       27,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,
+    -3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992, 4238,-3992,
+    -3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,
+    -3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,
+    -3992,-3992,-3992,-3992, 4238,-3992,-3992,-3992,-3992,-3992,
+    -3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,-3992,
+
+    -3992,-3992,-3992,-3992,-3992
+    },
+
+    {
+       27,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,
+    -3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,
+    -3993,-3993,-3993,-3993,-3993,-3993,-3993, 4239,-3993,-3993,
+    -3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,
+    -3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,-3993,
+    -3993,-3993, 4239,-3993,-3993,-3993,-3993,-3993,-3993,-3993,
+    -3993,-3993,-3993,-3993,-3993
+    },
+
+    {
+       27,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,
+    -3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,
+
+    -3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,
+    -3994, 4240,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,
+    -3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,-3994,
+    -3994,-3994,-3994,-3994,-3994,-3994, 4240,-3994,-3994,-3994,
+    -3994,-3994,-3994,-3994,-3994
+    },
+
+    {
+       27,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995, 2808,
+    -3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,
+    -3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,
+    -3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,
+    -3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,
+
+    -3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,-3995,
+    -3995,-3995,-3995,-3995,-3995
+    },
+
+    {
+       27,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,
+    -3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,
+    -3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,
+    -3996,-3996, 4241,-3996,-3996,-3996,-3996,-3996,-3996,-3996,
+    -3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,-3996,
+    -3996,-3996,-3996,-3996,-3996,-3996,-3996, 4241,-3996,-3996,
+    -3996,-3996,-3996,-3996,-3996
+    },
+
+    {
+       27,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,
+
+    -3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,
+    -3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,
+    -3997,-3997,-3997, 4242,-3997,-3997,-3997,-3997,-3997,-3997,
+    -3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997,
+    -3997,-3997,-3997,-3997,-3997,-3997,-3997,-3997, 4242,-3997,
+    -3997,-3997,-3997,-3997,-3997
+    },
+
+    {
+       27,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,
+    -3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,
+    -3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,
+    -3998,-3998,-3998, 4243,-3998,-3998,-3998,-3998,-3998,-3998,
+
+    -3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998,
+    -3998,-3998,-3998,-3998,-3998,-3998,-3998,-3998, 4243,-3998,
+    -3998,-3998,-3998,-3998,-3998
+    },
+
+    {
+       27,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,
+    -3999,-3999,-3999, 4244,-3999,-3999,-3999,-3999,-3999,-3999,
+    -3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,
+    -3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,
+    -3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,
+    -3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,-3999,
+    -3999,-3999,-3999,-3999,-3999
+
+    },
+
+    {
+       27,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,
+    -4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,
+    -4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,
+    -4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,
+    -4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,
+    -4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,-4000,
+    -4000,-4000,-4000,-4000,-4000
+    },
+
+    {
+       27,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,
+    -4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,
+    -4001,-4001,-4001,-4001,-4001,-4001,-4001, 4245,-4001,-4001,
+
+    -4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,
+    -4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,-4001,
+    -4001,-4001, 4245,-4001,-4001,-4001,-4001,-4001,-4001,-4001,
+    -4001,-4001,-4001,-4001,-4001
+    },
+
+    {
+       27,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,
+    -4002,-4002,-4002, 4246,-4002,-4002,-4002,-4002,-4002,-4002,
+    -4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,
+    -4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,
+    -4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,
+    -4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,-4002,
+
+    -4002,-4002,-4002,-4002,-4002
+    },
+
+    {
+       27,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,
+    -4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,
+    -4003,-4003,-4003,-4003,-4003,-4003,-4003, 4247,-4003,-4003,
+    -4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,
+    -4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,-4003,
+    -4003,-4003, 4247,-4003,-4003,-4003,-4003,-4003,-4003,-4003,
+    -4003,-4003,-4003,-4003,-4003
+    },
+
+    {
+       27,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,
+    -4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,
+
+    -4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,
+    -4004, 4248,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,
+    -4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,-4004,
+    -4004,-4004,-4004,-4004,-4004,-4004, 4248,-4004,-4004,-4004,
+    -4004,-4004,-4004,-4004,-4004
+    },
+
+    {
+       27,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005, 2822,
+    -4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,
+    -4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,
+    -4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,
+    -4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,
+
+    -4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,-4005,
+    -4005,-4005,-4005,-4005,-4005
+    },
+
+    {
+       27,-4006, 4249, 4249,-4006,-4006,-4006,-4006,-4006,-4006,
+    -4006,-4006, 4250,-4006,-4006,-4006,-4006,-4006,-4006,-4006,
+    -4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,
+    -4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,
+    -4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,
+    -4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,-4006,
+    -4006,-4006,-4006,-4006,-4006
+    },
+
+    {
+       27,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,
+
+    -4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,
+    -4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,
+    -4007,-4007,-4007, 4251,-4007,-4007,-4007,-4007,-4007,-4007,
+    -4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007,
+    -4007,-4007,-4007,-4007,-4007,-4007,-4007,-4007, 4251,-4007,
+    -4007,-4007,-4007,-4007,-4007
+    },
+
+    {
+       27,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,
+    -4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,
+    -4008,-4008,-4008,-4008,-4008,-4008,-4008, 4252,-4008,-4008,
+    -4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,
+
+    -4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,-4008,
+    -4008,-4008, 4252,-4008,-4008,-4008,-4008,-4008,-4008,-4008,
+    -4008,-4008,-4008,-4008,-4008
+    },
+
+    {
+       27,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,
+    -4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,
+    -4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,
+    -4009,-4009,-4009, 4253,-4009,-4009,-4009,-4009,-4009,-4009,
+    -4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009,
+    -4009,-4009,-4009,-4009,-4009,-4009,-4009,-4009, 4253,-4009,
+    -4009,-4009,-4009,-4009,-4009
+
+    },
+
+    {
+       27,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,
+    -4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,
+    -4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,
+    -4010,-4010, 4254,-4010,-4010,-4010,-4010,-4010,-4010,-4010,
+    -4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,-4010,
+    -4010,-4010,-4010,-4010,-4010,-4010,-4010, 4254,-4010,-4010,
+    -4010,-4010,-4010,-4010,-4010
+    },
+
+    {
+       27,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,
+    -4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,
+    -4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,
+
+    -4011,-4011,-4011, 4255,-4011,-4011,-4011,-4011,-4011,-4011,
+    -4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011,
+    -4011,-4011,-4011,-4011,-4011,-4011,-4011,-4011, 4255,-4011,
+    -4011,-4011,-4011,-4011,-4011
+    },
+
+    {
+       27,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,
+    -4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,
+    -4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,
+    -4012,-4012,-4012, 4256,-4012,-4012,-4012,-4012,-4012,-4012,
+    -4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012,
+    -4012,-4012,-4012,-4012,-4012,-4012,-4012,-4012, 4256,-4012,
+
+    -4012,-4012,-4012,-4012,-4012
+    },
+
+    {
+       27,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,
+    -4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,
+    -4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,
+    -4013,-4013,-4013, 4257,-4013,-4013,-4013,-4013,-4013,-4013,
+    -4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013,
+    -4013,-4013,-4013,-4013,-4013,-4013,-4013,-4013, 4257,-4013,
+    -4013,-4013,-4013,-4013,-4013
+    },
+
+    {
+       27,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,
+    -4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,
+
+    -4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,
+    -4014,-4014, 4258,-4014,-4014,-4014,-4014,-4014,-4014,-4014,
+    -4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,-4014,
+    -4014,-4014,-4014,-4014,-4014,-4014,-4014, 4258,-4014,-4014,
+    -4014,-4014,-4014,-4014,-4014
+    },
+
+    {
+       27,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,
+    -4015,-4015,-4015, 4259,-4015,-4015,-4015,-4015,-4015,-4015,
+    -4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,
+    -4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,
+    -4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,
+
+    -4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,-4015,
+    -4015,-4015,-4015,-4015,-4015
+    },
+
+    {
+       27,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,
+    -4016,-4016,-4016, 4260,-4016,-4016,-4016,-4016,-4016,-4016,
+    -4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,
+    -4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,
+    -4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,
+    -4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,-4016,
+    -4016,-4016,-4016,-4016,-4016
+    },
+
+    {
+       27,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,
+
+    -4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,
+    -4017,-4017,-4017,-4017,-4017,-4017,-4017, 4261,-4017,-4017,
+    -4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,
+    -4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,-4017,
+    -4017,-4017, 4261,-4017,-4017,-4017,-4017,-4017,-4017,-4017,
+    -4017,-4017,-4017,-4017,-4017
+    },
+
+    {
+       27,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,
+    -4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,
+    -4018,-4018,-4018,-4018,-4018,-4018,-4018, 4262,-4018,-4018,
+    -4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,
+
+    -4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,-4018,
+    -4018,-4018, 4262,-4018,-4018,-4018,-4018,-4018,-4018,-4018,
+    -4018,-4018,-4018,-4018,-4018
+    },
+
+    {
+       27,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,
+    -4019,-4019,-4019, 4263,-4019,-4019,-4019,-4019,-4019,-4019,
+    -4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,
+    -4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,
+    -4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,
+    -4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,-4019,
+    -4019,-4019,-4019,-4019,-4019
+
+    },
+
+    {
+       27,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,
+    -4020,-4020,-4020, 4264,-4020,-4020,-4020,-4020,-4020,-4020,
+    -4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,
+    -4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,
+    -4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,
+    -4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,-4020,
+    -4020,-4020,-4020,-4020,-4020
+    },
+
+    {
+       27,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,
+    -4021,-4021,-4021, 4265,-4021,-4021,-4021,-4021,-4021,-4021,
+    -4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,
+
+    -4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,
+    -4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,
+    -4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,-4021,
+    -4021,-4021,-4021,-4021,-4021
+    },
+
+    {
+       27,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,
+    -4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022, 4266,-4022,
+    -4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,
+    -4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,
+    -4022,-4022,-4022,-4022, 4266,-4022,-4022,-4022,-4022,-4022,
+    -4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,-4022,
+
+    -4022,-4022,-4022,-4022,-4022
+    },
+
+    {
+       27,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,
+    -4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023, 4267,-4023,
+    -4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,
+    -4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,
+    -4023,-4023,-4023,-4023, 4267,-4023,-4023,-4023,-4023,-4023,
+    -4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,-4023,
+    -4023,-4023,-4023,-4023,-4023
+    },
+
+    {
+       27,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,
+    -4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,
+
+    -4024,-4024,-4024,-4024,-4024,-4024,-4024, 4268,-4024,-4024,
+    -4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,
+    -4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,-4024,
+    -4024,-4024, 4268,-4024,-4024,-4024,-4024,-4024,-4024,-4024,
+    -4024,-4024,-4024,-4024,-4024
+    },
+
+    {
+       27,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,
+    -4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,
+    -4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,
+    -4025, 4269,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,
+    -4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,-4025,
+
+    -4025,-4025,-4025,-4025,-4025,-4025, 4269,-4025,-4025,-4025,
+    -4025,-4025,-4025,-4025,-4025
+    },
+
+    {
+       27,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026, 2851,
+    -4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,
+    -4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,
+    -4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,
+    -4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,
+    -4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,-4026,
+    -4026,-4026,-4026,-4026,-4026
+    },
+
+    {
+       27,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,
+
+    -4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,
+    -4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,
+    -4027,-4027, 4270,-4027,-4027,-4027,-4027,-4027,-4027,-4027,
+    -4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,-4027,
+    -4027,-4027,-4027,-4027,-4027,-4027,-4027, 4270,-4027,-4027,
+    -4027,-4027,-4027,-4027,-4027
+    },
+
+    {
+       27,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,
+    -4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,
+    -4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,
+    -4028,-4028,-4028, 4271,-4028,-4028,-4028,-4028,-4028,-4028,
+
+    -4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028,
+    -4028,-4028,-4028,-4028,-4028,-4028,-4028,-4028, 4271,-4028,
+    -4028,-4028,-4028,-4028,-4028
+    },
+
+    {
+       27,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,
+    -4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,
+    -4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,
+    -4029,-4029,-4029, 4272,-4029,-4029,-4029,-4029,-4029,-4029,
+    -4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029,
+    -4029,-4029,-4029,-4029,-4029,-4029,-4029,-4029, 4272,-4029,
+    -4029,-4029,-4029,-4029,-4029
+
+    },
+
+    {
+       27,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,
+    -4030,-4030,-4030, 4273,-4030,-4030,-4030,-4030,-4030,-4030,
+    -4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,
+    -4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,
+    -4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,
+    -4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,-4030,
+    -4030,-4030,-4030,-4030,-4030
+    },
+
+    {
+       27,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,
+    -4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,
+    -4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,
+
+    -4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,
+    -4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,
+    -4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,-4031,
+    -4031,-4031,-4031,-4031,-4031
+    },
+
+    {
+       27,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,
+    -4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,
+    -4032,-4032,-4032,-4032,-4032,-4032,-4032, 4274,-4032,-4032,
+    -4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,
+    -4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,-4032,
+    -4032,-4032, 4274,-4032,-4032,-4032,-4032,-4032,-4032,-4032,
+
+    -4032,-4032,-4032,-4032,-4032
+    },
+
+    {
+       27,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,
+    -4033,-4033,-4033, 4275,-4033,-4033,-4033,-4033,-4033,-4033,
+    -4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,
+    -4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,
+    -4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,
+    -4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,-4033,
+    -4033,-4033,-4033,-4033,-4033
+    },
+
+    {
+       27,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,
+    -4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,
+
+    -4034,-4034,-4034,-4034,-4034,-4034,-4034, 4276,-4034,-4034,
+    -4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,
+    -4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,-4034,
+    -4034,-4034, 4276,-4034,-4034,-4034,-4034,-4034,-4034,-4034,
+    -4034,-4034,-4034,-4034,-4034
+    },
+
+    {
+       27,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,
+    -4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,
+    -4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,
+    -4035, 4277,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,
+    -4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,-4035,
+
+    -4035,-4035,-4035,-4035,-4035,-4035, 4277,-4035,-4035,-4035,
+    -4035,-4035,-4035,-4035,-4035
+    },
+
+    {
+       27,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036, 2865,
+    -4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,
+    -4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,
+    -4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,
+    -4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,
+    -4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,-4036,
+    -4036,-4036,-4036,-4036,-4036
+    },
+
+    {
+       27,-4037, 4278, 4278,-4037,-4037,-4037,-4037,-4037,-4037,
+
+    -4037,-4037, 4279,-4037,-4037,-4037,-4037,-4037,-4037,-4037,
+    -4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,
+    -4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,
+    -4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,
+    -4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,-4037,
+    -4037,-4037,-4037,-4037,-4037
+    },
+
+    {
+       27,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,
+    -4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,
+    -4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,
+    -4038,-4038,-4038, 4280,-4038,-4038,-4038,-4038,-4038,-4038,
+
+    -4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038,
+    -4038,-4038,-4038,-4038,-4038,-4038,-4038,-4038, 4280,-4038,
+    -4038,-4038,-4038,-4038,-4038
+    },
+
+    {
+       27,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,
+    -4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,
+    -4039,-4039,-4039,-4039,-4039,-4039,-4039, 4281,-4039,-4039,
+    -4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,
+    -4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,-4039,
+    -4039,-4039, 4281,-4039,-4039,-4039,-4039,-4039,-4039,-4039,
+    -4039,-4039,-4039,-4039,-4039
+
+    },
+
+    {
+       27,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,
+    -4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,
+    -4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,
+    -4040,-4040,-4040, 4282,-4040,-4040,-4040,-4040,-4040,-4040,
+    -4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040,
+    -4040,-4040,-4040,-4040,-4040,-4040,-4040,-4040, 4282,-4040,
+    -4040,-4040,-4040,-4040,-4040
+    },
+
+    {
+       27,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,
+    -4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,
+    -4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,
+
+    -4041,-4041, 4283,-4041,-4041,-4041,-4041,-4041,-4041,-4041,
+    -4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,-4041,
+    -4041,-4041,-4041,-4041,-4041,-4041,-4041, 4283,-4041,-4041,
+    -4041,-4041,-4041,-4041,-4041
+    },
+
+    {
+       27,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,
+    -4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,
+    -4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,
+    -4042,-4042,-4042, 4284,-4042,-4042,-4042,-4042,-4042,-4042,
+    -4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042,
+    -4042,-4042,-4042,-4042,-4042,-4042,-4042,-4042, 4284,-4042,
+
+    -4042,-4042,-4042,-4042,-4042
+    },
+
+    {
+       27,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,
+    -4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,
+    -4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,
+    -4043,-4043,-4043, 4285,-4043,-4043,-4043,-4043,-4043,-4043,
+    -4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043,
+    -4043,-4043,-4043,-4043,-4043,-4043,-4043,-4043, 4285,-4043,
+    -4043,-4043,-4043,-4043,-4043
+    },
+
+    {
+       27,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,
+    -4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,
+
+    -4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,
+    -4044,-4044,-4044, 4286,-4044,-4044,-4044,-4044,-4044,-4044,
+    -4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044,
+    -4044,-4044,-4044,-4044,-4044,-4044,-4044,-4044, 4286,-4044,
+    -4044,-4044,-4044,-4044,-4044
+    },
+
+    {
+       27,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,
+    -4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,
+    -4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,
+    -4045,-4045, 4287,-4045,-4045,-4045,-4045,-4045,-4045,-4045,
+    -4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,-4045,
+
+    -4045,-4045,-4045,-4045,-4045,-4045,-4045, 4287,-4045,-4045,
+    -4045,-4045,-4045,-4045,-4045
+    },
+
+    {
+       27,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,
+    -4046,-4046,-4046, 4288,-4046,-4046,-4046,-4046,-4046,-4046,
+    -4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,
+    -4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,
+    -4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,
+    -4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,-4046,
+    -4046,-4046,-4046,-4046,-4046
+    },
+
+    {
+       27,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,
+
+    -4047,-4047,-4047, 4289,-4047,-4047,-4047,-4047,-4047,-4047,
+    -4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,
+    -4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,
+    -4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,
+    -4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,-4047,
+    -4047,-4047,-4047,-4047,-4047
+    },
+
+    {
+       27,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,
+    -4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,
+    -4048,-4048,-4048,-4048,-4048,-4048,-4048, 4290,-4048,-4048,
+    -4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,
+
+    -4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,-4048,
+    -4048,-4048, 4290,-4048,-4048,-4048,-4048,-4048,-4048,-4048,
+    -4048,-4048,-4048,-4048,-4048
+    },
+
+    {
+       27,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,
+    -4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,
+    -4049,-4049,-4049,-4049,-4049,-4049,-4049, 4291,-4049,-4049,
+    -4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,
+    -4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,-4049,
+    -4049,-4049, 4291,-4049,-4049,-4049,-4049,-4049,-4049,-4049,
+    -4049,-4049,-4049,-4049,-4049
+
+    },
+
+    {
+       27,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,
+    -4050,-4050,-4050, 4292,-4050,-4050,-4050,-4050,-4050,-4050,
+    -4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,
+    -4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,
+    -4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,
+    -4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,-4050,
+    -4050,-4050,-4050,-4050,-4050
+    },
+
+    {
+       27,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,
+    -4051,-4051,-4051, 4293,-4051,-4051,-4051,-4051,-4051,-4051,
+    -4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,
+
+    -4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,
+    -4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,
+    -4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,-4051,
+    -4051,-4051,-4051,-4051,-4051
+    },
+
+    {
+       27,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,
+    -4052,-4052,-4052, 4294,-4052,-4052,-4052,-4052,-4052,-4052,
+    -4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,
+    -4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,
+    -4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,
+    -4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,-4052,
+
+    -4052,-4052,-4052,-4052,-4052
+    },
+
+    {
+       27,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,
+    -4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053, 4295,-4053,
+    -4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,
+    -4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,
+    -4053,-4053,-4053,-4053, 4295,-4053,-4053,-4053,-4053,-4053,
+    -4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,-4053,
+    -4053,-4053,-4053,-4053,-4053
+    },
+
+    {
+       27,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,
+    -4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054, 4296,-4054,
+
+    -4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,
+    -4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,
+    -4054,-4054,-4054,-4054, 4296,-4054,-4054,-4054,-4054,-4054,
+    -4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,-4054,
+    -4054,-4054,-4054,-4054,-4054
+    },
+
+    {
+       27,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,
+    -4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,
+    -4055,-4055,-4055,-4055,-4055,-4055,-4055, 4297,-4055,-4055,
+    -4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,
+    -4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,-4055,
+
+    -4055,-4055, 4297,-4055,-4055,-4055,-4055,-4055,-4055,-4055,
+    -4055,-4055,-4055,-4055,-4055
+    },
+
+    {
+       27,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,
+    -4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,
+    -4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,
+    -4056, 4298,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,
+    -4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,-4056,
+    -4056,-4056,-4056,-4056,-4056,-4056, 4298,-4056,-4056,-4056,
+    -4056,-4056,-4056,-4056,-4056
+    },
+
+    {
+       27,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057, 2894,
+
+    -4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,
+    -4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,
+    -4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,
+    -4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,
+    -4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,-4057,
+    -4057,-4057,-4057,-4057,-4057
+    },
+
+    {
+       27,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,
+    -4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,
+    -4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,
+    -4058,-4058, 4299,-4058,-4058,-4058,-4058,-4058,-4058,-4058,
+
+    -4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,-4058,
+    -4058,-4058,-4058,-4058,-4058,-4058,-4058, 4299,-4058,-4058,
+    -4058,-4058,-4058,-4058,-4058
+    },
+
+    {
+       27,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,
+    -4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,
+    -4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,
+    -4059,-4059,-4059, 4300,-4059,-4059,-4059,-4059,-4059,-4059,
+    -4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059,
+    -4059,-4059,-4059,-4059,-4059,-4059,-4059,-4059, 4300,-4059,
+    -4059,-4059,-4059,-4059,-4059
+
+    },
+
+    {
+       27,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,
+    -4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,
+    -4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,
+    -4060,-4060,-4060, 4301,-4060,-4060,-4060,-4060,-4060,-4060,
+    -4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060,
+    -4060,-4060,-4060,-4060,-4060,-4060,-4060,-4060, 4301,-4060,
+    -4060,-4060,-4060,-4060,-4060
+    },
+
+    {
+       27,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,
+    -4061,-4061,-4061, 4302,-4061,-4061,-4061,-4061,-4061,-4061,
+    -4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,
+
+    -4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,
+    -4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,
+    -4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,-4061,
+    -4061,-4061,-4061,-4061,-4061
+    },
+
+    {
+       27,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,
+    -4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,
+    -4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,
+    -4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,
+    -4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,
+    -4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,-4062,
+
+    -4062,-4062,-4062,-4062,-4062
+    },
+
+    {
+       27,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,
+    -4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,
+    -4063,-4063,-4063,-4063,-4063,-4063,-4063, 4303,-4063,-4063,
+    -4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,
+    -4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,-4063,
+    -4063,-4063, 4303,-4063,-4063,-4063,-4063,-4063,-4063,-4063,
+    -4063,-4063,-4063,-4063,-4063
+    },
+
+    {
+       27,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,
+    -4064,-4064,-4064, 4304,-4064,-4064,-4064,-4064,-4064,-4064,
+
+    -4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,
+    -4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,
+    -4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,
+    -4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,-4064,
+    -4064,-4064,-4064,-4064,-4064
+    },
+
+    {
+       27,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,
+    -4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,
+    -4065,-4065,-4065,-4065,-4065,-4065,-4065, 4305,-4065,-4065,
+    -4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,
+    -4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,-4065,
+
+    -4065,-4065, 4305,-4065,-4065,-4065,-4065,-4065,-4065,-4065,
+    -4065,-4065,-4065,-4065,-4065
+    },
+
+    {
+       27,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,
+    -4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,
+    -4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,
+    -4066, 4306,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,
+    -4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,-4066,
+    -4066,-4066,-4066,-4066,-4066,-4066, 4306,-4066,-4066,-4066,
+    -4066,-4066,-4066,-4066,-4066
+    },
+
+    {
+       27,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067, 2908,
+
+    -4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,
+    -4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,
+    -4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,
+    -4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,
+    -4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,-4067,
+    -4067,-4067,-4067,-4067,-4067
+    },
+
+    {
+       27,-4068, 4307, 4307,-4068,-4068,-4068,-4068,-4068,-4068,
+    -4068,-4068, 4308,-4068,-4068,-4068,-4068,-4068,-4068,-4068,
+    -4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,
+    -4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,
+
+    -4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,
+    -4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,-4068,
+    -4068,-4068,-4068,-4068,-4068
+    },
+
+    {
+       27,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,
+    -4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,
+    -4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,
+    -4069,-4069,-4069, 4309,-4069,-4069,-4069,-4069,-4069,-4069,
+    -4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069,
+    -4069,-4069,-4069,-4069,-4069,-4069,-4069,-4069, 4309,-4069,
+    -4069,-4069,-4069,-4069,-4069
+
+    },
+
+    {
+       27,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,
+    -4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,
+    -4070,-4070,-4070,-4070,-4070,-4070,-4070, 4310,-4070,-4070,
+    -4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,
+    -4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,-4070,
+    -4070,-4070, 4310,-4070,-4070,-4070,-4070,-4070,-4070,-4070,
+    -4070,-4070,-4070,-4070,-4070
+    },
+
+    {
+       27,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,
+    -4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,
+    -4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,
+
+    -4071,-4071,-4071, 4311,-4071,-4071,-4071,-4071,-4071,-4071,
+    -4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071,
+    -4071,-4071,-4071,-4071,-4071,-4071,-4071,-4071, 4311,-4071,
+    -4071,-4071,-4071,-4071,-4071
+    },
+
+    {
+       27,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,
+    -4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,
+    -4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,
+    -4072,-4072, 4312,-4072,-4072,-4072,-4072,-4072,-4072,-4072,
+    -4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,-4072,
+    -4072,-4072,-4072,-4072,-4072,-4072,-4072, 4312,-4072,-4072,
+
+    -4072,-4072,-4072,-4072,-4072
+    },
+
+    {
+       27,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,
+    -4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,
+    -4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,
+    -4073,-4073,-4073, 4313,-4073,-4073,-4073,-4073,-4073,-4073,
+    -4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073,
+    -4073,-4073,-4073,-4073,-4073,-4073,-4073,-4073, 4313,-4073,
+    -4073,-4073,-4073,-4073,-4073
+    },
+
+    {
+       27,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,
+    -4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,
+
+    -4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,
+    -4074,-4074,-4074, 4314,-4074,-4074,-4074,-4074,-4074,-4074,
+    -4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074,
+    -4074,-4074,-4074,-4074,-4074,-4074,-4074,-4074, 4314,-4074,
+    -4074,-4074,-4074,-4074,-4074
+    },
+
+    {
+       27,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,
+    -4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,
+    -4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,
+    -4075,-4075,-4075, 4315,-4075,-4075,-4075,-4075,-4075,-4075,
+    -4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075,
+
+    -4075,-4075,-4075,-4075,-4075,-4075,-4075,-4075, 4315,-4075,
+    -4075,-4075,-4075,-4075,-4075
+    },
+
+    {
+       27,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,
+    -4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,
+    -4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,
+    -4076,-4076, 4316,-4076,-4076,-4076,-4076,-4076,-4076,-4076,
+    -4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,-4076,
+    -4076,-4076,-4076,-4076,-4076,-4076,-4076, 4316,-4076,-4076,
+    -4076,-4076,-4076,-4076,-4076
+    },
+
+    {
+       27,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,
+
+    -4077,-4077,-4077, 4317,-4077,-4077,-4077,-4077,-4077,-4077,
+    -4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,
+    -4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,
+    -4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,
+    -4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,-4077,
+    -4077,-4077,-4077,-4077,-4077
+    },
+
+    {
+       27,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,
+    -4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,
+    -4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,
+    -4078,-4078,-4078,-4078,-4078,-4078,-4078, 4318,-4078,-4078,
+
+    -4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,
+    -4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,-4078,
+    -4078,-4078, 4318,-4078,-4078
+    },
+
+    {
+       27,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,
+    -4079,-4079,-4079, 4319,-4079,-4079,-4079,-4079,-4079,-4079,
+    -4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,
+    -4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,
+    -4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,
+    -4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,-4079,
+    -4079,-4079,-4079,-4079,-4079
+
+    },
+
+    {
+       27,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,
+    -4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,
+    -4080,-4080,-4080,-4080,-4080,-4080,-4080, 4320,-4080,-4080,
+    -4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,
+    -4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,-4080,
+    -4080,-4080, 4320,-4080,-4080,-4080,-4080,-4080,-4080,-4080,
+    -4080,-4080,-4080,-4080,-4080
+    },
+
+    {
+       27,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,
+    -4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,
+    -4081,-4081,-4081,-4081,-4081,-4081,-4081, 4321,-4081,-4081,
+
+    -4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,
+    -4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,-4081,
+    -4081,-4081, 4321,-4081,-4081,-4081,-4081,-4081,-4081,-4081,
+    -4081,-4081,-4081,-4081,-4081
+    },
+
+    {
+       27,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,
+    -4082,-4082,-4082, 4322,-4082,-4082,-4082,-4082,-4082,-4082,
+    -4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,
+    -4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,
+    -4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,
+    -4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,-4082,
+
+    -4082,-4082,-4082,-4082,-4082
+    },
+
+    {
+       27,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,
+    -4083,-4083,-4083, 4323,-4083,-4083,-4083,-4083,-4083,-4083,
+    -4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,
+    -4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,
+    -4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,
+    -4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,-4083,
+    -4083,-4083,-4083,-4083,-4083
+    },
+
+    {
+       27,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,
+    -4084,-4084,-4084, 4324,-4084,-4084,-4084,-4084,-4084,-4084,
+
+    -4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,
+    -4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,
+    -4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,
+    -4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,-4084,
+    -4084,-4084,-4084,-4084,-4084
+    },
+
+    {
+       27,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,
+    -4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085, 4325,-4085,
+    -4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,
+    -4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,
+    -4085,-4085,-4085,-4085, 4325,-4085,-4085,-4085,-4085,-4085,
+
+    -4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,-4085,
+    -4085,-4085,-4085,-4085,-4085
+    },
+
+    {
+       27,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,
+    -4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086, 4326,-4086,
+    -4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,
+    -4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,
+    -4086,-4086,-4086,-4086, 4326,-4086,-4086,-4086,-4086,-4086,
+    -4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,-4086,
+    -4086,-4086,-4086,-4086,-4086
+    },
+
+    {
+       27,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,
+
+    -4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,
+    -4087,-4087,-4087,-4087,-4087,-4087,-4087, 4327,-4087,-4087,
+    -4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,
+    -4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,-4087,
+    -4087,-4087, 4327,-4087,-4087,-4087,-4087,-4087,-4087,-4087,
+    -4087,-4087,-4087,-4087,-4087
+    },
+
+    {
+       27,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,
+    -4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,
+    -4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,
+    -4088, 4328,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,
+
+    -4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,-4088,
+    -4088,-4088,-4088,-4088,-4088,-4088, 4328,-4088,-4088,-4088,
+    -4088,-4088,-4088,-4088,-4088
+    },
+
+    {
+       27,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089, 2937,
+    -4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,
+    -4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,
+    -4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,
+    -4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,
+    -4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,-4089,
+    -4089,-4089,-4089,-4089,-4089
+
+    },
+
+    {
+       27,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,
+    -4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,
+    -4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,
+    -4090,-4090, 4329,-4090,-4090,-4090,-4090,-4090,-4090,-4090,
+    -4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,-4090,
+    -4090,-4090,-4090,-4090,-4090,-4090,-4090, 4329,-4090,-4090,
+    -4090,-4090,-4090,-4090,-4090
+    },
+
+    {
+       27,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,
+    -4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,
+    -4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,
+
+    -4091,-4091,-4091, 4330,-4091,-4091,-4091,-4091,-4091,-4091,
+    -4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091,
+    -4091,-4091,-4091,-4091,-4091,-4091,-4091,-4091, 4330,-4091,
+    -4091,-4091,-4091,-4091,-4091
+    },
+
+    {
+       27,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,
+    -4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,
+    -4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,
+    -4092,-4092,-4092, 4331,-4092,-4092,-4092,-4092,-4092,-4092,
+    -4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092,
+    -4092,-4092,-4092,-4092,-4092,-4092,-4092,-4092, 4331,-4092,
+
+    -4092,-4092,-4092,-4092,-4092
+    },
+
+    {
+       27,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,
+    -4093,-4093,-4093, 4332,-4093,-4093,-4093,-4093,-4093,-4093,
+    -4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,
+    -4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,
+    -4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,
+    -4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,-4093,
+    -4093,-4093,-4093,-4093,-4093
+    },
+
+    {
+       27,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,
+    -4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,
+
+    -4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,
+    -4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,
+    -4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,
+    -4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,-4094,
+    -4094,-4094,-4094,-4094,-4094
+    },
+
+    {
+       27,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,
+    -4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,
+    -4095,-4095,-4095,-4095,-4095,-4095,-4095, 4333,-4095,-4095,
+    -4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,
+    -4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,-4095,
+
+    -4095,-4095, 4333,-4095,-4095,-4095,-4095,-4095,-4095,-4095,
+    -4095,-4095,-4095,-4095,-4095
+    },
+
+    {
+       27,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,
+    -4096,-4096,-4096, 4334,-4096,-4096,-4096,-4096,-4096,-4096,
+    -4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,
+    -4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,
+    -4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,
+    -4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,-4096,
+    -4096,-4096,-4096,-4096,-4096
+    },
+
+    {
+       27,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,
+
+    -4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,
+    -4097,-4097,-4097,-4097,-4097,-4097,-4097, 4335,-4097,-4097,
+    -4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,
+    -4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,-4097,
+    -4097,-4097, 4335,-4097,-4097,-4097,-4097,-4097,-4097,-4097,
+    -4097,-4097,-4097,-4097,-4097
+    },
+
+    {
+       27,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,
+    -4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,
+    -4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,
+    -4098, 4336,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,
+
+    -4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,-4098,
+    -4098,-4098,-4098,-4098,-4098,-4098, 4336,-4098,-4098,-4098,
+    -4098,-4098,-4098,-4098,-4098
+    },
+
+    {
+       27,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099, 2951,
+    -4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,
+    -4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,
+    -4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,
+    -4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,
+    -4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,-4099,
+    -4099,-4099,-4099,-4099,-4099
+
+    },
+
+    {
+       27,-4100, 4337, 4337,-4100,-4100,-4100,-4100,-4100,-4100,
+    -4100,-4100, 4338,-4100,-4100,-4100,-4100,-4100,-4100,-4100,
+    -4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,
+    -4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,
+    -4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,
+    -4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,-4100,
+    -4100,-4100,-4100,-4100,-4100
+    },
+
+    {
+       27,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,
+    -4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,
+    -4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,
+
+    -4101,-4101,-4101, 4339,-4101,-4101,-4101,-4101,-4101,-4101,
+    -4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101,
+    -4101,-4101,-4101,-4101,-4101,-4101,-4101,-4101, 4339,-4101,
+    -4101,-4101,-4101,-4101,-4101
+    },
+
+    {
+       27,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,
+    -4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,
+    -4102,-4102,-4102,-4102,-4102,-4102,-4102, 4340,-4102,-4102,
+    -4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,
+    -4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,-4102,
+    -4102,-4102, 4340,-4102,-4102,-4102,-4102,-4102,-4102,-4102,
+
+    -4102,-4102,-4102,-4102,-4102
+    },
+
+    {
+       27,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,
+    -4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,
+    -4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,
+    -4103,-4103,-4103, 4341,-4103,-4103,-4103,-4103,-4103,-4103,
+    -4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103,
+    -4103,-4103,-4103,-4103,-4103,-4103,-4103,-4103, 4341,-4103,
+    -4103,-4103,-4103,-4103,-4103
+    },
+
+    {
+       27,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,
+    -4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,
+
+    -4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,
+    -4104,-4104, 4342,-4104,-4104,-4104,-4104,-4104,-4104,-4104,
+    -4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,-4104,
+    -4104,-4104,-4104,-4104,-4104,-4104,-4104, 4342,-4104,-4104,
+    -4104,-4104,-4104,-4104,-4104
+    },
+
+    {
+       27,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,
+    -4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,
+    -4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,
+    -4105,-4105,-4105, 4343,-4105,-4105,-4105,-4105,-4105,-4105,
+    -4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105,
+
+    -4105,-4105,-4105,-4105,-4105,-4105,-4105,-4105, 4343,-4105,
+    -4105,-4105,-4105,-4105,-4105
+    },
+
+    {
+       27,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,
+    -4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,
+    -4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,
+    -4106,-4106,-4106, 4344,-4106,-4106,-4106,-4106,-4106,-4106,
+    -4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106,
+    -4106,-4106,-4106,-4106,-4106,-4106,-4106,-4106, 4344,-4106,
+    -4106,-4106,-4106,-4106,-4106
+    },
+
+    {
+       27,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,
+
+    -4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,
+    -4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,
+    -4107,-4107,-4107, 4345,-4107,-4107,-4107,-4107,-4107,-4107,
+    -4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107,
+    -4107,-4107,-4107,-4107,-4107,-4107,-4107,-4107, 4345,-4107,
+    -4107,-4107,-4107,-4107,-4107
+    },
+
+    {
+       27,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,
+    -4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,
+    -4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,
+    -4108,-4108, 4346,-4108,-4108,-4108,-4108,-4108,-4108,-4108,
+
+    -4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,-4108,
+    -4108,-4108,-4108,-4108,-4108,-4108,-4108, 4346,-4108,-4108,
+    -4108,-4108,-4108,-4108,-4108
+    },
+
+    {
+       27,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,
+    -4109,-4109,-4109, 4347,-4109,-4109,-4109,-4109,-4109,-4109,
+    -4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,
+    -4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,
+    -4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,
+    -4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,-4109,
+    -4109,-4109,-4109,-4109,-4109
+
+    },
+
+    {
+       27,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,
+    -4110,-4110,-4110, 4348,-4110,-4110,-4110,-4110,-4110,-4110,
+    -4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,
+    -4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,
+    -4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,
+    -4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,-4110,
+    -4110,-4110,-4110,-4110,-4110
+    },
+
+    {
+       27,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,
+    -4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,
+    -4111,-4111,-4111,-4111,-4111,-4111,-4111, 4349,-4111,-4111,
+
+    -4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,
+    -4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,-4111,
+    -4111,-4111, 4349,-4111,-4111,-4111,-4111,-4111,-4111,-4111,
+    -4111,-4111,-4111,-4111,-4111
+    },
+
+    {
+       27,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,
+    -4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,
+    -4112,-4112,-4112,-4112,-4112,-4112,-4112, 4350,-4112,-4112,
+    -4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,
+    -4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,-4112,
+    -4112,-4112, 4350,-4112,-4112,-4112,-4112,-4112,-4112,-4112,
+
+    -4112,-4112,-4112,-4112,-4112
+    },
+
+    {
+       27,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,
+    -4113,-4113,-4113, 4351,-4113,-4113,-4113,-4113,-4113,-4113,
+    -4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,
+    -4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,
+    -4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,
+    -4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,-4113,
+    -4113,-4113,-4113,-4113,-4113
+    },
+
+    {
+       27,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,
+    -4114,-4114,-4114, 4352,-4114,-4114,-4114,-4114,-4114,-4114,
+
+    -4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,
+    -4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,
+    -4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,
+    -4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,-4114,
+    -4114,-4114,-4114,-4114,-4114
+    },
+
+    {
+       27,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,
+    -4115,-4115,-4115, 4353,-4115,-4115,-4115,-4115,-4115,-4115,
+    -4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,
+    -4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,
+    -4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,
+
+    -4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,-4115,
+    -4115,-4115,-4115,-4115,-4115
+    },
+
+    {
+       27,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,
+    -4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116, 4354,-4116,
+    -4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,
+    -4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,
+    -4116,-4116,-4116,-4116, 4354,-4116,-4116,-4116,-4116,-4116,
+    -4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,-4116,
+    -4116,-4116,-4116,-4116,-4116
+    },
+
+    {
+       27,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,
+
+    -4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117, 4355,-4117,
+    -4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,
+    -4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,
+    -4117,-4117,-4117,-4117, 4355,-4117,-4117,-4117,-4117,-4117,
+    -4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,-4117,
+    -4117,-4117,-4117,-4117,-4117
+    },
+
+    {
+       27,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,
+    -4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,
+    -4118,-4118,-4118,-4118,-4118,-4118,-4118, 4356,-4118,-4118,
+    -4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,
+
+    -4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,-4118,
+    -4118,-4118, 4356,-4118,-4118,-4118,-4118,-4118,-4118,-4118,
+    -4118,-4118,-4118,-4118,-4118
+    },
+
+    {
+       27,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,
+    -4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,
+    -4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,
+    -4119, 4357,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,
+    -4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,-4119,
+    -4119,-4119,-4119,-4119,-4119,-4119, 4357,-4119,-4119,-4119,
+    -4119,-4119,-4119,-4119,-4119
+
+    },
+
+    {
+       27,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120, 2980,
+    -4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,
+    -4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,
+    -4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,
+    -4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,
+    -4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,-4120,
+    -4120,-4120,-4120,-4120,-4120
+    },
+
+    {
+       27,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,
+    -4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,
+    -4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,
+
+    -4121,-4121, 4358,-4121,-4121,-4121,-4121,-4121,-4121,-4121,
+    -4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,-4121,
+    -4121,-4121,-4121,-4121,-4121,-4121,-4121, 4358,-4121,-4121,
+    -4121,-4121,-4121,-4121,-4121
+    },
+
+    {
+       27,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,
+    -4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,
+    -4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,
+    -4122,-4122,-4122, 4359,-4122,-4122,-4122,-4122,-4122,-4122,
+    -4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122,
+    -4122,-4122,-4122,-4122,-4122,-4122,-4122,-4122, 4359,-4122,
+
+    -4122,-4122,-4122,-4122,-4122
+    },
+
+    {
+       27,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,
+    -4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,
+    -4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,
+    -4123,-4123,-4123, 4360,-4123,-4123,-4123,-4123,-4123,-4123,
+    -4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123,
+    -4123,-4123,-4123,-4123,-4123,-4123,-4123,-4123, 4360,-4123,
+    -4123,-4123,-4123,-4123,-4123
+    },
+
+    {
+       27,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,
+    -4124,-4124,-4124, 4361,-4124,-4124,-4124,-4124,-4124,-4124,
+
+    -4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,
+    -4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,
+    -4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,
+    -4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,-4124,
+    -4124,-4124,-4124,-4124,-4124
+    },
+
+    {
+       27,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,
+    -4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,
+    -4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,
+    -4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,
+    -4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,
+
+    -4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,-4125,
+    -4125,-4125,-4125,-4125,-4125
+    },
+
+    {
+       27,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,
+    -4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,
+    -4126,-4126,-4126,-4126,-4126,-4126,-4126, 4362,-4126,-4126,
+    -4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,
+    -4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,-4126,
+    -4126,-4126, 4362,-4126,-4126,-4126,-4126,-4126,-4126,-4126,
+    -4126,-4126,-4126,-4126,-4126
+    },
+
+    {
+       27,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,
+
+    -4127,-4127,-4127, 4363,-4127,-4127,-4127,-4127,-4127,-4127,
+    -4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,
+    -4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,
+    -4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,
+    -4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,-4127,
+    -4127,-4127,-4127,-4127,-4127
+    },
+
+    {
+       27,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,
+    -4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,
+    -4128,-4128,-4128,-4128,-4128,-4128,-4128, 4364,-4128,-4128,
+    -4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,
+
+    -4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,-4128,
+    -4128,-4128, 4364,-4128,-4128,-4128,-4128,-4128,-4128,-4128,
+    -4128,-4128,-4128,-4128,-4128
+    },
+
+    {
+       27,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,
+    -4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,
+    -4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,
+    -4129, 4365,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,
+    -4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,-4129,
+    -4129,-4129,-4129,-4129,-4129,-4129, 4365,-4129,-4129,-4129,
+    -4129,-4129,-4129,-4129,-4129
+
+    },
+
+    {
+       27,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130, 2994,
+    -4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,
+    -4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,
+    -4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,
+    -4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,
+    -4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,-4130,
+    -4130,-4130,-4130,-4130,-4130
+    },
+
+    {
+       27,-4131, 4366, 4366,-4131,-4131,-4131,-4131,-4131,-4131,
+    -4131,-4131, 4367,-4131,-4131,-4131,-4131,-4131,-4131,-4131,
+    -4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,
+
+    -4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,
+    -4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,
+    -4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,-4131,
+    -4131,-4131,-4131,-4131,-4131
+    },
+
+    {
+       27,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,
+    -4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,
+    -4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,
+    -4132,-4132,-4132, 4368,-4132,-4132,-4132,-4132,-4132,-4132,
+    -4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132,
+    -4132,-4132,-4132,-4132,-4132,-4132,-4132,-4132, 4368,-4132,
+
+    -4132,-4132,-4132,-4132,-4132
+    },
+
+    {
+       27,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,
+    -4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,
+    -4133,-4133,-4133,-4133,-4133,-4133,-4133, 4369,-4133,-4133,
+    -4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,
+    -4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,-4133,
+    -4133,-4133, 4369,-4133,-4133,-4133,-4133,-4133,-4133,-4133,
+    -4133,-4133,-4133,-4133,-4133
+    },
+
+    {
+       27,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,
+    -4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,
+
+    -4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,
+    -4134,-4134,-4134, 4370,-4134,-4134,-4134,-4134,-4134,-4134,
+    -4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134,
+    -4134,-4134,-4134,-4134,-4134,-4134,-4134,-4134, 4370,-4134,
+    -4134,-4134,-4134,-4134,-4134
+    },
+
+    {
+       27,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,
+    -4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,
+    -4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,
+    -4135,-4135, 4371,-4135,-4135,-4135,-4135,-4135,-4135,-4135,
+    -4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,-4135,
+
+    -4135,-4135,-4135,-4135,-4135,-4135,-4135, 4371,-4135,-4135,
+    -4135,-4135,-4135,-4135,-4135
+    },
+
+    {
+       27,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,
+    -4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,
+    -4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,
+    -4136,-4136,-4136, 4372,-4136,-4136,-4136,-4136,-4136,-4136,
+    -4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136,
+    -4136,-4136,-4136,-4136,-4136,-4136,-4136,-4136, 4372,-4136,
+    -4136,-4136,-4136,-4136,-4136
+    },
+
+    {
+       27,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,
+
+    -4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,
+    -4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,
+    -4137,-4137,-4137, 4373,-4137,-4137,-4137,-4137,-4137,-4137,
+    -4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137,
+    -4137,-4137,-4137,-4137,-4137,-4137,-4137,-4137, 4373,-4137,
+    -4137,-4137,-4137,-4137,-4137
+    },
+
+    {
+       27,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,
+    -4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,
+    -4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,
+    -4138,-4138,-4138, 4374,-4138,-4138,-4138,-4138,-4138,-4138,
+
+    -4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138,
+    -4138,-4138,-4138,-4138,-4138,-4138,-4138,-4138, 4374,-4138,
+    -4138,-4138,-4138,-4138,-4138
+    },
+
+    {
+       27,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,
+    -4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,
+    -4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,
+    -4139,-4139, 4375,-4139,-4139,-4139,-4139,-4139,-4139,-4139,
+    -4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,-4139,
+    -4139,-4139,-4139,-4139,-4139,-4139,-4139, 4375,-4139,-4139,
+    -4139,-4139,-4139,-4139,-4139
+
+    },
+
+    {
+       27,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,
+    -4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,
+    -4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,
+    -4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,
+    -4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,
+    -4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,-4140,
+    -4140,-4140,-4140,-4140,-4140
+    },
+
+    {
+       27,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,
+    -4141,-4141,-4141, 4376,-4141,-4141,-4141,-4141,-4141,-4141,
+    -4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,
+
+    -4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,
+    -4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,
+    -4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,-4141,
+    -4141,-4141,-4141,-4141,-4141
+    },
+
+    {
+       27,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,
+    -4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,
+    -4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,
+    -4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,
+    -4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,
+    -4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,-4142,
+
+    -4142,-4142,-4142,-4142,-4142
+    },
+
+    {
+       27,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,
+    -4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,
+    -4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,
+    -4143,-4143,-4143, 4377,-4143,-4143,-4143,-4143,-4143,-4143,
+    -4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143,
+    -4143,-4143,-4143,-4143,-4143,-4143,-4143,-4143, 4377,-4143,
+    -4143,-4143,-4143,-4143,-4143
+    },
+
+    {
+       27,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,
+    -4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,
+
+    -4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,
+    -4144,-4144,-4144, 4378,-4144,-4144,-4144,-4144,-4144,-4144,
+    -4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144,
+    -4144,-4144,-4144,-4144,-4144,-4144,-4144,-4144, 4378,-4144,
+    -4144,-4144,-4144,-4144,-4144
+    },
+
+    {
+       27,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,
+    -4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,
+    -4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,
+    -4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,
+    -4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,
+
+    -4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,-4145,
+    -4145,-4145,-4145,-4145,-4145
+    },
+
+    {
+       27,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,
+    -4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,
+    -4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,
+    -4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,
+    -4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,
+    -4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,-4146,
+    -4146,-4146,-4146,-4146,-4146
+    },
+
+    {
+       27,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,
+
+    -4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,
+    -4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,
+    -4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,
+    -4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,
+    -4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,-4147,
+    -4147,-4147,-4147,-4147,-4147
+    },
+
+    {
+       27,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,
+    -4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,
+    -4148,-4148,-4148,-4148,-4148,-4148,-4148, 4379,-4148,-4148,
+    -4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,
+
+    -4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,-4148,
+    -4148,-4148, 4379,-4148,-4148,-4148,-4148,-4148,-4148,-4148,
+    -4148,-4148,-4148,-4148,-4148
+    },
+
+    {
+       27,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,
+    -4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,
+    -4149,-4149,-4149,-4149,-4149,-4149,-4149, 4380,-4149,-4149,
+    -4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,
+    -4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,-4149,
+    -4149,-4149, 4380,-4149,-4149,-4149,-4149,-4149,-4149,-4149,
+    -4149,-4149,-4149,-4149,-4149
+
+    },
+
+    {
+       27,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,
+    -4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,
+    -4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,
+    -4150,-4150,-4150, 4381,-4150,-4150,-4150,-4150,-4150,-4150,
+    -4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150,
+    -4150,-4150,-4150,-4150,-4150,-4150,-4150,-4150, 4381,-4150,
+    -4150,-4150,-4150,-4150,-4150
+    },
+
+    {
+       27,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,
+    -4151,-4151,-4151,-4151, 4382,-4151,-4151,-4151,-4151,-4151,
+    -4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,
+
+    -4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,
+     4382,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,
+    -4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,-4151,
+    -4151,-4151,-4151,-4151,-4151
+    },
+
+    {
+       27,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,
+    -4152,-4152,-4152, 4383,-4152,-4152,-4152,-4152,-4152,-4152,
+    -4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,
+    -4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,
+    -4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,
+    -4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,-4152,
+
+    -4152,-4152,-4152,-4152,-4152
+    },
+
+    {
+       27,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,
+    -4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153, 4384,-4153,
+    -4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,
+    -4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,
+    -4153,-4153,-4153,-4153, 4384,-4153,-4153,-4153,-4153,-4153,
+    -4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,-4153,
+    -4153,-4153,-4153,-4153,-4153
+    },
+
+    {
+       27,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,
+    -4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,
+
+    -4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,
+    -4154,-4154, 4385,-4154,-4154,-4154,-4154,-4154,-4154,-4154,
+    -4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,-4154,
+    -4154,-4154,-4154,-4154,-4154,-4154,-4154, 4385,-4154,-4154,
+    -4154,-4154,-4154,-4154,-4154
+    },
+
+    {
+       27,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,
+    -4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,
+    -4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,
+    -4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,
+    -4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,
+
+    -4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,-4155,
+    -4155,-4155,-4155,-4155,-4155
+    },
+
+    {
+       27,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,
+    -4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,
+    -4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,
+    -4156,-4156,-4156, 4386,-4156,-4156,-4156,-4156,-4156,-4156,
+    -4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156,
+    -4156,-4156,-4156,-4156,-4156,-4156,-4156,-4156, 4386,-4156,
+    -4156,-4156,-4156,-4156,-4156
+    },
+
+    {
+       27,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,
+
+    -4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,
+    -4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,
+    -4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,
+    -4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,
+    -4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,-4157,
+    -4157,-4157,-4157,-4157,-4157
+    },
+
+    {
+       27,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,
+    -4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,
+    -4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,
+    -4158,-4158,-4158, 4387,-4158,-4158,-4158,-4158,-4158,-4158,
+
+    -4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158,
+    -4158,-4158,-4158,-4158,-4158,-4158,-4158,-4158, 4387,-4158,
+    -4158,-4158,-4158,-4158,-4158
+    },
+
+    {
+       27,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,
+    -4159,-4159,-4159,-4159, 4388,-4159,-4159,-4159,-4159,-4159,
+    -4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,
+    -4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,
+     4388,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,
+    -4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,-4159,
+    -4159,-4159,-4159,-4159,-4159
+
+    },
+
+    {
+       27,-4160, 4160, 4160,-4160,-4160,-4160,-4160,-4160,-4160,
+    -4160,-4160, 4161,-4160,-4160,-4160,-4160,-4160,-4160,-4160,
+    -4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,
+    -4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,
+    -4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,
+    -4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,-4160,
+    -4160,-4160,-4160,-4160,-4160
+    },
+
+    {
+       27,-4161,-4161,-4161,-4161,-4161,-4161,-4161,-4161,-4161,
+    -4161,-4161,-4161,-4161,-4161,-4161, 4389,-4161,-4161,-4161,
+    -4161,-4161,-4161,-4161,-4161,-4161,-4161,-4161,-4161, 4390,
+
+    -4161,-4161,-4161,-4161,-4161,-4161,-4161,-4161,-4161,-4161,
+    -4161,-4161, 4389,-4161,-4161,-4161,-4161,-4161,-4161,-4161,
+    -4161,-4161,-4161,-4161, 4390,-4161,-4161,-4161,-4161,-4161,
+    -4161,-4161,-4161,-4161,-4161
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 4391,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     4391,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 4392,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 4393,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184, 4394,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 4394,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184, 4395,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184, 4395,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,
+    -4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,
+    -4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,
+    -4166,-4166, 4396,-4166,-4166,-4166,-4166,-4166,-4166,-4166,
+    -4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,-4166,
+    -4166,-4166,-4166,-4166,-4166,-4166,-4166, 4396,-4166,-4166,
+    -4166,-4166,-4166,-4166,-4166
+    },
+
+    {
+       27,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,
+
+    -4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,
+    -4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,
+    -4167,-4167, 4397,-4167,-4167,-4167,-4167,-4167,-4167,-4167,
+    -4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,-4167,
+    -4167,-4167,-4167,-4167,-4167,-4167,-4167, 4397,-4167,-4167,
+    -4167,-4167,-4167,-4167,-4167
+    },
+
+    {
+       27,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,
+    -4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,
+    -4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,
+    -4168,-4168, 4398,-4168,-4168,-4168,-4168,-4168,-4168,-4168,
+
+    -4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,-4168,
+    -4168,-4168,-4168,-4168,-4168,-4168,-4168, 4398,-4168,-4168,
+    -4168,-4168,-4168,-4168,-4168
+    },
+
+    {
+       27,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,
+    -4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,
+    -4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,
+    -4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,
+    -4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,
+    -4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,-4169,
+    -4169,-4169,-4169,-4169,-4169
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 4399,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 4399,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,
+    -4171,-4171,-4171, 4400,-4171,-4171,-4171,-4171,-4171,-4171,
+    -4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,
+
+    -4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,
+    -4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,
+    -4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,-4171,
+    -4171,-4171,-4171,-4171,-4171
+    },
+
+    {
+       27,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,
+    -4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,
+    -4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,
+    -4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,
+    -4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,
+    -4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,-4172,
+
+    -4172,-4172,-4172,-4172,-4172
+    },
+
+    {
+       27,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,
+    -4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,
+    -4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,
+    -4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,
+    -4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,
+    -4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,-4173,
+    -4173,-4173,-4173,-4173,-4173
+    },
+
+    {
+       27,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,
+    -4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,
+
+    -4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,
+    -4174,-4174,-4174, 4401,-4174,-4174,-4174,-4174,-4174,-4174,
+    -4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174,
+    -4174,-4174,-4174,-4174,-4174,-4174,-4174,-4174, 4401,-4174,
+    -4174,-4174,-4174,-4174,-4174
+    },
+
+    {
+       27,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,
+    -4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,
+    -4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,
+    -4175,-4175,-4175, 4402,-4175,-4175,-4175,-4175,-4175,-4175,
+    -4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175,
+
+    -4175,-4175,-4175,-4175,-4175,-4175,-4175,-4175, 4402,-4175,
+    -4175,-4175,-4175,-4175,-4175
+    },
+
+    {
+       27,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,
+    -4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,
+    -4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,
+    -4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,
+    -4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,
+    -4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,-4176,
+    -4176,-4176,-4176,-4176,-4176
+    },
+
+    {
+       27,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,
+
+    -4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,
+    -4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,
+    -4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,
+    -4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,
+    -4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,-4177,
+    -4177,-4177,-4177,-4177,-4177
+    },
+
+    {
+       27,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,
+    -4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,
+    -4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,
+    -4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,
+
+    -4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,
+    -4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,-4178,
+    -4178,-4178,-4178,-4178,-4178
+    },
+
+    {
+       27,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,
+    -4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,
+    -4179,-4179,-4179,-4179,-4179,-4179,-4179, 4403,-4179,-4179,
+    -4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,
+    -4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,-4179,
+    -4179,-4179, 4403,-4179,-4179,-4179,-4179,-4179,-4179,-4179,
+    -4179,-4179,-4179,-4179,-4179
+
+    },
+
+    {
+       27,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,
+    -4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,
+    -4180,-4180,-4180,-4180,-4180,-4180,-4180, 4404,-4180,-4180,
+    -4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,
+    -4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,-4180,
+    -4180,-4180, 4404,-4180,-4180,-4180,-4180,-4180,-4180,-4180,
+    -4180,-4180,-4180,-4180,-4180
+    },
+
+    {
+       27,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,
+    -4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,
+    -4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,
+
+    -4181,-4181,-4181, 4405,-4181,-4181,-4181,-4181,-4181,-4181,
+    -4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181,
+    -4181,-4181,-4181,-4181,-4181,-4181,-4181,-4181, 4405,-4181,
+    -4181,-4181,-4181,-4181,-4181
+    },
+
+    {
+       27,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,
+    -4182,-4182,-4182,-4182, 4406,-4182,-4182,-4182,-4182,-4182,
+    -4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,
+    -4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,
+     4406,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,
+    -4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,-4182,
+
+    -4182,-4182,-4182,-4182,-4182
+    },
+
+    {
+       27,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,
+    -4183,-4183,-4183, 4407,-4183,-4183,-4183,-4183,-4183,-4183,
+    -4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,
+    -4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,
+    -4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,
+    -4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,-4183,
+    -4183,-4183,-4183,-4183,-4183
+    },
+
+    {
+       27,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,
+    -4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184, 4408,-4184,
+
+    -4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,
+    -4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,
+    -4184,-4184,-4184,-4184, 4408,-4184,-4184,-4184,-4184,-4184,
+    -4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,-4184,
+    -4184,-4184,-4184,-4184,-4184
+    },
+
+    {
+       27,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,
+    -4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,
+    -4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,
+    -4185,-4185, 4409,-4185,-4185,-4185,-4185,-4185,-4185,-4185,
+    -4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,-4185,
+
+    -4185,-4185,-4185,-4185,-4185,-4185,-4185, 4409,-4185,-4185,
+    -4185,-4185,-4185,-4185,-4185
+    },
+
+    {
+       27,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,
+    -4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,
+    -4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,
+    -4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,
+    -4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,
+    -4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,-4186,
+    -4186,-4186,-4186,-4186,-4186
+    },
+
+    {
+       27,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,
+
+    -4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,
+    -4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,
+    -4187,-4187,-4187, 4410,-4187,-4187,-4187,-4187,-4187,-4187,
+    -4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187,
+    -4187,-4187,-4187,-4187,-4187,-4187,-4187,-4187, 4410,-4187,
+    -4187,-4187,-4187,-4187,-4187
+    },
+
+    {
+       27,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,
+    -4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,
+    -4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,
+    -4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,
+
+    -4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,
+    -4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,-4188,
+    -4188,-4188,-4188,-4188,-4188
+    },
+
+    {
+       27,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,
+    -4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,
+    -4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,
+    -4189,-4189,-4189, 4411,-4189,-4189,-4189,-4189,-4189,-4189,
+    -4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189,
+    -4189,-4189,-4189,-4189,-4189,-4189,-4189,-4189, 4411,-4189,
+    -4189,-4189,-4189,-4189,-4189
+
+    },
+
+    {
+       27,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,
+    -4190,-4190,-4190,-4190, 4412,-4190,-4190,-4190,-4190,-4190,
+    -4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,
+    -4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,
+     4412,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,
+    -4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,-4190,
+    -4190,-4190,-4190,-4190,-4190
+    },
+
+    {
+       27,-4191, 4191, 4191,-4191,-4191,-4191,-4191,-4191,-4191,
+    -4191,-4191, 4192,-4191,-4191,-4191,-4191,-4191,-4191,-4191,
+    -4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,
+
+    -4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,
+    -4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,
+    -4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,-4191,
+    -4191,-4191,-4191,-4191,-4191
+    },
+
+    {
+       27,-4192,-4192,-4192,-4192,-4192,-4192,-4192,-4192,-4192,
+    -4192,-4192,-4192,-4192,-4192,-4192, 4413,-4192,-4192,-4192,
+    -4192,-4192,-4192,-4192,-4192,-4192,-4192,-4192,-4192, 4414,
+    -4192,-4192,-4192,-4192,-4192,-4192,-4192,-4192,-4192,-4192,
+    -4192,-4192, 4413,-4192,-4192,-4192,-4192,-4192,-4192,-4192,
+    -4192,-4192,-4192,-4192, 4414,-4192,-4192,-4192,-4192,-4192,
+
+    -4192,-4192,-4192,-4192,-4192
+    },
+
+    {
+       27,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,
+    -4193,-4193,-4193,-4193, 4415,-4193,-4193,-4193,-4193,-4193,
+    -4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,
+    -4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,
+     4415,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,
+    -4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,-4193,
+    -4193,-4193,-4193,-4193,-4193
+    },
+
+    {
+       27,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194, 4416,
+    -4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,
+
+    -4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,
+    -4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194, 4417,
+    -4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,
+    -4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,-4194,
+    -4194,-4194,-4194,-4194,-4194
+    },
+
+    {
+       27,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,
+    -4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,
+    -4195,-4195, 4418,-4195,-4195,-4195,-4195,-4195,-4195,-4195,
+    -4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,
+    -4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195, 4418,-4195,
+
+    -4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,-4195,
+    -4195,-4195,-4195,-4195,-4195
+    },
+
+    {
+       27,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,
+    -4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196, 4419,-4196,
+    -4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,
+    -4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,
+    -4196,-4196,-4196,-4196, 4419,-4196,-4196,-4196,-4196,-4196,
+    -4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,-4196,
+    -4196,-4196,-4196,-4196,-4196
+    },
+
+    {
+       27,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,
+
+    -4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,
+    -4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,
+    -4197,-4197, 4420,-4197,-4197,-4197,-4197,-4197,-4197,-4197,
+    -4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,-4197,
+    -4197,-4197,-4197,-4197,-4197,-4197,-4197, 4420,-4197,-4197,
+    -4197,-4197,-4197,-4197,-4197
+    },
+
+    {
+       27,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,
+    -4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,
+    -4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,
+    -4198,-4198, 4421,-4198,-4198,-4198,-4198,-4198,-4198,-4198,
+
+    -4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,-4198,
+    -4198,-4198,-4198,-4198,-4198,-4198,-4198, 4421,-4198,-4198,
+    -4198,-4198,-4198,-4198,-4198
+    },
+
+    {
+       27,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,
+    -4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,
+    -4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,
+    -4199,-4199, 4422,-4199,-4199,-4199,-4199,-4199,-4199,-4199,
+    -4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,-4199,
+    -4199,-4199,-4199,-4199,-4199,-4199,-4199, 4422,-4199,-4199,
+    -4199,-4199,-4199,-4199,-4199
+
+    },
+
+    {
+       27,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,
+    -4200,-4200,-4200, 4423,-4200,-4200,-4200,-4200,-4200,-4200,
+    -4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,
+    -4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,
+    -4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,
+    -4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,-4200,
+    -4200,-4200,-4200,-4200,-4200
+    },
+
+    {
+       27,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,
+    -4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,
+    -4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,
+
+    -4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,
+    -4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,
+    -4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,-4201,
+    -4201,-4201,-4201,-4201,-4201
+    },
+
+    {
+       27,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,
+    -4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,
+    -4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,
+    -4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,
+    -4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,
+    -4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,-4202,
+
+    -4202,-4202,-4202,-4202,-4202
+    },
+
+    {
+       27,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,
+    -4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,
+    -4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,
+    -4203,-4203,-4203, 4424,-4203,-4203,-4203,-4203,-4203,-4203,
+    -4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203,
+    -4203,-4203,-4203,-4203,-4203,-4203,-4203,-4203, 4424,-4203,
+    -4203,-4203,-4203,-4203,-4203
+    },
+
+    {
+       27,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,
+    -4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,
+
+    -4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,
+    -4204,-4204,-4204, 4425,-4204,-4204,-4204,-4204,-4204,-4204,
+    -4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204,
+    -4204,-4204,-4204,-4204,-4204,-4204,-4204,-4204, 4425,-4204,
+    -4204,-4204,-4204,-4204,-4204
+    },
+
+    {
+       27,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,
+    -4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,
+    -4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,
+    -4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,
+    -4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,
+
+    -4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,-4205,
+    -4205,-4205,-4205,-4205,-4205
+    },
+
+    {
+       27,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,
+    -4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,
+    -4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,
+    -4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,
+    -4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,
+    -4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,-4206,
+    -4206,-4206,-4206,-4206,-4206
+    },
+
+    {
+       27,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,
+
+    -4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,
+    -4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,
+    -4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,
+    -4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,
+    -4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,-4207,
+    -4207,-4207,-4207,-4207,-4207
+    },
+
+    {
+       27,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,
+    -4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,
+    -4208,-4208,-4208,-4208,-4208,-4208,-4208, 4426,-4208,-4208,
+    -4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,
+
+    -4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,-4208,
+    -4208,-4208, 4426,-4208,-4208,-4208,-4208,-4208,-4208,-4208,
+    -4208,-4208,-4208,-4208,-4208
+    },
+
+    {
+       27,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,
+    -4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,
+    -4209,-4209,-4209,-4209,-4209,-4209,-4209, 4427,-4209,-4209,
+    -4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,
+    -4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,-4209,
+    -4209,-4209, 4427,-4209,-4209,-4209,-4209,-4209,-4209,-4209,
+    -4209,-4209,-4209,-4209,-4209
+
+    },
+
+    {
+       27,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,
+    -4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,
+    -4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,
+    -4210,-4210,-4210, 4428,-4210,-4210,-4210,-4210,-4210,-4210,
+    -4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210,
+    -4210,-4210,-4210,-4210,-4210,-4210,-4210,-4210, 4428,-4210,
+    -4210,-4210,-4210,-4210,-4210
+    },
+
+    {
+       27,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,
+    -4211,-4211,-4211,-4211, 4429,-4211,-4211,-4211,-4211,-4211,
+    -4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,
+
+    -4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,
+     4429,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,
+    -4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,-4211,
+    -4211,-4211,-4211,-4211,-4211
+    },
+
+    {
+       27,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,
+    -4212,-4212,-4212, 4430,-4212,-4212,-4212,-4212,-4212,-4212,
+    -4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,
+    -4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,
+    -4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,
+    -4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,-4212,
+
+    -4212,-4212,-4212,-4212,-4212
+    },
+
+    {
+       27,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,
+    -4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213, 4431,-4213,
+    -4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,
+    -4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,
+    -4213,-4213,-4213,-4213, 4431,-4213,-4213,-4213,-4213,-4213,
+    -4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,-4213,
+    -4213,-4213,-4213,-4213,-4213
+    },
+
+    {
+       27,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,
+    -4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,
+
+    -4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,
+    -4214,-4214, 4432,-4214,-4214,-4214,-4214,-4214,-4214,-4214,
+    -4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,-4214,
+    -4214,-4214,-4214,-4214,-4214,-4214,-4214, 4432,-4214,-4214,
+    -4214,-4214,-4214,-4214,-4214
+    },
+
+    {
+       27,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,
+    -4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,
+    -4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,
+    -4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,
+    -4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,
+
+    -4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,-4215,
+    -4215,-4215,-4215,-4215,-4215
+    },
+
+    {
+       27,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,
+    -4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,
+    -4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,
+    -4216,-4216,-4216, 4433,-4216,-4216,-4216,-4216,-4216,-4216,
+    -4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216,
+    -4216,-4216,-4216,-4216,-4216,-4216,-4216,-4216, 4433,-4216,
+    -4216,-4216,-4216,-4216,-4216
+    },
+
+    {
+       27,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,
+
+    -4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,
+    -4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,
+    -4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,
+    -4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,
+    -4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,-4217,
+    -4217,-4217,-4217,-4217,-4217
+    },
+
+    {
+       27,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,
+    -4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,
+    -4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,
+    -4218,-4218,-4218, 4434,-4218,-4218,-4218,-4218,-4218,-4218,
+
+    -4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218,
+    -4218,-4218,-4218,-4218,-4218,-4218,-4218,-4218, 4434,-4218,
+    -4218,-4218,-4218,-4218,-4218
+    },
+
+    {
+       27,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,
+    -4219,-4219,-4219,-4219, 4435,-4219,-4219,-4219,-4219,-4219,
+    -4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,
+    -4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,
+     4435,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,
+    -4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,-4219,
+    -4219,-4219,-4219,-4219,-4219
+
+    },
+
+    {
+       27,-4220, 4220, 4220,-4220,-4220,-4220,-4220,-4220,-4220,
+    -4220,-4220, 4221,-4220,-4220,-4220,-4220,-4220,-4220,-4220,
+    -4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,
+    -4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,
+    -4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,
+    -4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,-4220,
+    -4220,-4220,-4220,-4220,-4220
+    },
+
+    {
+       27,-4221,-4221,-4221,-4221,-4221,-4221,-4221,-4221,-4221,
+    -4221,-4221,-4221,-4221,-4221,-4221, 4436,-4221,-4221,-4221,
+    -4221,-4221,-4221,-4221,-4221,-4221,-4221,-4221,-4221, 4437,
+
+    -4221,-4221,-4221,-4221,-4221,-4221,-4221,-4221,-4221,-4221,
+    -4221,-4221, 4436,-4221,-4221,-4221,-4221,-4221,-4221,-4221,
+    -4221,-4221,-4221,-4221, 4437,-4221,-4221,-4221,-4221,-4221,
+    -4221,-4221,-4221,-4221,-4221
+    },
+
+    {
+       27,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,
+    -4222,-4222,-4222,-4222, 4438,-4222,-4222,-4222,-4222,-4222,
+    -4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,
+    -4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,
+     4438,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,
+    -4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,-4222,
+
+    -4222,-4222,-4222,-4222,-4222
+    },
+
+    {
+       27,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223, 4439,
+    -4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,
+    -4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,
+    -4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223, 4440,
+    -4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,
+    -4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,-4223,
+    -4223,-4223,-4223,-4223,-4223
+    },
+
+    {
+       27,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,
+    -4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,
+
+    -4224,-4224, 4441,-4224,-4224,-4224,-4224,-4224,-4224,-4224,
+    -4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,
+    -4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224, 4441,-4224,
+    -4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,-4224,
+    -4224,-4224,-4224,-4224,-4224
+    },
+
+    {
+       27,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,
+    -4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225, 4442,-4225,
+    -4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,
+    -4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,
+    -4225,-4225,-4225,-4225, 4442,-4225,-4225,-4225,-4225,-4225,
+
+    -4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,-4225,
+    -4225,-4225,-4225,-4225,-4225
+    },
+
+    {
+       27,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,
+    -4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,
+    -4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,
+    -4226,-4226, 4443,-4226,-4226,-4226,-4226,-4226,-4226,-4226,
+    -4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,-4226,
+    -4226,-4226,-4226,-4226,-4226,-4226,-4226, 4443,-4226,-4226,
+    -4226,-4226,-4226,-4226,-4226
+    },
+
+    {
+       27,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,
+
+    -4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,
+    -4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,
+    -4227,-4227, 4444,-4227,-4227,-4227,-4227,-4227,-4227,-4227,
+    -4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,-4227,
+    -4227,-4227,-4227,-4227,-4227,-4227,-4227, 4444,-4227,-4227,
+    -4227,-4227,-4227,-4227,-4227
+    },
+
+    {
+       27,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,
+    -4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,
+    -4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,
+    -4228,-4228, 4445,-4228,-4228,-4228,-4228,-4228,-4228,-4228,
+
+    -4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,-4228,
+    -4228,-4228,-4228,-4228,-4228,-4228,-4228, 4445,-4228,-4228,
+    -4228,-4228,-4228,-4228,-4228
+    },
+
+    {
+       27,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,
+    -4229,-4229,-4229, 4446,-4229,-4229,-4229,-4229,-4229,-4229,
+    -4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,
+    -4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,
+    -4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,
+    -4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,-4229,
+    -4229,-4229,-4229,-4229,-4229
+
+    },
+
+    {
+       27,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,
+    -4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,
+    -4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,
+    -4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,
+    -4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,
+    -4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,-4230,
+    -4230,-4230,-4230,-4230,-4230
+    },
+
+    {
+       27,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,
+    -4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,
+    -4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,
+
+    -4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,
+    -4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,
+    -4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,-4231,
+    -4231,-4231,-4231,-4231,-4231
+    },
+
+    {
+       27,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,
+    -4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,
+    -4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,
+    -4232,-4232,-4232, 4447,-4232,-4232,-4232,-4232,-4232,-4232,
+    -4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232,
+    -4232,-4232,-4232,-4232,-4232,-4232,-4232,-4232, 4447,-4232,
+
+    -4232,-4232,-4232,-4232,-4232
+    },
+
+    {
+       27,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,
+    -4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,
+    -4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,
+    -4233,-4233,-4233, 4448,-4233,-4233,-4233,-4233,-4233,-4233,
+    -4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233,
+    -4233,-4233,-4233,-4233,-4233,-4233,-4233,-4233, 4448,-4233,
+    -4233,-4233,-4233,-4233,-4233
+    },
+
+    {
+       27,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,
+    -4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,
+
+    -4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,
+    -4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,
+    -4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,
+    -4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,-4234,
+    -4234,-4234,-4234,-4234,-4234
+    },
+
+    {
+       27,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,
+    -4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,
+    -4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,
+    -4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,
+    -4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,
+
+    -4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,-4235,
+    -4235,-4235,-4235,-4235,-4235
+    },
+
+    {
+       27,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,
+    -4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,
+    -4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,
+    -4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,
+    -4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,
+    -4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,-4236,
+    -4236,-4236,-4236,-4236,-4236
+    },
+
+    {
+       27,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,
+
+    -4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,
+    -4237,-4237,-4237,-4237,-4237,-4237,-4237, 4449,-4237,-4237,
+    -4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,
+    -4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,-4237,
+    -4237,-4237, 4449,-4237,-4237,-4237,-4237,-4237,-4237,-4237,
+    -4237,-4237,-4237,-4237,-4237
+    },
+
+    {
+       27,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,
+    -4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,
+    -4238,-4238,-4238,-4238,-4238,-4238,-4238, 4450,-4238,-4238,
+    -4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,
+
+    -4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,-4238,
+    -4238,-4238, 4450,-4238,-4238,-4238,-4238,-4238,-4238,-4238,
+    -4238,-4238,-4238,-4238,-4238
+    },
+
+    {
+       27,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,
+    -4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,
+    -4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,
+    -4239,-4239,-4239, 4451,-4239,-4239,-4239,-4239,-4239,-4239,
+    -4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239,
+    -4239,-4239,-4239,-4239,-4239,-4239,-4239,-4239, 4451,-4239,
+    -4239,-4239,-4239,-4239,-4239
+
+    },
+
+    {
+       27,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,
+    -4240,-4240,-4240,-4240, 4452,-4240,-4240,-4240,-4240,-4240,
+    -4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,
+    -4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,
+     4452,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,
+    -4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,-4240,
+    -4240,-4240,-4240,-4240,-4240
+    },
+
+    {
+       27,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,
+    -4241,-4241,-4241, 4453,-4241,-4241,-4241,-4241,-4241,-4241,
+    -4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,
+
+    -4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,
+    -4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,
+    -4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,-4241,
+    -4241,-4241,-4241,-4241,-4241
+    },
+
+    {
+       27,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,
+    -4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242, 4454,-4242,
+    -4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,
+    -4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,
+    -4242,-4242,-4242,-4242, 4454,-4242,-4242,-4242,-4242,-4242,
+    -4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,-4242,
+
+    -4242,-4242,-4242,-4242,-4242
+    },
+
+    {
+       27,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,
+    -4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,
+    -4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,
+    -4243,-4243, 4455,-4243,-4243,-4243,-4243,-4243,-4243,-4243,
+    -4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,-4243,
+    -4243,-4243,-4243,-4243,-4243,-4243,-4243, 4455,-4243,-4243,
+    -4243,-4243,-4243,-4243,-4243
+    },
+
+    {
+       27,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,
+    -4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,
+
+    -4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,
+    -4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,
+    -4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,
+    -4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,-4244,
+    -4244,-4244,-4244,-4244,-4244
+    },
+
+    {
+       27,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,
+    -4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,
+    -4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,
+    -4245,-4245,-4245, 4456,-4245,-4245,-4245,-4245,-4245,-4245,
+    -4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245,
+
+    -4245,-4245,-4245,-4245,-4245,-4245,-4245,-4245, 4456,-4245,
+    -4245,-4245,-4245,-4245,-4245
+    },
+
+    {
+       27,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,
+    -4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,
+    -4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,
+    -4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,
+    -4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,
+    -4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,-4246,
+    -4246,-4246,-4246,-4246,-4246
+    },
+
+    {
+       27,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,
+
+    -4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,
+    -4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,
+    -4247,-4247,-4247, 4457,-4247,-4247,-4247,-4247,-4247,-4247,
+    -4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247,
+    -4247,-4247,-4247,-4247,-4247,-4247,-4247,-4247, 4457,-4247,
+    -4247,-4247,-4247,-4247,-4247
+    },
+
+    {
+       27,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,
+    -4248,-4248,-4248,-4248, 4458,-4248,-4248,-4248,-4248,-4248,
+    -4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,
+    -4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,
+
+     4458,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,
+    -4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,-4248,
+    -4248,-4248,-4248,-4248,-4248
+    },
+
+    {
+       27,-4249, 4249, 4249,-4249,-4249,-4249,-4249,-4249,-4249,
+    -4249,-4249, 4250,-4249,-4249,-4249,-4249,-4249,-4249,-4249,
+    -4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,
+    -4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,
+    -4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,
+    -4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,-4249,
+    -4249,-4249,-4249,-4249,-4249
+
+    },
+
+    {
+       27,-4250,-4250,-4250,-4250,-4250,-4250,-4250,-4250,-4250,
+    -4250,-4250,-4250,-4250,-4250,-4250, 4459,-4250,-4250,-4250,
+    -4250,-4250,-4250,-4250,-4250,-4250,-4250,-4250,-4250, 4460,
+    -4250,-4250,-4250,-4250,-4250,-4250,-4250,-4250,-4250,-4250,
+    -4250,-4250, 4459,-4250,-4250,-4250,-4250,-4250,-4250,-4250,
+    -4250,-4250,-4250,-4250, 4460,-4250,-4250,-4250,-4250,-4250,
+    -4250,-4250,-4250,-4250,-4250
+    },
+
+    {
+       27,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,
+    -4251,-4251,-4251,-4251, 4461,-4251,-4251,-4251,-4251,-4251,
+    -4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,
+
+    -4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,
+     4461,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,
+    -4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,-4251,
+    -4251,-4251,-4251,-4251,-4251
+    },
+
+    {
+       27,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252, 4462,
+    -4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,
+    -4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,
+    -4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252, 4463,
+    -4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,
+    -4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,-4252,
+
+    -4252,-4252,-4252,-4252,-4252
+    },
+
+    {
+       27,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,
+    -4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,
+    -4253,-4253, 4464,-4253,-4253,-4253,-4253,-4253,-4253,-4253,
+    -4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,
+    -4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253, 4464,-4253,
+    -4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,-4253,
+    -4253,-4253,-4253,-4253,-4253
+    },
+
+    {
+       27,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,
+    -4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254, 4465,-4254,
+
+    -4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,
+    -4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,
+    -4254,-4254,-4254,-4254, 4465,-4254,-4254,-4254,-4254,-4254,
+    -4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,-4254,
+    -4254,-4254,-4254,-4254,-4254
+    },
+
+    {
+       27,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,
+    -4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,
+    -4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,
+    -4255,-4255, 4466,-4255,-4255,-4255,-4255,-4255,-4255,-4255,
+    -4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,-4255,
+
+    -4255,-4255,-4255,-4255,-4255,-4255,-4255, 4466,-4255,-4255,
+    -4255,-4255,-4255,-4255,-4255
+    },
+
+    {
+       27,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,
+    -4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,
+    -4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,
+    -4256,-4256, 4467,-4256,-4256,-4256,-4256,-4256,-4256,-4256,
+    -4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,-4256,
+    -4256,-4256,-4256,-4256,-4256,-4256,-4256, 4467,-4256,-4256,
+    -4256,-4256,-4256,-4256,-4256
+    },
+
+    {
+       27,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,
+
+    -4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,
+    -4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,
+    -4257,-4257, 4468,-4257,-4257,-4257,-4257,-4257,-4257,-4257,
+    -4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,-4257,
+    -4257,-4257,-4257,-4257,-4257,-4257,-4257, 4468,-4257,-4257,
+    -4257,-4257,-4257,-4257,-4257
+    },
+
+    {
+       27,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,
+    -4258,-4258,-4258, 4469,-4258,-4258,-4258,-4258,-4258,-4258,
+    -4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,
+    -4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,
+
+    -4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,
+    -4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,-4258,
+    -4258,-4258,-4258,-4258,-4258
+    },
+
+    {
+       27,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,
+    -4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,
+    -4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,
+    -4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,
+    -4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,
+    -4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,-4259,
+    -4259,-4259,-4259,-4259,-4259
+
+    },
+
+    {
+       27,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,
+    -4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,
+    -4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,
+    -4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,
+    -4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,
+    -4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,-4260,
+    -4260,-4260,-4260,-4260,-4260
+    },
+
+    {
+       27,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,
+    -4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,
+    -4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,
+
+    -4261,-4261,-4261, 4470,-4261,-4261,-4261,-4261,-4261,-4261,
+    -4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261,
+    -4261,-4261,-4261,-4261,-4261,-4261,-4261,-4261, 4470,-4261,
+    -4261,-4261,-4261,-4261,-4261
+    },
+
+    {
+       27,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,
+    -4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,
+    -4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,
+    -4262,-4262,-4262, 4471,-4262,-4262,-4262,-4262,-4262,-4262,
+    -4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262,
+    -4262,-4262,-4262,-4262,-4262,-4262,-4262,-4262, 4471,-4262,
+
+    -4262,-4262,-4262,-4262,-4262
+    },
+
+    {
+       27,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,
+    -4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,
+    -4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,
+    -4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,
+    -4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,
+    -4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,-4263,
+    -4263,-4263,-4263,-4263,-4263
+    },
+
+    {
+       27,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,
+    -4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,
+
+    -4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,
+    -4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,
+    -4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,
+    -4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,-4264,
+    -4264,-4264,-4264,-4264,-4264
+    },
+
+    {
+       27,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,
+    -4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,
+    -4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,
+    -4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,
+    -4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,
+
+    -4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,-4265,
+    -4265,-4265,-4265,-4265,-4265
+    },
+
+    {
+       27,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,
+    -4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,
+    -4266,-4266,-4266,-4266,-4266,-4266,-4266, 4472,-4266,-4266,
+    -4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,
+    -4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,-4266,
+    -4266,-4266, 4472,-4266,-4266,-4266,-4266,-4266,-4266,-4266,
+    -4266,-4266,-4266,-4266,-4266
+    },
+
+    {
+       27,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,
+
+    -4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,
+    -4267,-4267,-4267,-4267,-4267,-4267,-4267, 4473,-4267,-4267,
+    -4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,
+    -4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,-4267,
+    -4267,-4267, 4473,-4267,-4267,-4267,-4267,-4267,-4267,-4267,
+    -4267,-4267,-4267,-4267,-4267
+    },
+
+    {
+       27,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,
+    -4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,
+    -4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,
+    -4268,-4268,-4268, 4474,-4268,-4268,-4268,-4268,-4268,-4268,
+
+    -4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268,
+    -4268,-4268,-4268,-4268,-4268,-4268,-4268,-4268, 4474,-4268,
+    -4268,-4268,-4268,-4268,-4268
+    },
+
+    {
+       27,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,
+    -4269,-4269,-4269,-4269, 4475,-4269,-4269,-4269,-4269,-4269,
+    -4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,
+    -4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,
+     4475,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,
+    -4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,-4269,
+    -4269,-4269,-4269,-4269,-4269
+
+    },
+
+    {
+       27,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,
+    -4270,-4270,-4270, 4476,-4270,-4270,-4270,-4270,-4270,-4270,
+    -4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,
+    -4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,
+    -4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,
+    -4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,-4270,
+    -4270,-4270,-4270,-4270,-4270
+    },
+
+    {
+       27,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,
+    -4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271, 4477,-4271,
+    -4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,
+
+    -4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,
+    -4271,-4271,-4271,-4271, 4477,-4271,-4271,-4271,-4271,-4271,
+    -4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,-4271,
+    -4271,-4271,-4271,-4271,-4271
+    },
+
+    {
+       27,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,
+    -4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,
+    -4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,
+    -4272,-4272, 4478,-4272,-4272,-4272,-4272,-4272,-4272,-4272,
+    -4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,-4272,
+    -4272,-4272,-4272,-4272,-4272,-4272,-4272, 4478,-4272,-4272,
+
+    -4272,-4272,-4272,-4272,-4272
+    },
+
+    {
+       27,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,
+    -4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,
+    -4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,
+    -4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,
+    -4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,
+    -4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,-4273,
+    -4273,-4273,-4273,-4273,-4273
+    },
+
+    {
+       27,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,
+    -4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,
+
+    -4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,
+    -4274,-4274,-4274, 4479,-4274,-4274,-4274,-4274,-4274,-4274,
+    -4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274,
+    -4274,-4274,-4274,-4274,-4274,-4274,-4274,-4274, 4479,-4274,
+    -4274,-4274,-4274,-4274,-4274
+    },
+
+    {
+       27,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,
+    -4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,
+    -4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,
+    -4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,
+    -4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,
+
+    -4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,-4275,
+    -4275,-4275,-4275,-4275,-4275
+    },
+
+    {
+       27,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,
+    -4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,
+    -4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,
+    -4276,-4276,-4276, 4480,-4276,-4276,-4276,-4276,-4276,-4276,
+    -4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276,
+    -4276,-4276,-4276,-4276,-4276,-4276,-4276,-4276, 4480,-4276,
+    -4276,-4276,-4276,-4276,-4276
+    },
+
+    {
+       27,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,
+
+    -4277,-4277,-4277,-4277, 4481,-4277,-4277,-4277,-4277,-4277,
+    -4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,
+    -4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,
+     4481,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,
+    -4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,-4277,
+    -4277,-4277,-4277,-4277,-4277
+    },
+
+    {
+       27,-4278, 4278, 4278,-4278,-4278,-4278,-4278,-4278,-4278,
+    -4278,-4278, 4279,-4278,-4278,-4278,-4278,-4278,-4278,-4278,
+    -4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,
+    -4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,
+
+    -4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,
+    -4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,-4278,
+    -4278,-4278,-4278,-4278,-4278
+    },
+
+    {
+       27,-4279,-4279,-4279,-4279,-4279,-4279,-4279,-4279,-4279,
+    -4279,-4279,-4279,-4279,-4279,-4279, 4482,-4279,-4279,-4279,
+    -4279,-4279,-4279,-4279,-4279,-4279,-4279,-4279,-4279, 4483,
+    -4279,-4279,-4279,-4279,-4279,-4279,-4279,-4279,-4279,-4279,
+    -4279,-4279, 4482,-4279,-4279,-4279,-4279,-4279,-4279,-4279,
+    -4279,-4279,-4279,-4279, 4483,-4279,-4279,-4279,-4279,-4279,
+    -4279,-4279,-4279,-4279,-4279
+
+    },
+
+    {
+       27,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,
+    -4280,-4280,-4280,-4280, 4484,-4280,-4280,-4280,-4280,-4280,
+    -4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,
+    -4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,
+     4484,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,
+    -4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,-4280,
+    -4280,-4280,-4280,-4280,-4280
+    },
+
+    {
+       27,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281, 4485,
+    -4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,
+    -4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,
+
+    -4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281, 4486,
+    -4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,
+    -4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,-4281,
+    -4281,-4281,-4281,-4281,-4281
+    },
+
+    {
+       27,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,
+    -4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,
+    -4282,-4282, 4487,-4282,-4282,-4282,-4282,-4282,-4282,-4282,
+    -4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,
+    -4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282, 4487,-4282,
+    -4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,-4282,
+
+    -4282,-4282,-4282,-4282,-4282
+    },
+
+    {
+       27,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,
+    -4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283, 4488,-4283,
+    -4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,
+    -4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,
+    -4283,-4283,-4283,-4283, 4488,-4283,-4283,-4283,-4283,-4283,
+    -4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,-4283,
+    -4283,-4283,-4283,-4283,-4283
+    },
+
+    {
+       27,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,
+    -4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,
+
+    -4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,
+    -4284,-4284, 4489,-4284,-4284,-4284,-4284,-4284,-4284,-4284,
+    -4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,-4284,
+    -4284,-4284,-4284,-4284,-4284,-4284,-4284, 4489,-4284,-4284,
+    -4284,-4284,-4284,-4284,-4284
+    },
+
+    {
+       27,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,
+    -4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,
+    -4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,
+    -4285,-4285, 4490,-4285,-4285,-4285,-4285,-4285,-4285,-4285,
+    -4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,-4285,
+
+    -4285,-4285,-4285,-4285,-4285,-4285,-4285, 4490,-4285,-4285,
+    -4285,-4285,-4285,-4285,-4285
+    },
+
+    {
+       27,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,
+    -4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,
+    -4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,
+    -4286,-4286, 4491,-4286,-4286,-4286,-4286,-4286,-4286,-4286,
+    -4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,-4286,
+    -4286,-4286,-4286,-4286,-4286,-4286,-4286, 4491,-4286,-4286,
+    -4286,-4286,-4286,-4286,-4286
+    },
+
+    {
+       27,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,
+
+    -4287,-4287,-4287, 4492,-4287,-4287,-4287,-4287,-4287,-4287,
+    -4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,
+    -4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,
+    -4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,
+    -4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,-4287,
+    -4287,-4287,-4287,-4287,-4287
+    },
+
+    {
+       27,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,
+    -4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,
+    -4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,
+    -4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,
+
+    -4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,
+    -4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,-4288,
+    -4288,-4288,-4288,-4288,-4288
+    },
+
+    {
+       27,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,
+    -4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,
+    -4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,
+    -4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,
+    -4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,
+    -4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,-4289,
+    -4289,-4289,-4289,-4289,-4289
+
+    },
+
+    {
+       27,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,
+    -4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,
+    -4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,
+    -4290,-4290,-4290, 4493,-4290,-4290,-4290,-4290,-4290,-4290,
+    -4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290,
+    -4290,-4290,-4290,-4290,-4290,-4290,-4290,-4290, 4493,-4290,
+    -4290,-4290,-4290,-4290,-4290
+    },
+
+    {
+       27,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,
+    -4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,
+    -4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,
+
+    -4291,-4291,-4291, 4494,-4291,-4291,-4291,-4291,-4291,-4291,
+    -4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291,
+    -4291,-4291,-4291,-4291,-4291,-4291,-4291,-4291, 4494,-4291,
+    -4291,-4291,-4291,-4291,-4291
+    },
+
+    {
+       27,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,
+    -4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,
+    -4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,
+    -4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,
+    -4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,
+    -4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,-4292,
+
+    -4292,-4292,-4292,-4292,-4292
+    },
+
+    {
+       27,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,
+    -4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,
+    -4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,
+    -4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,
+    -4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,
+    -4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,-4293,
+    -4293,-4293,-4293,-4293,-4293
+    },
+
+    {
+       27,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,
+    -4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,
+
+    -4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,
+    -4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,
+    -4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,
+    -4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,-4294,
+    -4294,-4294,-4294,-4294,-4294
+    },
+
+    {
+       27,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,
+    -4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,
+    -4295,-4295,-4295,-4295,-4295,-4295,-4295, 4495,-4295,-4295,
+    -4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,
+    -4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,-4295,
+
+    -4295,-4295, 4495,-4295,-4295,-4295,-4295,-4295,-4295,-4295,
+    -4295,-4295,-4295,-4295,-4295
+    },
+
+    {
+       27,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,
+    -4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,
+    -4296,-4296,-4296,-4296,-4296,-4296,-4296, 4496,-4296,-4296,
+    -4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,
+    -4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,-4296,
+    -4296,-4296, 4496,-4296,-4296,-4296,-4296,-4296,-4296,-4296,
+    -4296,-4296,-4296,-4296,-4296
+    },
+
+    {
+       27,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,
+
+    -4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,
+    -4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,
+    -4297,-4297,-4297, 4497,-4297,-4297,-4297,-4297,-4297,-4297,
+    -4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297,
+    -4297,-4297,-4297,-4297,-4297,-4297,-4297,-4297, 4497,-4297,
+    -4297,-4297,-4297,-4297,-4297
+    },
+
+    {
+       27,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,
+    -4298,-4298,-4298,-4298, 4498,-4298,-4298,-4298,-4298,-4298,
+    -4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,
+    -4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,
+
+     4498,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,
+    -4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,-4298,
+    -4298,-4298,-4298,-4298,-4298
+    },
+
+    {
+       27,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,
+    -4299,-4299,-4299, 4499,-4299,-4299,-4299,-4299,-4299,-4299,
+    -4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,
+    -4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,
+    -4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,
+    -4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,-4299,
+    -4299,-4299,-4299,-4299,-4299
+
+    },
+
+    {
+       27,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,
+    -4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300, 4500,-4300,
+    -4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,
+    -4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,
+    -4300,-4300,-4300,-4300, 4500,-4300,-4300,-4300,-4300,-4300,
+    -4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,-4300,
+    -4300,-4300,-4300,-4300,-4300
+    },
+
+    {
+       27,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,
+    -4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,
+    -4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,
+
+    -4301,-4301, 4501,-4301,-4301,-4301,-4301,-4301,-4301,-4301,
+    -4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,-4301,
+    -4301,-4301,-4301,-4301,-4301,-4301,-4301, 4501,-4301,-4301,
+    -4301,-4301,-4301,-4301,-4301
+    },
+
+    {
+       27,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,
+    -4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,
+    -4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,
+    -4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,
+    -4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,
+    -4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,-4302,
+
+    -4302,-4302,-4302,-4302,-4302
+    },
+
+    {
+       27,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,
+    -4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,
+    -4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,
+    -4303,-4303,-4303, 4502,-4303,-4303,-4303,-4303,-4303,-4303,
+    -4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303,
+    -4303,-4303,-4303,-4303,-4303,-4303,-4303,-4303, 4502,-4303,
+    -4303,-4303,-4303,-4303,-4303
+    },
+
+    {
+       27,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,
+    -4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,
+
+    -4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,
+    -4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,
+    -4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,
+    -4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,-4304,
+    -4304,-4304,-4304,-4304,-4304
+    },
+
+    {
+       27,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,
+    -4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,
+    -4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,
+    -4305,-4305,-4305, 4503,-4305,-4305,-4305,-4305,-4305,-4305,
+    -4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305,
+
+    -4305,-4305,-4305,-4305,-4305,-4305,-4305,-4305, 4503,-4305,
+    -4305,-4305,-4305,-4305,-4305
+    },
+
+    {
+       27,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,
+    -4306,-4306,-4306,-4306, 4504,-4306,-4306,-4306,-4306,-4306,
+    -4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,
+    -4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,
+     4504,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,
+    -4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,-4306,
+    -4306,-4306,-4306,-4306,-4306
+    },
+
+    {
+       27,-4307, 4307, 4307,-4307,-4307,-4307,-4307,-4307,-4307,
+
+    -4307,-4307, 4308,-4307,-4307,-4307,-4307,-4307,-4307,-4307,
+    -4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,
+    -4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,
+    -4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,
+    -4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,-4307,
+    -4307,-4307,-4307,-4307,-4307
+    },
+
+    {
+       27,-4308,-4308,-4308,-4308,-4308,-4308,-4308,-4308,-4308,
+    -4308,-4308,-4308,-4308,-4308,-4308, 4505,-4308,-4308,-4308,
+    -4308,-4308,-4308,-4308,-4308,-4308,-4308,-4308,-4308, 4506,
+    -4308,-4308,-4308,-4308,-4308,-4308,-4308,-4308,-4308,-4308,
+
+    -4308,-4308, 4505,-4308,-4308,-4308,-4308,-4308,-4308,-4308,
+    -4308,-4308,-4308,-4308, 4506,-4308,-4308,-4308,-4308,-4308,
+    -4308,-4308,-4308,-4308,-4308
+    },
+
+    {
+       27,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,
+    -4309,-4309,-4309,-4309, 4507,-4309,-4309,-4309,-4309,-4309,
+    -4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,
+    -4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,
+     4507,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,
+    -4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,-4309,
+    -4309,-4309,-4309,-4309,-4309
+
+    },
+
+    {
+       27,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310, 4508,
+    -4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,
+    -4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,
+    -4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310, 4509,
+    -4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,
+    -4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,-4310,
+    -4310,-4310,-4310,-4310,-4310
+    },
+
+    {
+       27,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,
+    -4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,
+    -4311,-4311, 4510,-4311,-4311,-4311,-4311,-4311,-4311,-4311,
+
+    -4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,
+    -4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311, 4510,-4311,
+    -4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,-4311,
+    -4311,-4311,-4311,-4311,-4311
+    },
+
+    {
+       27,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,
+    -4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312, 4511,-4312,
+    -4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,
+    -4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,
+    -4312,-4312,-4312,-4312, 4511,-4312,-4312,-4312,-4312,-4312,
+    -4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,-4312,
+
+    -4312,-4312,-4312,-4312,-4312
+    },
+
+    {
+       27,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,
+    -4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,
+    -4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,
+    -4313,-4313, 4512,-4313,-4313,-4313,-4313,-4313,-4313,-4313,
+    -4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,-4313,
+    -4313,-4313,-4313,-4313,-4313,-4313,-4313, 4512,-4313,-4313,
+    -4313,-4313,-4313,-4313,-4313
+    },
+
+    {
+       27,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,
+    -4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,
+
+    -4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,
+    -4314,-4314, 4513,-4314,-4314,-4314,-4314,-4314,-4314,-4314,
+    -4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,-4314,
+    -4314,-4314,-4314,-4314,-4314,-4314,-4314, 4513,-4314,-4314,
+    -4314,-4314,-4314,-4314,-4314
+    },
+
+    {
+       27,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,
+    -4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,
+    -4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,
+    -4315,-4315, 4514,-4315,-4315,-4315,-4315,-4315,-4315,-4315,
+    -4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,-4315,
+
+    -4315,-4315,-4315,-4315,-4315,-4315,-4315, 4514,-4315,-4315,
+    -4315,-4315,-4315,-4315,-4315
+    },
+
+    {
+       27,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,
+    -4316,-4316,-4316, 4515,-4316,-4316,-4316,-4316,-4316,-4316,
+    -4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,
+    -4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,
+    -4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,
+    -4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,-4316,
+    -4316,-4316,-4316,-4316,-4316
+    },
+
+    {
+       27,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,
+
+    -4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,
+    -4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,
+    -4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,
+    -4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,
+    -4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,-4317,
+    -4317,-4317,-4317,-4317,-4317
+    },
+
+    {
+       27,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,
+    -4318,-4318,-4318, 4516,-4318,-4318,-4318,-4318,-4318,-4318,
+    -4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,
+    -4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318, 4517,
+
+    -4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,
+    -4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,-4318,
+    -4318,-4318,-4318,-4318,-4318
+    },
+
+    {
+       27,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,
+    -4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,
+    -4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,
+    -4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,
+    -4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,
+    -4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,-4319,
+    -4319,-4319,-4319,-4319,-4319
+
+    },
+
+    {
+       27,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,
+    -4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,
+    -4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,
+    -4320,-4320,-4320, 4518,-4320,-4320,-4320,-4320,-4320,-4320,
+    -4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320,
+    -4320,-4320,-4320,-4320,-4320,-4320,-4320,-4320, 4518,-4320,
+    -4320,-4320,-4320,-4320,-4320
+    },
+
+    {
+       27,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,
+    -4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,
+    -4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,
+
+    -4321,-4321,-4321, 4519,-4321,-4321,-4321,-4321,-4321,-4321,
+    -4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321,
+    -4321,-4321,-4321,-4321,-4321,-4321,-4321,-4321, 4519,-4321,
+    -4321,-4321,-4321,-4321,-4321
+    },
+
+    {
+       27,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,
+    -4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,
+    -4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,
+    -4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,
+    -4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,
+    -4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,-4322,
+
+    -4322,-4322,-4322,-4322,-4322
+    },
+
+    {
+       27,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,
+    -4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,
+    -4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,
+    -4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,
+    -4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,
+    -4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,-4323,
+    -4323,-4323,-4323,-4323,-4323
+    },
+
+    {
+       27,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,
+    -4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,
+
+    -4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,
+    -4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,
+    -4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,
+    -4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,-4324,
+    -4324,-4324,-4324,-4324,-4324
+    },
+
+    {
+       27,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,
+    -4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,
+    -4325,-4325,-4325,-4325,-4325,-4325,-4325, 4520,-4325,-4325,
+    -4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,
+    -4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,-4325,
+
+    -4325,-4325, 4520,-4325,-4325,-4325,-4325,-4325,-4325,-4325,
+    -4325,-4325,-4325,-4325,-4325
+    },
+
+    {
+       27,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,
+    -4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,
+    -4326,-4326,-4326,-4326,-4326,-4326,-4326, 4521,-4326,-4326,
+    -4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,
+    -4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,-4326,
+    -4326,-4326, 4521,-4326,-4326,-4326,-4326,-4326,-4326,-4326,
+    -4326,-4326,-4326,-4326,-4326
+    },
+
+    {
+       27,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,
+
+    -4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,
+    -4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,
+    -4327,-4327,-4327, 4522,-4327,-4327,-4327,-4327,-4327,-4327,
+    -4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327,
+    -4327,-4327,-4327,-4327,-4327,-4327,-4327,-4327, 4522,-4327,
+    -4327,-4327,-4327,-4327,-4327
+    },
+
+    {
+       27,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,
+    -4328,-4328,-4328,-4328, 4523,-4328,-4328,-4328,-4328,-4328,
+    -4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,
+    -4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,
+
+     4523,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,
+    -4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,-4328,
+    -4328,-4328,-4328,-4328,-4328
+    },
+
+    {
+       27,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,
+    -4329,-4329,-4329, 4524,-4329,-4329,-4329,-4329,-4329,-4329,
+    -4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,
+    -4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,
+    -4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,
+    -4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,-4329,
+    -4329,-4329,-4329,-4329,-4329
+
+    },
+
+    {
+       27,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,
+    -4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330, 4525,-4330,
+    -4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,
+    -4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,
+    -4330,-4330,-4330,-4330, 4525,-4330,-4330,-4330,-4330,-4330,
+    -4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,-4330,
+    -4330,-4330,-4330,-4330,-4330
+    },
+
+    {
+       27,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,
+    -4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,
+    -4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,
+
+    -4331,-4331, 4526,-4331,-4331,-4331,-4331,-4331,-4331,-4331,
+    -4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,-4331,
+    -4331,-4331,-4331,-4331,-4331,-4331,-4331, 4526,-4331,-4331,
+    -4331,-4331,-4331,-4331,-4331
+    },
+
+    {
+       27,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,
+    -4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,
+    -4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,
+    -4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,
+    -4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,
+    -4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,-4332,
+
+    -4332,-4332,-4332,-4332,-4332
+    },
+
+    {
+       27,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,
+    -4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,
+    -4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,
+    -4333,-4333,-4333, 4527,-4333,-4333,-4333,-4333,-4333,-4333,
+    -4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333,
+    -4333,-4333,-4333,-4333,-4333,-4333,-4333,-4333, 4527,-4333,
+    -4333,-4333,-4333,-4333,-4333
+    },
+
+    {
+       27,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,
+    -4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,
+
+    -4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,
+    -4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,
+    -4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,
+    -4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,-4334,
+    -4334,-4334,-4334,-4334,-4334
+    },
+
+    {
+       27,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,
+    -4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,
+    -4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,
+    -4335,-4335,-4335, 4528,-4335,-4335,-4335,-4335,-4335,-4335,
+    -4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335,
+
+    -4335,-4335,-4335,-4335,-4335,-4335,-4335,-4335, 4528,-4335,
+    -4335,-4335,-4335,-4335,-4335
+    },
+
+    {
+       27,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,
+    -4336,-4336,-4336,-4336, 4529,-4336,-4336,-4336,-4336,-4336,
+    -4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,
+    -4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,
+     4529,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,
+    -4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,-4336,
+    -4336,-4336,-4336,-4336,-4336
+    },
+
+    {
+       27,-4337, 4337, 4337,-4337,-4337,-4337,-4337,-4337,-4337,
+
+    -4337,-4337, 4338,-4337,-4337,-4337,-4337,-4337,-4337,-4337,
+    -4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,
+    -4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,
+    -4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,
+    -4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,-4337,
+    -4337,-4337,-4337,-4337,-4337
+    },
+
+    {
+       27,-4338,-4338,-4338,-4338,-4338,-4338,-4338,-4338,-4338,
+    -4338,-4338,-4338,-4338,-4338,-4338, 4530,-4338,-4338,-4338,
+    -4338,-4338,-4338,-4338,-4338,-4338,-4338,-4338,-4338, 4531,
+    -4338,-4338,-4338,-4338,-4338,-4338,-4338,-4338,-4338,-4338,
+
+    -4338,-4338, 4530,-4338,-4338,-4338,-4338,-4338,-4338,-4338,
+    -4338,-4338,-4338,-4338, 4531,-4338,-4338,-4338,-4338,-4338,
+    -4338,-4338,-4338,-4338,-4338
+    },
+
+    {
+       27,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,
+    -4339,-4339,-4339,-4339, 4532,-4339,-4339,-4339,-4339,-4339,
+    -4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,
+    -4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,
+     4532,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,
+    -4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,-4339,
+    -4339,-4339,-4339,-4339,-4339
+
+    },
+
+    {
+       27,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340, 4533,
+    -4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,
+    -4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,
+    -4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340, 4534,
+    -4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,
+    -4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,-4340,
+    -4340,-4340,-4340,-4340,-4340
+    },
+
+    {
+       27,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,
+    -4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,
+    -4341,-4341, 4535,-4341,-4341,-4341,-4341,-4341,-4341,-4341,
+
+    -4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,
+    -4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341, 4535,-4341,
+    -4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,-4341,
+    -4341,-4341,-4341,-4341,-4341
+    },
+
+    {
+       27,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,
+    -4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342, 4536,-4342,
+    -4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,
+    -4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,
+    -4342,-4342,-4342,-4342, 4536,-4342,-4342,-4342,-4342,-4342,
+    -4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,-4342,
+
+    -4342,-4342,-4342,-4342,-4342
+    },
+
+    {
+       27,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,
+    -4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,
+    -4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,
+    -4343,-4343, 4537,-4343,-4343,-4343,-4343,-4343,-4343,-4343,
+    -4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,-4343,
+    -4343,-4343,-4343,-4343,-4343,-4343,-4343, 4537,-4343,-4343,
+    -4343,-4343,-4343,-4343,-4343
+    },
+
+    {
+       27,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,
+    -4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,
+
+    -4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,
+    -4344,-4344, 4538,-4344,-4344,-4344,-4344,-4344,-4344,-4344,
+    -4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,-4344,
+    -4344,-4344,-4344,-4344,-4344,-4344,-4344, 4538,-4344,-4344,
+    -4344,-4344,-4344,-4344,-4344
+    },
+
+    {
+       27,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,
+    -4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,
+    -4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,
+    -4345,-4345, 4539,-4345,-4345,-4345,-4345,-4345,-4345,-4345,
+    -4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,-4345,
+
+    -4345,-4345,-4345,-4345,-4345,-4345,-4345, 4539,-4345,-4345,
+    -4345,-4345,-4345,-4345,-4345
+    },
+
+    {
+       27,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,
+    -4346,-4346,-4346, 4540,-4346,-4346,-4346,-4346,-4346,-4346,
+    -4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,
+    -4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,
+    -4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,
+    -4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,-4346,
+    -4346,-4346,-4346,-4346,-4346
+    },
+
+    {
+       27,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,
+
+    -4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,
+    -4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,
+    -4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,
+    -4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,
+    -4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,-4347,
+    -4347,-4347,-4347,-4347,-4347
+    },
+
+    {
+       27,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,
+    -4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,
+    -4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,
+    -4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,
+
+    -4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,
+    -4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,-4348,
+    -4348,-4348,-4348,-4348,-4348
+    },
+
+    {
+       27,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,
+    -4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,
+    -4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,
+    -4349,-4349,-4349, 4541,-4349,-4349,-4349,-4349,-4349,-4349,
+    -4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349,
+    -4349,-4349,-4349,-4349,-4349,-4349,-4349,-4349, 4541,-4349,
+    -4349,-4349,-4349,-4349,-4349
+
+    },
+
+    {
+       27,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,
+    -4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,
+    -4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,
+    -4350,-4350,-4350, 4542,-4350,-4350,-4350,-4350,-4350,-4350,
+    -4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350,
+    -4350,-4350,-4350,-4350,-4350,-4350,-4350,-4350, 4542,-4350,
+    -4350,-4350,-4350,-4350,-4350
+    },
+
+    {
+       27,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,
+    -4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,
+    -4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,
+
+    -4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,
+    -4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,
+    -4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,-4351,
+    -4351,-4351,-4351,-4351,-4351
+    },
+
+    {
+       27,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,
+    -4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,
+    -4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,
+    -4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,
+    -4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,
+    -4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,-4352,
+
+    -4352,-4352,-4352,-4352,-4352
+    },
+
+    {
+       27,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,
+    -4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,
+    -4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,
+    -4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,
+    -4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,
+    -4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,-4353,
+    -4353,-4353,-4353,-4353,-4353
+    },
+
+    {
+       27,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,
+    -4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,
+
+    -4354,-4354,-4354,-4354,-4354,-4354,-4354, 4543,-4354,-4354,
+    -4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,
+    -4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,-4354,
+    -4354,-4354, 4543,-4354,-4354,-4354,-4354,-4354,-4354,-4354,
+    -4354,-4354,-4354,-4354,-4354
+    },
+
+    {
+       27,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,
+    -4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,
+    -4355,-4355,-4355,-4355,-4355,-4355,-4355, 4544,-4355,-4355,
+    -4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,
+    -4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,-4355,
+
+    -4355,-4355, 4544,-4355,-4355,-4355,-4355,-4355,-4355,-4355,
+    -4355,-4355,-4355,-4355,-4355
+    },
+
+    {
+       27,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,
+    -4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,
+    -4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,
+    -4356,-4356,-4356, 4545,-4356,-4356,-4356,-4356,-4356,-4356,
+    -4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356,
+    -4356,-4356,-4356,-4356,-4356,-4356,-4356,-4356, 4545,-4356,
+    -4356,-4356,-4356,-4356,-4356
+    },
+
+    {
+       27,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,
+
+    -4357,-4357,-4357,-4357, 4546,-4357,-4357,-4357,-4357,-4357,
+    -4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,
+    -4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,
+     4546,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,
+    -4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,-4357,
+    -4357,-4357,-4357,-4357,-4357
+    },
+
+    {
+       27,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,
+    -4358,-4358,-4358, 4547,-4358,-4358,-4358,-4358,-4358,-4358,
+    -4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,
+    -4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,
+
+    -4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,
+    -4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,-4358,
+    -4358,-4358,-4358,-4358,-4358
+    },
+
+    {
+       27,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,
+    -4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359, 4548,-4359,
+    -4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,
+    -4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,
+    -4359,-4359,-4359,-4359, 4548,-4359,-4359,-4359,-4359,-4359,
+    -4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,-4359,
+    -4359,-4359,-4359,-4359,-4359
+
+    },
+
+    {
+       27,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,
+    -4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,
+    -4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,
+    -4360,-4360, 4549,-4360,-4360,-4360,-4360,-4360,-4360,-4360,
+    -4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,-4360,
+    -4360,-4360,-4360,-4360,-4360,-4360,-4360, 4549,-4360,-4360,
+    -4360,-4360,-4360,-4360,-4360
+    },
+
+    {
+       27,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,
+    -4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,
+    -4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,
+
+    -4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,
+    -4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,
+    -4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,-4361,
+    -4361,-4361,-4361,-4361,-4361
+    },
+
+    {
+       27,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,
+    -4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,
+    -4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,
+    -4362,-4362,-4362, 4550,-4362,-4362,-4362,-4362,-4362,-4362,
+    -4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362,
+    -4362,-4362,-4362,-4362,-4362,-4362,-4362,-4362, 4550,-4362,
+
+    -4362,-4362,-4362,-4362,-4362
+    },
+
+    {
+       27,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,
+    -4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,
+    -4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,
+    -4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,
+    -4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,
+    -4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,-4363,
+    -4363,-4363,-4363,-4363,-4363
+    },
+
+    {
+       27,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,
+    -4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,
+
+    -4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,
+    -4364,-4364,-4364, 4551,-4364,-4364,-4364,-4364,-4364,-4364,
+    -4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364,
+    -4364,-4364,-4364,-4364,-4364,-4364,-4364,-4364, 4551,-4364,
+    -4364,-4364,-4364,-4364,-4364
+    },
+
+    {
+       27,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,
+    -4365,-4365,-4365,-4365, 4552,-4365,-4365,-4365,-4365,-4365,
+    -4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,
+    -4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,
+     4552,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,
+
+    -4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,-4365,
+    -4365,-4365,-4365,-4365,-4365
+    },
+
+    {
+       27,-4366, 4366, 4366,-4366,-4366,-4366,-4366,-4366,-4366,
+    -4366,-4366, 4367,-4366,-4366,-4366,-4366,-4366,-4366,-4366,
+    -4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,
+    -4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,
+    -4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,
+    -4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,-4366,
+    -4366,-4366,-4366,-4366,-4366
+    },
+
+    {
+       27,-4367,-4367,-4367,-4367,-4367,-4367,-4367,-4367,-4367,
+
+    -4367,-4367,-4367,-4367,-4367,-4367, 4553,-4367,-4367,-4367,
+    -4367,-4367,-4367,-4367,-4367,-4367,-4367,-4367,-4367, 4554,
+    -4367,-4367,-4367,-4367,-4367,-4367,-4367,-4367,-4367,-4367,
+    -4367,-4367, 4553,-4367,-4367,-4367,-4367,-4367,-4367,-4367,
+    -4367,-4367,-4367,-4367, 4554,-4367,-4367,-4367,-4367,-4367,
+    -4367,-4367,-4367,-4367,-4367
+    },
+
+    {
+       27,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,
+    -4368,-4368,-4368,-4368, 4555,-4368,-4368,-4368,-4368,-4368,
+    -4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,
+    -4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,
+
+     4555,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,
+    -4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,-4368,
+    -4368,-4368,-4368,-4368,-4368
+    },
+
+    {
+       27,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369, 4556,
+    -4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,
+    -4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,
+    -4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369, 4557,
+    -4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,
+    -4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,-4369,
+    -4369,-4369,-4369,-4369,-4369
+
+    },
+
+    {
+       27,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,
+    -4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,
+    -4370,-4370, 4558,-4370,-4370,-4370,-4370,-4370,-4370,-4370,
+    -4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,
+    -4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370, 4558,-4370,
+    -4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,-4370,
+    -4370,-4370,-4370,-4370,-4370
+    },
+
+    {
+       27,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,
+    -4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371, 4559,-4371,
+    -4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,
+
+    -4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,
+    -4371,-4371,-4371,-4371, 4559,-4371,-4371,-4371,-4371,-4371,
+    -4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,-4371,
+    -4371,-4371,-4371,-4371,-4371
+    },
+
+    {
+       27,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,
+    -4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,
+    -4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,
+    -4372,-4372, 4560,-4372,-4372,-4372,-4372,-4372,-4372,-4372,
+    -4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,-4372,
+    -4372,-4372,-4372,-4372,-4372,-4372,-4372, 4560,-4372,-4372,
+
+    -4372,-4372,-4372,-4372,-4372
+    },
+
+    {
+       27,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,
+    -4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,
+    -4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,
+    -4373,-4373, 4561,-4373,-4373,-4373,-4373,-4373,-4373,-4373,
+    -4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,-4373,
+    -4373,-4373,-4373,-4373,-4373,-4373,-4373, 4561,-4373,-4373,
+    -4373,-4373,-4373,-4373,-4373
+    },
+
+    {
+       27,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,
+    -4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,
+
+    -4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,
+    -4374,-4374, 4562,-4374,-4374,-4374,-4374,-4374,-4374,-4374,
+    -4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,-4374,
+    -4374,-4374,-4374,-4374,-4374,-4374,-4374, 4562,-4374,-4374,
+    -4374,-4374,-4374,-4374,-4374
+    },
+
+    {
+       27,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,
+    -4375,-4375,-4375, 4563,-4375,-4375,-4375,-4375,-4375,-4375,
+    -4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,
+    -4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,
+    -4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,
+
+    -4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,-4375,
+    -4375,-4375,-4375,-4375,-4375
+    },
+
+    {
+       27,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,
+    -4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,
+    -4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,
+    -4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,
+    -4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,
+    -4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,-4376,
+    -4376,-4376,-4376,-4376,-4376
+    },
+
+    {
+       27,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,
+
+    -4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,
+    -4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,
+    -4377,-4377, 4564,-4377,-4377,-4377,-4377,-4377,-4377,-4377,
+    -4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,-4377,
+    -4377,-4377,-4377,-4377,-4377,-4377,-4377, 4564,-4377,-4377,
+    -4377,-4377,-4377,-4377,-4377
+    },
+
+    {
+       27,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,
+    -4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,
+    -4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,
+    -4378,-4378, 4565,-4378,-4378,-4378,-4378,-4378,-4378,-4378,
+
+    -4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,-4378,
+    -4378,-4378,-4378,-4378,-4378,-4378,-4378, 4565,-4378,-4378,
+    -4378,-4378,-4378,-4378,-4378
+    },
+
+    {
+       27,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,
+    -4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,
+    -4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,
+    -4379,-4379,-4379, 4566,-4379,-4379,-4379,-4379,-4379,-4379,
+    -4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379,
+    -4379,-4379,-4379,-4379,-4379,-4379,-4379,-4379, 4566,-4379,
+    -4379,-4379,-4379,-4379,-4379
+
+    },
+
+    {
+       27,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,
+    -4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,
+    -4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,
+    -4380,-4380,-4380, 4567,-4380,-4380,-4380,-4380,-4380,-4380,
+    -4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380,
+    -4380,-4380,-4380,-4380,-4380,-4380,-4380,-4380, 4567,-4380,
+    -4380,-4380,-4380,-4380,-4380
+    },
+
+    {
+       27,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,
+    -4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381, 4568,-4381,
+    -4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,
+
+    -4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,
+    -4381,-4381,-4381,-4381, 4568,-4381,-4381,-4381,-4381,-4381,
+    -4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,-4381,
+    -4381,-4381,-4381,-4381,-4381
+    },
+
+    {
+       27,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,
+    -4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,
+    -4382,-4382,-4382,-4382,-4382,-4382, 4569,-4382,-4382,-4382,
+    -4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,
+    -4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,
+    -4382, 4569,-4382,-4382,-4382,-4382,-4382,-4382,-4382,-4382,
+
+    -4382,-4382,-4382,-4382,-4382
+    },
+
+    {
+       27,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,
+    -4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,
+    -4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,
+    -4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,
+    -4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,
+    -4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,-4383,
+    -4383,-4383,-4383,-4383,-4383
+    },
+
+    {
+       27,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,
+    -4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,
+
+    -4384,-4384,-4384,-4384,-4384,-4384,-4384, 4570,-4384,-4384,
+    -4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,
+    -4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,-4384,
+    -4384,-4384, 4570,-4384,-4384,-4384,-4384,-4384,-4384,-4384,
+    -4384,-4384,-4384,-4384,-4384
+    },
+
+    {
+       27,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,
+    -4385,-4385,-4385, 4571,-4385,-4385,-4385,-4385,-4385,-4385,
+    -4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,
+    -4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,
+    -4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,
+
+    -4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,-4385,
+    -4385,-4385,-4385,-4385,-4385
+    },
+
+    {
+       27,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,
+    -4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,
+    -4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,
+    -4386,-4386, 4572,-4386,-4386,-4386,-4386,-4386,-4386,-4386,
+    -4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,-4386,
+    -4386,-4386,-4386,-4386,-4386,-4386,-4386, 4572,-4386,-4386,
+    -4386,-4386,-4386,-4386,-4386
+    },
+
+    {
+       27,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,
+
+    -4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387, 4573,-4387,
+    -4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,
+    -4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,
+    -4387,-4387,-4387,-4387, 4573,-4387,-4387,-4387,-4387,-4387,
+    -4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,-4387,
+    -4387,-4387,-4387,-4387,-4387
+    },
+
+    {
+       27,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,
+    -4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,
+    -4388,-4388,-4388,-4388,-4388,-4388, 4574,-4388,-4388,-4388,
+    -4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,
+
+    -4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,
+    -4388, 4574,-4388,-4388,-4388,-4388,-4388,-4388,-4388,-4388,
+    -4388,-4388,-4388,-4388,-4388
+    },
+
+    {
+       27,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,
+    -4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,
+    -4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389, 4575,-4389,
+    -4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,
+    -4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,-4389,
+    -4389,-4389,-4389, 4575,-4389,-4389,-4389,-4389,-4389,-4389,
+    -4389,-4389,-4389,-4389,-4389
+
+    },
+
+    {
+       27,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,
+    -4390,-4390,-4390,-4390, 4576,-4390,-4390,-4390,-4390,-4390,
+    -4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,
+    -4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,
+     4576,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,
+    -4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,-4390,
+    -4390,-4390,-4390,-4390,-4390
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184, 4577,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 4577,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4578,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 4579,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 4579,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184, 4580,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4580,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184, 4581,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 4581,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,
+    -4396,-4396,-4396, 4582,-4396,-4396,-4396,-4396,-4396,-4396,
+    -4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,
+    -4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,
+    -4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,
+    -4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,-4396,
+    -4396,-4396,-4396,-4396,-4396
+    },
+
+    {
+       27,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,
+
+    -4397,-4397,-4397, 4583,-4397,-4397,-4397,-4397,-4397,-4397,
+    -4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,
+    -4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,
+    -4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,
+    -4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,-4397,
+    -4397,-4397,-4397,-4397,-4397
+    },
+
+    {
+       27,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,
+    -4398,-4398,-4398, 4584,-4398,-4398,-4398,-4398,-4398,-4398,
+    -4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,
+    -4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,
+
+    -4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,
+    -4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,-4398,
+    -4398,-4398,-4398,-4398,-4398
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4585,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 4585,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,
+    -4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,
+    -4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,
+    -4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,
+    -4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,
+    -4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,-4400,
+    -4400,-4400,-4400,-4400,-4400
+    },
+
+    {
+       27,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,
+    -4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,
+    -4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,
+
+    -4401,-4401, 4586,-4401,-4401,-4401,-4401,-4401,-4401,-4401,
+    -4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,-4401,
+    -4401,-4401,-4401,-4401,-4401,-4401,-4401, 4586,-4401,-4401,
+    -4401,-4401,-4401,-4401,-4401
+    },
+
+    {
+       27,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,
+    -4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,
+    -4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,
+    -4402,-4402, 4587,-4402,-4402,-4402,-4402,-4402,-4402,-4402,
+    -4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,-4402,
+    -4402,-4402,-4402,-4402,-4402,-4402,-4402, 4587,-4402,-4402,
+
+    -4402,-4402,-4402,-4402,-4402
+    },
+
+    {
+       27,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,
+    -4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,
+    -4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,
+    -4403,-4403,-4403, 4588,-4403,-4403,-4403,-4403,-4403,-4403,
+    -4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403,
+    -4403,-4403,-4403,-4403,-4403,-4403,-4403,-4403, 4588,-4403,
+    -4403,-4403,-4403,-4403,-4403
+    },
+
+    {
+       27,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,
+    -4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,
+
+    -4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,
+    -4404,-4404,-4404, 4589,-4404,-4404,-4404,-4404,-4404,-4404,
+    -4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404,
+    -4404,-4404,-4404,-4404,-4404,-4404,-4404,-4404, 4589,-4404,
+    -4404,-4404,-4404,-4404,-4404
+    },
+
+    {
+       27,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,
+    -4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405, 4590,-4405,
+    -4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,
+    -4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,
+    -4405,-4405,-4405,-4405, 4590,-4405,-4405,-4405,-4405,-4405,
+
+    -4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,-4405,
+    -4405,-4405,-4405,-4405,-4405
+    },
+
+    {
+       27,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,
+    -4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,
+    -4406,-4406,-4406,-4406,-4406,-4406, 4591,-4406,-4406,-4406,
+    -4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,
+    -4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,
+    -4406, 4591,-4406,-4406,-4406,-4406,-4406,-4406,-4406,-4406,
+    -4406,-4406,-4406,-4406,-4406
+    },
+
+    {
+       27,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,
+
+    -4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,
+    -4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,
+    -4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,
+    -4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,
+    -4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,-4407,
+    -4407,-4407,-4407,-4407,-4407
+    },
+
+    {
+       27,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,
+    -4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,
+    -4408,-4408,-4408,-4408,-4408,-4408,-4408, 4592,-4408,-4408,
+    -4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,
+
+    -4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,-4408,
+    -4408,-4408, 4592,-4408,-4408,-4408,-4408,-4408,-4408,-4408,
+    -4408,-4408,-4408,-4408,-4408
+    },
+
+    {
+       27,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,
+    -4409,-4409,-4409, 4593,-4409,-4409,-4409,-4409,-4409,-4409,
+    -4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,
+    -4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,
+    -4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,
+    -4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,-4409,
+    -4409,-4409,-4409,-4409,-4409
+
+    },
+
+    {
+       27,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,
+    -4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,
+    -4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,
+    -4410,-4410, 4594,-4410,-4410,-4410,-4410,-4410,-4410,-4410,
+    -4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,-4410,
+    -4410,-4410,-4410,-4410,-4410,-4410,-4410, 4594,-4410,-4410,
+    -4410,-4410,-4410,-4410,-4410
+    },
+
+    {
+       27,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,
+    -4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411, 4595,-4411,
+    -4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,
+
+    -4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,
+    -4411,-4411,-4411,-4411, 4595,-4411,-4411,-4411,-4411,-4411,
+    -4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,-4411,
+    -4411,-4411,-4411,-4411,-4411
+    },
+
+    {
+       27,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,
+    -4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,
+    -4412,-4412,-4412,-4412,-4412,-4412, 4596,-4412,-4412,-4412,
+    -4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,
+    -4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,
+    -4412, 4596,-4412,-4412,-4412,-4412,-4412,-4412,-4412,-4412,
+
+    -4412,-4412,-4412,-4412,-4412
+    },
+
+    {
+       27,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,
+    -4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,
+    -4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413, 4597,-4413,
+    -4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,
+    -4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,-4413,
+    -4413,-4413,-4413, 4597,-4413,-4413,-4413,-4413,-4413,-4413,
+    -4413,-4413,-4413,-4413,-4413
+    },
+
+    {
+       27,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,
+    -4414,-4414,-4414,-4414, 4598,-4414,-4414,-4414,-4414,-4414,
+
+    -4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,
+    -4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,
+     4598,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,
+    -4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,-4414,
+    -4414,-4414,-4414,-4414,-4414
+    },
+
+    {
+       27,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,
+    -4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,
+    -4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,
+    -4415, 4599,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,
+    -4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,-4415,
+
+    -4415,-4415,-4415,-4415,-4415,-4415, 4599,-4415,-4415,-4415,
+    -4415,-4415,-4415,-4415,-4415
+    },
+
+    {
+       27,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,
+    -4416,-4416,-4416, 4600,-4416,-4416,-4416,-4416,-4416,-4416,
+    -4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,
+    -4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,
+    -4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,
+    -4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,-4416,
+    -4416,-4416,-4416,-4416,-4416
+    },
+
+    {
+       27,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,
+
+    -4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,
+    -4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,
+    -4417,-4417, 4601,-4417,-4417,-4417,-4417,-4417,-4417,-4417,
+    -4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,-4417,
+    -4417,-4417,-4417,-4417,-4417,-4417,-4417, 4601,-4417,-4417,
+    -4417,-4417,-4417,-4417,-4417
+    },
+
+    {
+       27,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,
+    -4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,
+    -4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418, 4602,-4418,
+    -4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,
+
+    -4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,-4418,
+    -4418,-4418,-4418, 4602,-4418,-4418,-4418,-4418,-4418,-4418,
+    -4418,-4418,-4418,-4418,-4418
+    },
+
+    {
+       27,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,
+    -4419,-4419,-4419,-4419,-4419,-4419, 4603,-4419,-4419,-4419,
+    -4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,
+    -4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,
+    -4419,-4419, 4603,-4419,-4419,-4419,-4419,-4419,-4419,-4419,
+    -4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,-4419,
+    -4419,-4419,-4419,-4419,-4419
+
+    },
+
+    {
+       27,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,
+    -4420,-4420,-4420, 4604,-4420,-4420,-4420,-4420,-4420,-4420,
+    -4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,
+    -4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,
+    -4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,
+    -4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,-4420,
+    -4420,-4420,-4420,-4420,-4420
+    },
+
+    {
+       27,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,
+    -4421,-4421,-4421, 4605,-4421,-4421,-4421,-4421,-4421,-4421,
+    -4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,
+
+    -4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,
+    -4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,
+    -4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,-4421,
+    -4421,-4421,-4421,-4421,-4421
+    },
+
+    {
+       27,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,
+    -4422,-4422,-4422, 4606,-4422,-4422,-4422,-4422,-4422,-4422,
+    -4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,
+    -4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,
+    -4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,
+    -4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,-4422,
+
+    -4422,-4422,-4422,-4422,-4422
+    },
+
+    {
+       27,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,
+    -4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,
+    -4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,
+    -4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,
+    -4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,
+    -4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,-4423,
+    -4423,-4423,-4423,-4423,-4423
+    },
+
+    {
+       27,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,
+    -4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,
+
+    -4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,
+    -4424,-4424, 4607,-4424,-4424,-4424,-4424,-4424,-4424,-4424,
+    -4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,-4424,
+    -4424,-4424,-4424,-4424,-4424,-4424,-4424, 4607,-4424,-4424,
+    -4424,-4424,-4424,-4424,-4424
+    },
+
+    {
+       27,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,
+    -4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,
+    -4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,
+    -4425,-4425, 4608,-4425,-4425,-4425,-4425,-4425,-4425,-4425,
+    -4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,-4425,
+
+    -4425,-4425,-4425,-4425,-4425,-4425,-4425, 4608,-4425,-4425,
+    -4425,-4425,-4425,-4425,-4425
+    },
+
+    {
+       27,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,
+    -4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,
+    -4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,
+    -4426,-4426,-4426, 4609,-4426,-4426,-4426,-4426,-4426,-4426,
+    -4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426,
+    -4426,-4426,-4426,-4426,-4426,-4426,-4426,-4426, 4609,-4426,
+    -4426,-4426,-4426,-4426,-4426
+    },
+
+    {
+       27,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,
+
+    -4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,
+    -4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,
+    -4427,-4427,-4427, 4610,-4427,-4427,-4427,-4427,-4427,-4427,
+    -4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427,
+    -4427,-4427,-4427,-4427,-4427,-4427,-4427,-4427, 4610,-4427,
+    -4427,-4427,-4427,-4427,-4427
+    },
+
+    {
+       27,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,
+    -4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428, 4611,-4428,
+    -4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,
+    -4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,
+
+    -4428,-4428,-4428,-4428, 4611,-4428,-4428,-4428,-4428,-4428,
+    -4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,-4428,
+    -4428,-4428,-4428,-4428,-4428
+    },
+
+    {
+       27,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,
+    -4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,
+    -4429,-4429,-4429,-4429,-4429,-4429, 4612,-4429,-4429,-4429,
+    -4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,
+    -4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,
+    -4429, 4612,-4429,-4429,-4429,-4429,-4429,-4429,-4429,-4429,
+    -4429,-4429,-4429,-4429,-4429
+
+    },
+
+    {
+       27,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,
+    -4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,
+    -4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,
+    -4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,
+    -4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,
+    -4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,-4430,
+    -4430,-4430,-4430,-4430,-4430
+    },
+
+    {
+       27,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,
+    -4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,
+    -4431,-4431,-4431,-4431,-4431,-4431,-4431, 4613,-4431,-4431,
+
+    -4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,
+    -4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,-4431,
+    -4431,-4431, 4613,-4431,-4431,-4431,-4431,-4431,-4431,-4431,
+    -4431,-4431,-4431,-4431,-4431
+    },
+
+    {
+       27,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,
+    -4432,-4432,-4432, 4614,-4432,-4432,-4432,-4432,-4432,-4432,
+    -4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,
+    -4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,
+    -4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,
+    -4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,-4432,
+
+    -4432,-4432,-4432,-4432,-4432
+    },
+
+    {
+       27,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,
+    -4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,
+    -4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,
+    -4433,-4433, 4615,-4433,-4433,-4433,-4433,-4433,-4433,-4433,
+    -4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,-4433,
+    -4433,-4433,-4433,-4433,-4433,-4433,-4433, 4615,-4433,-4433,
+    -4433,-4433,-4433,-4433,-4433
+    },
+
+    {
+       27,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,
+    -4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434, 4616,-4434,
+
+    -4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,
+    -4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,
+    -4434,-4434,-4434,-4434, 4616,-4434,-4434,-4434,-4434,-4434,
+    -4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,-4434,
+    -4434,-4434,-4434,-4434,-4434
+    },
+
+    {
+       27,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,
+    -4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,
+    -4435,-4435,-4435,-4435,-4435,-4435, 4617,-4435,-4435,-4435,
+    -4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,
+    -4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,
+
+    -4435, 4617,-4435,-4435,-4435,-4435,-4435,-4435,-4435,-4435,
+    -4435,-4435,-4435,-4435,-4435
+    },
+
+    {
+       27,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,
+    -4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,
+    -4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436, 4618,-4436,
+    -4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,
+    -4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,-4436,
+    -4436,-4436,-4436, 4618,-4436,-4436,-4436,-4436,-4436,-4436,
+    -4436,-4436,-4436,-4436,-4436
+    },
+
+    {
+       27,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,
+
+    -4437,-4437,-4437,-4437, 4619,-4437,-4437,-4437,-4437,-4437,
+    -4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,
+    -4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,
+     4619,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,
+    -4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,-4437,
+    -4437,-4437,-4437,-4437,-4437
+    },
+
+    {
+       27,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,
+    -4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,
+    -4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,
+    -4438, 4620,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,
+
+    -4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,-4438,
+    -4438,-4438,-4438,-4438,-4438,-4438, 4620,-4438,-4438,-4438,
+    -4438,-4438,-4438,-4438,-4438
+    },
+
+    {
+       27,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,
+    -4439,-4439,-4439, 4621,-4439,-4439,-4439,-4439,-4439,-4439,
+    -4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,
+    -4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,
+    -4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,
+    -4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,-4439,
+    -4439,-4439,-4439,-4439,-4439
+
+    },
+
+    {
+       27,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,
+    -4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,
+    -4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,
+    -4440,-4440, 4622,-4440,-4440,-4440,-4440,-4440,-4440,-4440,
+    -4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,-4440,
+    -4440,-4440,-4440,-4440,-4440,-4440,-4440, 4622,-4440,-4440,
+    -4440,-4440,-4440,-4440,-4440
+    },
+
+    {
+       27,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,
+    -4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,
+    -4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441, 4623,-4441,
+
+    -4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,
+    -4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,-4441,
+    -4441,-4441,-4441, 4623,-4441,-4441,-4441,-4441,-4441,-4441,
+    -4441,-4441,-4441,-4441,-4441
+    },
+
+    {
+       27,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,
+    -4442,-4442,-4442,-4442,-4442,-4442, 4624,-4442,-4442,-4442,
+    -4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,
+    -4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,
+    -4442,-4442, 4624,-4442,-4442,-4442,-4442,-4442,-4442,-4442,
+    -4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,-4442,
+
+    -4442,-4442,-4442,-4442,-4442
+    },
+
+    {
+       27,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,
+    -4443,-4443,-4443, 4625,-4443,-4443,-4443,-4443,-4443,-4443,
+    -4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,
+    -4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,
+    -4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,
+    -4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,-4443,
+    -4443,-4443,-4443,-4443,-4443
+    },
+
+    {
+       27,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,
+    -4444,-4444,-4444, 4626,-4444,-4444,-4444,-4444,-4444,-4444,
+
+    -4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,
+    -4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,
+    -4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,
+    -4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,-4444,
+    -4444,-4444,-4444,-4444,-4444
+    },
+
+    {
+       27,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,
+    -4445,-4445,-4445, 4627,-4445,-4445,-4445,-4445,-4445,-4445,
+    -4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,
+    -4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,
+    -4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,
+
+    -4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,-4445,
+    -4445,-4445,-4445,-4445,-4445
+    },
+
+    {
+       27,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,
+    -4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,
+    -4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,
+    -4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,
+    -4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,
+    -4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,-4446,
+    -4446,-4446,-4446,-4446,-4446
+    },
+
+    {
+       27,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,
+
+    -4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,
+    -4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,
+    -4447,-4447, 4628,-4447,-4447,-4447,-4447,-4447,-4447,-4447,
+    -4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,-4447,
+    -4447,-4447,-4447,-4447,-4447,-4447,-4447, 4628,-4447,-4447,
+    -4447,-4447,-4447,-4447,-4447
+    },
+
+    {
+       27,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,
+    -4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,
+    -4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,
+    -4448,-4448, 4629,-4448,-4448,-4448,-4448,-4448,-4448,-4448,
+
+    -4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,-4448,
+    -4448,-4448,-4448,-4448,-4448,-4448,-4448, 4629,-4448,-4448,
+    -4448,-4448,-4448,-4448,-4448
+    },
+
+    {
+       27,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,
+    -4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,
+    -4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,
+    -4449,-4449,-4449, 4630,-4449,-4449,-4449,-4449,-4449,-4449,
+    -4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449,
+    -4449,-4449,-4449,-4449,-4449,-4449,-4449,-4449, 4630,-4449,
+    -4449,-4449,-4449,-4449,-4449
+
+    },
+
+    {
+       27,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,
+    -4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,
+    -4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,
+    -4450,-4450,-4450, 4631,-4450,-4450,-4450,-4450,-4450,-4450,
+    -4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450,
+    -4450,-4450,-4450,-4450,-4450,-4450,-4450,-4450, 4631,-4450,
+    -4450,-4450,-4450,-4450,-4450
+    },
+
+    {
+       27,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,
+    -4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451, 4632,-4451,
+    -4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,
+
+    -4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,
+    -4451,-4451,-4451,-4451, 4632,-4451,-4451,-4451,-4451,-4451,
+    -4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,-4451,
+    -4451,-4451,-4451,-4451,-4451
+    },
+
+    {
+       27,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,
+    -4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,
+    -4452,-4452,-4452,-4452,-4452,-4452, 4633,-4452,-4452,-4452,
+    -4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,
+    -4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,
+    -4452, 4633,-4452,-4452,-4452,-4452,-4452,-4452,-4452,-4452,
+
+    -4452,-4452,-4452,-4452,-4452
+    },
+
+    {
+       27,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,
+    -4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,
+    -4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,
+    -4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,
+    -4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,
+    -4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,-4453,
+    -4453,-4453,-4453,-4453,-4453
+    },
+
+    {
+       27,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,
+    -4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,
+
+    -4454,-4454,-4454,-4454,-4454,-4454,-4454, 4634,-4454,-4454,
+    -4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,
+    -4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,-4454,
+    -4454,-4454, 4634,-4454,-4454,-4454,-4454,-4454,-4454,-4454,
+    -4454,-4454,-4454,-4454,-4454
+    },
+
+    {
+       27,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,
+    -4455,-4455,-4455, 4635,-4455,-4455,-4455,-4455,-4455,-4455,
+    -4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,
+    -4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,
+    -4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,
+
+    -4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,-4455,
+    -4455,-4455,-4455,-4455,-4455
+    },
+
+    {
+       27,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,
+    -4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,
+    -4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,
+    -4456,-4456, 4636,-4456,-4456,-4456,-4456,-4456,-4456,-4456,
+    -4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,-4456,
+    -4456,-4456,-4456,-4456,-4456,-4456,-4456, 4636,-4456,-4456,
+    -4456,-4456,-4456,-4456,-4456
+    },
+
+    {
+       27,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,
+
+    -4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457, 4637,-4457,
+    -4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,
+    -4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,
+    -4457,-4457,-4457,-4457, 4637,-4457,-4457,-4457,-4457,-4457,
+    -4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,-4457,
+    -4457,-4457,-4457,-4457,-4457
+    },
+
+    {
+       27,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,
+    -4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,
+    -4458,-4458,-4458,-4458,-4458,-4458, 4638,-4458,-4458,-4458,
+    -4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,
+
+    -4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,
+    -4458, 4638,-4458,-4458,-4458,-4458,-4458,-4458,-4458,-4458,
+    -4458,-4458,-4458,-4458,-4458
+    },
+
+    {
+       27,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,
+    -4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,
+    -4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459, 4639,-4459,
+    -4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,
+    -4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,-4459,
+    -4459,-4459,-4459, 4639,-4459,-4459,-4459,-4459,-4459,-4459,
+    -4459,-4459,-4459,-4459,-4459
+
+    },
+
+    {
+       27,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,
+    -4460,-4460,-4460,-4460, 4640,-4460,-4460,-4460,-4460,-4460,
+    -4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,
+    -4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,
+     4640,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,
+    -4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,-4460,
+    -4460,-4460,-4460,-4460,-4460
+    },
+
+    {
+       27,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,
+    -4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,
+    -4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,
+
+    -4461, 4641,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,
+    -4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,-4461,
+    -4461,-4461,-4461,-4461,-4461,-4461, 4641,-4461,-4461,-4461,
+    -4461,-4461,-4461,-4461,-4461
+    },
+
+    {
+       27,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,
+    -4462,-4462,-4462, 4642,-4462,-4462,-4462,-4462,-4462,-4462,
+    -4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,
+    -4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,
+    -4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,
+    -4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,-4462,
+
+    -4462,-4462,-4462,-4462,-4462
+    },
+
+    {
+       27,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,
+    -4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,
+    -4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,
+    -4463,-4463, 4643,-4463,-4463,-4463,-4463,-4463,-4463,-4463,
+    -4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,-4463,
+    -4463,-4463,-4463,-4463,-4463,-4463,-4463, 4643,-4463,-4463,
+    -4463,-4463,-4463,-4463,-4463
+    },
+
+    {
+       27,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,
+    -4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,
+
+    -4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464, 4644,-4464,
+    -4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,
+    -4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,-4464,
+    -4464,-4464,-4464, 4644,-4464,-4464,-4464,-4464,-4464,-4464,
+    -4464,-4464,-4464,-4464,-4464
+    },
+
+    {
+       27,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,
+    -4465,-4465,-4465,-4465,-4465,-4465, 4645,-4465,-4465,-4465,
+    -4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,
+    -4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,
+    -4465,-4465, 4645,-4465,-4465,-4465,-4465,-4465,-4465,-4465,
+
+    -4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,-4465,
+    -4465,-4465,-4465,-4465,-4465
+    },
+
+    {
+       27,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,
+    -4466,-4466,-4466, 4646,-4466,-4466,-4466,-4466,-4466,-4466,
+    -4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,
+    -4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,
+    -4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,
+    -4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,-4466,
+    -4466,-4466,-4466,-4466,-4466
+    },
+
+    {
+       27,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,
+
+    -4467,-4467,-4467, 4647,-4467,-4467,-4467,-4467,-4467,-4467,
+    -4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,
+    -4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,
+    -4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,
+    -4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,-4467,
+    -4467,-4467,-4467,-4467,-4467
+    },
+
+    {
+       27,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,
+    -4468,-4468,-4468, 4648,-4468,-4468,-4468,-4468,-4468,-4468,
+    -4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,
+    -4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,
+
+    -4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,
+    -4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,-4468,
+    -4468,-4468,-4468,-4468,-4468
+    },
+
+    {
+       27,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,
+    -4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,
+    -4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,
+    -4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,
+    -4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,
+    -4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,-4469,
+    -4469,-4469,-4469,-4469,-4469
+
+    },
+
+    {
+       27,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,
+    -4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,
+    -4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,
+    -4470,-4470, 4649,-4470,-4470,-4470,-4470,-4470,-4470,-4470,
+    -4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,-4470,
+    -4470,-4470,-4470,-4470,-4470,-4470,-4470, 4649,-4470,-4470,
+    -4470,-4470,-4470,-4470,-4470
+    },
+
+    {
+       27,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,
+    -4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,
+    -4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,
+
+    -4471,-4471, 4650,-4471,-4471,-4471,-4471,-4471,-4471,-4471,
+    -4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,-4471,
+    -4471,-4471,-4471,-4471,-4471,-4471,-4471, 4650,-4471,-4471,
+    -4471,-4471,-4471,-4471,-4471
+    },
+
+    {
+       27,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,
+    -4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,
+    -4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,
+    -4472,-4472,-4472, 4651,-4472,-4472,-4472,-4472,-4472,-4472,
+    -4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472,
+    -4472,-4472,-4472,-4472,-4472,-4472,-4472,-4472, 4651,-4472,
+
+    -4472,-4472,-4472,-4472,-4472
+    },
+
+    {
+       27,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,
+    -4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,
+    -4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,
+    -4473,-4473,-4473, 4652,-4473,-4473,-4473,-4473,-4473,-4473,
+    -4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473,
+    -4473,-4473,-4473,-4473,-4473,-4473,-4473,-4473, 4652,-4473,
+    -4473,-4473,-4473,-4473,-4473
+    },
+
+    {
+       27,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,
+    -4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474, 4653,-4474,
+
+    -4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,
+    -4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,
+    -4474,-4474,-4474,-4474, 4653,-4474,-4474,-4474,-4474,-4474,
+    -4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,-4474,
+    -4474,-4474,-4474,-4474,-4474
+    },
+
+    {
+       27,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,
+    -4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,
+    -4475,-4475,-4475,-4475,-4475,-4475, 4654,-4475,-4475,-4475,
+    -4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,
+    -4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,
+
+    -4475, 4654,-4475,-4475,-4475,-4475,-4475,-4475,-4475,-4475,
+    -4475,-4475,-4475,-4475,-4475
+    },
+
+    {
+       27,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,
+    -4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,
+    -4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,
+    -4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,
+    -4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,
+    -4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,-4476,
+    -4476,-4476,-4476,-4476,-4476
+    },
+
+    {
+       27,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,
+
+    -4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,
+    -4477,-4477,-4477,-4477,-4477,-4477,-4477, 4655,-4477,-4477,
+    -4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,
+    -4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,-4477,
+    -4477,-4477, 4655,-4477,-4477,-4477,-4477,-4477,-4477,-4477,
+    -4477,-4477,-4477,-4477,-4477
+    },
+
+    {
+       27,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,
+    -4478,-4478,-4478, 4656,-4478,-4478,-4478,-4478,-4478,-4478,
+    -4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,
+    -4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,
+
+    -4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,
+    -4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,-4478,
+    -4478,-4478,-4478,-4478,-4478
+    },
+
+    {
+       27,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,
+    -4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,
+    -4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,
+    -4479,-4479, 4657,-4479,-4479,-4479,-4479,-4479,-4479,-4479,
+    -4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,-4479,
+    -4479,-4479,-4479,-4479,-4479,-4479,-4479, 4657,-4479,-4479,
+    -4479,-4479,-4479,-4479,-4479
+
+    },
+
+    {
+       27,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,
+    -4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480, 4658,-4480,
+    -4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,
+    -4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,
+    -4480,-4480,-4480,-4480, 4658,-4480,-4480,-4480,-4480,-4480,
+    -4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,-4480,
+    -4480,-4480,-4480,-4480,-4480
+    },
+
+    {
+       27,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,
+    -4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,
+    -4481,-4481,-4481,-4481,-4481,-4481, 4659,-4481,-4481,-4481,
+
+    -4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,
+    -4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,
+    -4481, 4659,-4481,-4481,-4481,-4481,-4481,-4481,-4481,-4481,
+    -4481,-4481,-4481,-4481,-4481
+    },
+
+    {
+       27,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,
+    -4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,
+    -4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482, 4660,-4482,
+    -4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,
+    -4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,-4482,
+    -4482,-4482,-4482, 4660,-4482,-4482,-4482,-4482,-4482,-4482,
+
+    -4482,-4482,-4482,-4482,-4482
+    },
+
+    {
+       27,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,
+    -4483,-4483,-4483,-4483, 4661,-4483,-4483,-4483,-4483,-4483,
+    -4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,
+    -4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,
+     4661,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,
+    -4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,-4483,
+    -4483,-4483,-4483,-4483,-4483
+    },
+
+    {
+       27,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,
+    -4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,
+
+    -4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,
+    -4484, 4662,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,
+    -4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,-4484,
+    -4484,-4484,-4484,-4484,-4484,-4484, 4662,-4484,-4484,-4484,
+    -4484,-4484,-4484,-4484,-4484
+    },
+
+    {
+       27,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,
+    -4485,-4485,-4485, 4663,-4485,-4485,-4485,-4485,-4485,-4485,
+    -4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,
+    -4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,
+    -4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,
+
+    -4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,-4485,
+    -4485,-4485,-4485,-4485,-4485
+    },
+
+    {
+       27,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,
+    -4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,
+    -4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,
+    -4486,-4486, 4664,-4486,-4486,-4486,-4486,-4486,-4486,-4486,
+    -4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,-4486,
+    -4486,-4486,-4486,-4486,-4486,-4486,-4486, 4664,-4486,-4486,
+    -4486,-4486,-4486,-4486,-4486
+    },
+
+    {
+       27,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,
+
+    -4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,
+    -4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487, 4665,-4487,
+    -4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,
+    -4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,-4487,
+    -4487,-4487,-4487, 4665,-4487,-4487,-4487,-4487,-4487,-4487,
+    -4487,-4487,-4487,-4487,-4487
+    },
+
+    {
+       27,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,
+    -4488,-4488,-4488,-4488,-4488,-4488, 4666,-4488,-4488,-4488,
+    -4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,
+    -4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,
+
+    -4488,-4488, 4666,-4488,-4488,-4488,-4488,-4488,-4488,-4488,
+    -4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,-4488,
+    -4488,-4488,-4488,-4488,-4488
+    },
+
+    {
+       27,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,
+    -4489,-4489,-4489, 4667,-4489,-4489,-4489,-4489,-4489,-4489,
+    -4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,
+    -4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,
+    -4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,
+    -4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,-4489,
+    -4489,-4489,-4489,-4489,-4489
+
+    },
+
+    {
+       27,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,
+    -4490,-4490,-4490, 4668,-4490,-4490,-4490,-4490,-4490,-4490,
+    -4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,
+    -4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,
+    -4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,
+    -4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,-4490,
+    -4490,-4490,-4490,-4490,-4490
+    },
+
+    {
+       27,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,
+    -4491,-4491,-4491, 4669,-4491,-4491,-4491,-4491,-4491,-4491,
+    -4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,
+
+    -4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,
+    -4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,
+    -4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,-4491,
+    -4491,-4491,-4491,-4491,-4491
+    },
+
+    {
+       27,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,
+    -4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,
+    -4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,
+    -4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,
+    -4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,
+    -4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,-4492,
+
+    -4492,-4492,-4492,-4492,-4492
+    },
+
+    {
+       27,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,
+    -4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,
+    -4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,
+    -4493,-4493, 4670,-4493,-4493,-4493,-4493,-4493,-4493,-4493,
+    -4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,-4493,
+    -4493,-4493,-4493,-4493,-4493,-4493,-4493, 4670,-4493,-4493,
+    -4493,-4493,-4493,-4493,-4493
+    },
+
+    {
+       27,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,
+    -4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,
+
+    -4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,
+    -4494,-4494, 4671,-4494,-4494,-4494,-4494,-4494,-4494,-4494,
+    -4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,-4494,
+    -4494,-4494,-4494,-4494,-4494,-4494,-4494, 4671,-4494,-4494,
+    -4494,-4494,-4494,-4494,-4494
+    },
+
+    {
+       27,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,
+    -4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,
+    -4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,
+    -4495,-4495,-4495, 4672,-4495,-4495,-4495,-4495,-4495,-4495,
+    -4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495,
+
+    -4495,-4495,-4495,-4495,-4495,-4495,-4495,-4495, 4672,-4495,
+    -4495,-4495,-4495,-4495,-4495
+    },
+
+    {
+       27,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,
+    -4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,
+    -4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,
+    -4496,-4496,-4496, 4673,-4496,-4496,-4496,-4496,-4496,-4496,
+    -4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496,
+    -4496,-4496,-4496,-4496,-4496,-4496,-4496,-4496, 4673,-4496,
+    -4496,-4496,-4496,-4496,-4496
+    },
+
+    {
+       27,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,
+
+    -4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497, 4674,-4497,
+    -4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,
+    -4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,
+    -4497,-4497,-4497,-4497, 4674,-4497,-4497,-4497,-4497,-4497,
+    -4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,-4497,
+    -4497,-4497,-4497,-4497,-4497
+    },
+
+    {
+       27,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,
+    -4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,
+    -4498,-4498,-4498,-4498,-4498,-4498, 4675,-4498,-4498,-4498,
+    -4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,
+
+    -4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,
+    -4498, 4675,-4498,-4498,-4498,-4498,-4498,-4498,-4498,-4498,
+    -4498,-4498,-4498,-4498,-4498
+    },
+
+    {
+       27,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,
+    -4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,
+    -4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,
+    -4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,
+    -4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,
+    -4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,-4499,
+    -4499,-4499,-4499,-4499,-4499
+
+    },
+
+    {
+       27,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,
+    -4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,
+    -4500,-4500,-4500,-4500,-4500,-4500,-4500, 4676,-4500,-4500,
+    -4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,
+    -4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,-4500,
+    -4500,-4500, 4676,-4500,-4500,-4500,-4500,-4500,-4500,-4500,
+    -4500,-4500,-4500,-4500,-4500
+    },
+
+    {
+       27,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,
+    -4501,-4501,-4501, 4677,-4501,-4501,-4501,-4501,-4501,-4501,
+    -4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,
+
+    -4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,
+    -4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,
+    -4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,-4501,
+    -4501,-4501,-4501,-4501,-4501
+    },
+
+    {
+       27,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,
+    -4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,
+    -4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,
+    -4502,-4502, 4678,-4502,-4502,-4502,-4502,-4502,-4502,-4502,
+    -4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,-4502,
+    -4502,-4502,-4502,-4502,-4502,-4502,-4502, 4678,-4502,-4502,
+
+    -4502,-4502,-4502,-4502,-4502
+    },
+
+    {
+       27,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,
+    -4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503, 4679,-4503,
+    -4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,
+    -4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,
+    -4503,-4503,-4503,-4503, 4679,-4503,-4503,-4503,-4503,-4503,
+    -4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,-4503,
+    -4503,-4503,-4503,-4503,-4503
+    },
+
+    {
+       27,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,
+    -4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,
+
+    -4504,-4504,-4504,-4504,-4504,-4504, 4680,-4504,-4504,-4504,
+    -4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,
+    -4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,
+    -4504, 4680,-4504,-4504,-4504,-4504,-4504,-4504,-4504,-4504,
+    -4504,-4504,-4504,-4504,-4504
+    },
+
+    {
+       27,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,
+    -4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,
+    -4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505, 4681,-4505,
+    -4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,
+    -4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,-4505,
+
+    -4505,-4505,-4505, 4681,-4505,-4505,-4505,-4505,-4505,-4505,
+    -4505,-4505,-4505,-4505,-4505
+    },
+
+    {
+       27,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,
+    -4506,-4506,-4506,-4506, 4682,-4506,-4506,-4506,-4506,-4506,
+    -4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,
+    -4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,
+     4682,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,
+    -4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,-4506,
+    -4506,-4506,-4506,-4506,-4506
+    },
+
+    {
+       27,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,
+
+    -4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,
+    -4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,
+    -4507, 4683,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,
+    -4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,-4507,
+    -4507,-4507,-4507,-4507,-4507,-4507, 4683,-4507,-4507,-4507,
+    -4507,-4507,-4507,-4507,-4507
+    },
+
+    {
+       27,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,
+    -4508,-4508,-4508, 4684,-4508,-4508,-4508,-4508,-4508,-4508,
+    -4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,
+    -4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,
+
+    -4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,
+    -4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,-4508,
+    -4508,-4508,-4508,-4508,-4508
+    },
+
+    {
+       27,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,
+    -4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,
+    -4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,
+    -4509,-4509, 4685,-4509,-4509,-4509,-4509,-4509,-4509,-4509,
+    -4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,-4509,
+    -4509,-4509,-4509,-4509,-4509,-4509,-4509, 4685,-4509,-4509,
+    -4509,-4509,-4509,-4509,-4509
+
+    },
+
+    {
+       27,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,
+    -4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,
+    -4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510, 4686,-4510,
+    -4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,
+    -4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,-4510,
+    -4510,-4510,-4510, 4686,-4510,-4510,-4510,-4510,-4510,-4510,
+    -4510,-4510,-4510,-4510,-4510
+    },
+
+    {
+       27,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,
+    -4511,-4511,-4511,-4511,-4511,-4511, 4687,-4511,-4511,-4511,
+    -4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,
+
+    -4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,
+    -4511,-4511, 4687,-4511,-4511,-4511,-4511,-4511,-4511,-4511,
+    -4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,-4511,
+    -4511,-4511,-4511,-4511,-4511
+    },
+
+    {
+       27,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,
+    -4512,-4512,-4512, 4688,-4512,-4512,-4512,-4512,-4512,-4512,
+    -4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,
+    -4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,
+    -4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,
+    -4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,-4512,
+
+    -4512,-4512,-4512,-4512,-4512
+    },
+
+    {
+       27,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,
+    -4513,-4513,-4513, 4689,-4513,-4513,-4513,-4513,-4513,-4513,
+    -4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,
+    -4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,
+    -4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,
+    -4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,-4513,
+    -4513,-4513,-4513,-4513,-4513
+    },
+
+    {
+       27,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,
+    -4514,-4514,-4514, 4690,-4514,-4514,-4514,-4514,-4514,-4514,
+
+    -4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,
+    -4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,
+    -4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,
+    -4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,-4514,
+    -4514,-4514,-4514,-4514,-4514
+    },
+
+    {
+       27,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,
+    -4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,
+    -4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,
+    -4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,
+    -4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,
+
+    -4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,-4515,
+    -4515,-4515,-4515,-4515,-4515
+    },
+
+    {
+       27,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,
+    -4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,
+    -4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,
+    -4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,
+    -4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,
+    -4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,-4516,
+    -4516,-4516,-4516,-4516,-4516
+    },
+
+    {
+       27,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,
+
+    -4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,
+    -4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,
+    -4517,-4517, 4691,-4517,-4517,-4517,-4517,-4517,-4517,-4517,
+    -4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,-4517,
+    -4517,-4517,-4517,-4517,-4517,-4517,-4517, 4691,-4517,-4517,
+    -4517,-4517,-4517,-4517,-4517
+    },
+
+    {
+       27,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,
+    -4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,
+    -4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,
+    -4518,-4518, 4692,-4518,-4518,-4518,-4518,-4518,-4518,-4518,
+
+    -4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,-4518,
+    -4518,-4518,-4518,-4518,-4518,-4518,-4518, 4692,-4518,-4518,
+    -4518,-4518,-4518,-4518,-4518
+    },
+
+    {
+       27,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,
+    -4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,
+    -4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,
+    -4519,-4519, 4693,-4519,-4519,-4519,-4519,-4519,-4519,-4519,
+    -4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,-4519,
+    -4519,-4519,-4519,-4519,-4519,-4519,-4519, 4693,-4519,-4519,
+    -4519,-4519,-4519,-4519,-4519
+
+    },
+
+    {
+       27,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,
+    -4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,
+    -4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,
+    -4520,-4520,-4520, 4694,-4520,-4520,-4520,-4520,-4520,-4520,
+    -4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520,
+    -4520,-4520,-4520,-4520,-4520,-4520,-4520,-4520, 4694,-4520,
+    -4520,-4520,-4520,-4520,-4520
+    },
+
+    {
+       27,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,
+    -4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,
+    -4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,
+
+    -4521,-4521,-4521, 4695,-4521,-4521,-4521,-4521,-4521,-4521,
+    -4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521,
+    -4521,-4521,-4521,-4521,-4521,-4521,-4521,-4521, 4695,-4521,
+    -4521,-4521,-4521,-4521,-4521
+    },
+
+    {
+       27,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,
+    -4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522, 4696,-4522,
+    -4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,
+    -4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,
+    -4522,-4522,-4522,-4522, 4696,-4522,-4522,-4522,-4522,-4522,
+    -4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,-4522,
+
+    -4522,-4522,-4522,-4522,-4522
+    },
+
+    {
+       27,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,
+    -4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,
+    -4523,-4523,-4523,-4523,-4523,-4523, 4697,-4523,-4523,-4523,
+    -4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,
+    -4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,
+    -4523, 4697,-4523,-4523,-4523,-4523,-4523,-4523,-4523,-4523,
+    -4523,-4523,-4523,-4523,-4523
+    },
+
+    {
+       27,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,
+    -4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,
+
+    -4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,
+    -4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,
+    -4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,
+    -4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,-4524,
+    -4524,-4524,-4524,-4524,-4524
+    },
+
+    {
+       27,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,
+    -4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,
+    -4525,-4525,-4525,-4525,-4525,-4525,-4525, 4698,-4525,-4525,
+    -4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,
+    -4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,-4525,
+
+    -4525,-4525, 4698,-4525,-4525,-4525,-4525,-4525,-4525,-4525,
+    -4525,-4525,-4525,-4525,-4525
+    },
+
+    {
+       27,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,
+    -4526,-4526,-4526, 4699,-4526,-4526,-4526,-4526,-4526,-4526,
+    -4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,
+    -4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,
+    -4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,
+    -4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,-4526,
+    -4526,-4526,-4526,-4526,-4526
+    },
+
+    {
+       27,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,
+
+    -4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,
+    -4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,
+    -4527,-4527, 4700,-4527,-4527,-4527,-4527,-4527,-4527,-4527,
+    -4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,-4527,
+    -4527,-4527,-4527,-4527,-4527,-4527,-4527, 4700,-4527,-4527,
+    -4527,-4527,-4527,-4527,-4527
+    },
+
+    {
+       27,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,
+    -4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528, 4701,-4528,
+    -4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,
+    -4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,
+
+    -4528,-4528,-4528,-4528, 4701,-4528,-4528,-4528,-4528,-4528,
+    -4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,-4528,
+    -4528,-4528,-4528,-4528,-4528
+    },
+
+    {
+       27,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,
+    -4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,
+    -4529,-4529,-4529,-4529,-4529,-4529, 4702,-4529,-4529,-4529,
+    -4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,
+    -4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,
+    -4529, 4702,-4529,-4529,-4529,-4529,-4529,-4529,-4529,-4529,
+    -4529,-4529,-4529,-4529,-4529
+
+    },
+
+    {
+       27,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,
+    -4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,
+    -4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530, 4703,-4530,
+    -4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,
+    -4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,-4530,
+    -4530,-4530,-4530, 4703,-4530,-4530,-4530,-4530,-4530,-4530,
+    -4530,-4530,-4530,-4530,-4530
+    },
+
+    {
+       27,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,
+    -4531,-4531,-4531,-4531, 4704,-4531,-4531,-4531,-4531,-4531,
+    -4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,
+
+    -4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,
+     4704,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,
+    -4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,-4531,
+    -4531,-4531,-4531,-4531,-4531
+    },
+
+    {
+       27,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,
+    -4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,
+    -4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,
+    -4532, 4705,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,
+    -4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,-4532,
+    -4532,-4532,-4532,-4532,-4532,-4532, 4705,-4532,-4532,-4532,
+
+    -4532,-4532,-4532,-4532,-4532
+    },
+
+    {
+       27,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,
+    -4533,-4533,-4533, 4706,-4533,-4533,-4533,-4533,-4533,-4533,
+    -4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,
+    -4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,
+    -4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,
+    -4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,-4533,
+    -4533,-4533,-4533,-4533,-4533
+    },
+
+    {
+       27,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,
+    -4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,
+
+    -4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,
+    -4534,-4534, 4707,-4534,-4534,-4534,-4534,-4534,-4534,-4534,
+    -4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,-4534,
+    -4534,-4534,-4534,-4534,-4534,-4534,-4534, 4707,-4534,-4534,
+    -4534,-4534,-4534,-4534,-4534
+    },
+
+    {
+       27,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,
+    -4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,
+    -4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535, 4708,-4535,
+    -4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,
+    -4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,-4535,
+
+    -4535,-4535,-4535, 4708,-4535,-4535,-4535,-4535,-4535,-4535,
+    -4535,-4535,-4535,-4535,-4535
+    },
+
+    {
+       27,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,
+    -4536,-4536,-4536,-4536,-4536,-4536, 4709,-4536,-4536,-4536,
+    -4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,
+    -4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,
+    -4536,-4536, 4709,-4536,-4536,-4536,-4536,-4536,-4536,-4536,
+    -4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,-4536,
+    -4536,-4536,-4536,-4536,-4536
+    },
+
+    {
+       27,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,
+
+    -4537,-4537,-4537, 4710,-4537,-4537,-4537,-4537,-4537,-4537,
+    -4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,
+    -4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,
+    -4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,
+    -4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,-4537,
+    -4537,-4537,-4537,-4537,-4537
+    },
+
+    {
+       27,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,
+    -4538,-4538,-4538, 4711,-4538,-4538,-4538,-4538,-4538,-4538,
+    -4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,
+    -4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,
+
+    -4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,
+    -4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,-4538,
+    -4538,-4538,-4538,-4538,-4538
+    },
+
+    {
+       27,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,
+    -4539,-4539,-4539, 4712,-4539,-4539,-4539,-4539,-4539,-4539,
+    -4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,
+    -4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,
+    -4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,
+    -4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,-4539,
+    -4539,-4539,-4539,-4539,-4539
+
+    },
+
+    {
+       27,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,
+    -4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,
+    -4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,
+    -4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,
+    -4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,
+    -4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,-4540,
+    -4540,-4540,-4540,-4540,-4540
+    },
+
+    {
+       27,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,
+    -4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,
+    -4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,
+
+    -4541,-4541, 4713,-4541,-4541,-4541,-4541,-4541,-4541,-4541,
+    -4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,-4541,
+    -4541,-4541,-4541,-4541,-4541,-4541,-4541, 4713,-4541,-4541,
+    -4541,-4541,-4541,-4541,-4541
+    },
+
+    {
+       27,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,
+    -4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,
+    -4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,
+    -4542,-4542, 4714,-4542,-4542,-4542,-4542,-4542,-4542,-4542,
+    -4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,-4542,
+    -4542,-4542,-4542,-4542,-4542,-4542,-4542, 4714,-4542,-4542,
+
+    -4542,-4542,-4542,-4542,-4542
+    },
+
+    {
+       27,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,
+    -4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,
+    -4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,
+    -4543,-4543,-4543, 4715,-4543,-4543,-4543,-4543,-4543,-4543,
+    -4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543,
+    -4543,-4543,-4543,-4543,-4543,-4543,-4543,-4543, 4715,-4543,
+    -4543,-4543,-4543,-4543,-4543
+    },
+
+    {
+       27,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,
+    -4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,
+
+    -4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,
+    -4544,-4544,-4544, 4716,-4544,-4544,-4544,-4544,-4544,-4544,
+    -4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544,
+    -4544,-4544,-4544,-4544,-4544,-4544,-4544,-4544, 4716,-4544,
+    -4544,-4544,-4544,-4544,-4544
+    },
+
+    {
+       27,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,
+    -4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545, 4717,-4545,
+    -4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,
+    -4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,
+    -4545,-4545,-4545,-4545, 4717,-4545,-4545,-4545,-4545,-4545,
+
+    -4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,-4545,
+    -4545,-4545,-4545,-4545,-4545
+    },
+
+    {
+       27,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,
+    -4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,
+    -4546,-4546,-4546,-4546,-4546,-4546, 4718,-4546,-4546,-4546,
+    -4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,
+    -4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,
+    -4546, 4718,-4546,-4546,-4546,-4546,-4546,-4546,-4546,-4546,
+    -4546,-4546,-4546,-4546,-4546
+    },
+
+    {
+       27,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,
+
+    -4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,
+    -4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,
+    -4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,
+    -4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,
+    -4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,-4547,
+    -4547,-4547,-4547,-4547,-4547
+    },
+
+    {
+       27,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,
+    -4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,
+    -4548,-4548,-4548,-4548,-4548,-4548,-4548, 4719,-4548,-4548,
+    -4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,
+
+    -4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,-4548,
+    -4548,-4548, 4719,-4548,-4548,-4548,-4548,-4548,-4548,-4548,
+    -4548,-4548,-4548,-4548,-4548
+    },
+
+    {
+       27,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,
+    -4549,-4549,-4549, 4720,-4549,-4549,-4549,-4549,-4549,-4549,
+    -4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,
+    -4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,
+    -4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,
+    -4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,-4549,
+    -4549,-4549,-4549,-4549,-4549
+
+    },
+
+    {
+       27,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,
+    -4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,
+    -4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,
+    -4550,-4550, 4721,-4550,-4550,-4550,-4550,-4550,-4550,-4550,
+    -4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,-4550,
+    -4550,-4550,-4550,-4550,-4550,-4550,-4550, 4721,-4550,-4550,
+    -4550,-4550,-4550,-4550,-4550
+    },
+
+    {
+       27,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,
+    -4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551, 4722,-4551,
+    -4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,
+
+    -4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,
+    -4551,-4551,-4551,-4551, 4722,-4551,-4551,-4551,-4551,-4551,
+    -4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,-4551,
+    -4551,-4551,-4551,-4551,-4551
+    },
+
+    {
+       27,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,
+    -4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,
+    -4552,-4552,-4552,-4552,-4552,-4552, 4723,-4552,-4552,-4552,
+    -4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,
+    -4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,
+    -4552, 4723,-4552,-4552,-4552,-4552,-4552,-4552,-4552,-4552,
+
+    -4552,-4552,-4552,-4552,-4552
+    },
+
+    {
+       27,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,
+    -4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,
+    -4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553, 4724,-4553,
+    -4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,
+    -4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,-4553,
+    -4553,-4553,-4553, 4724,-4553,-4553,-4553,-4553,-4553,-4553,
+    -4553,-4553,-4553,-4553,-4553
+    },
+
+    {
+       27,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,
+    -4554,-4554,-4554,-4554, 4725,-4554,-4554,-4554,-4554,-4554,
+
+    -4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,
+    -4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,
+     4725,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,
+    -4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,-4554,
+    -4554,-4554,-4554,-4554,-4554
+    },
+
+    {
+       27,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,
+    -4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,
+    -4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,
+    -4555, 4726,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,
+    -4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,-4555,
+
+    -4555,-4555,-4555,-4555,-4555,-4555, 4726,-4555,-4555,-4555,
+    -4555,-4555,-4555,-4555,-4555
+    },
+
+    {
+       27,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,
+    -4556,-4556,-4556, 4727,-4556,-4556,-4556,-4556,-4556,-4556,
+    -4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,
+    -4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,
+    -4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,
+    -4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,-4556,
+    -4556,-4556,-4556,-4556,-4556
+    },
+
+    {
+       27,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,
+
+    -4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,
+    -4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,
+    -4557,-4557, 4728,-4557,-4557,-4557,-4557,-4557,-4557,-4557,
+    -4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,-4557,
+    -4557,-4557,-4557,-4557,-4557,-4557,-4557, 4728,-4557,-4557,
+    -4557,-4557,-4557,-4557,-4557
+    },
+
+    {
+       27,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,
+    -4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,
+    -4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558, 4729,-4558,
+    -4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,
+
+    -4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,-4558,
+    -4558,-4558,-4558, 4729,-4558,-4558,-4558,-4558,-4558,-4558,
+    -4558,-4558,-4558,-4558,-4558
+    },
+
+    {
+       27,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,
+    -4559,-4559,-4559,-4559,-4559,-4559, 4730,-4559,-4559,-4559,
+    -4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,
+    -4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,
+    -4559,-4559, 4730,-4559,-4559,-4559,-4559,-4559,-4559,-4559,
+    -4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,-4559,
+    -4559,-4559,-4559,-4559,-4559
+
+    },
+
+    {
+       27,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,
+    -4560,-4560,-4560, 4731,-4560,-4560,-4560,-4560,-4560,-4560,
+    -4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,
+    -4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,
+    -4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,
+    -4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,-4560,
+    -4560,-4560,-4560,-4560,-4560
+    },
+
+    {
+       27,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,
+    -4561,-4561,-4561, 4732,-4561,-4561,-4561,-4561,-4561,-4561,
+    -4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,
+
+    -4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,
+    -4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,
+    -4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,-4561,
+    -4561,-4561,-4561,-4561,-4561
+    },
+
+    {
+       27,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,
+    -4562,-4562,-4562, 4733,-4562,-4562,-4562,-4562,-4562,-4562,
+    -4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,
+    -4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,
+    -4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,
+    -4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,-4562,
+
+    -4562,-4562,-4562,-4562,-4562
+    },
+
+    {
+       27,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,
+    -4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,
+    -4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,
+    -4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,
+    -4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,
+    -4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,-4563,
+    -4563,-4563,-4563,-4563,-4563
+    },
+
+    {
+       27,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,
+    -4564,-4564,-4564, 4734,-4564,-4564,-4564,-4564,-4564,-4564,
+
+    -4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,
+    -4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,
+    -4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,
+    -4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,-4564,
+    -4564,-4564,-4564,-4564,-4564
+    },
+
+    {
+       27,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,
+    -4565,-4565,-4565, 4735,-4565,-4565,-4565,-4565,-4565,-4565,
+    -4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,
+    -4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,
+    -4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,
+
+    -4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,-4565,
+    -4565,-4565,-4565,-4565,-4565
+    },
+
+    {
+       27,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,
+    -4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,
+    -4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,
+    -4566,-4566, 4736,-4566,-4566,-4566,-4566,-4566,-4566,-4566,
+    -4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,-4566,
+    -4566,-4566,-4566,-4566,-4566,-4566,-4566, 4736,-4566,-4566,
+    -4566,-4566,-4566,-4566,-4566
+    },
+
+    {
+       27,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,
+
+    -4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,
+    -4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,
+    -4567,-4567, 4737,-4567,-4567,-4567,-4567,-4567,-4567,-4567,
+    -4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,-4567,
+    -4567,-4567,-4567,-4567,-4567,-4567,-4567, 4737,-4567,-4567,
+    -4567,-4567,-4567,-4567,-4567
+    },
+
+    {
+       27,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,
+    -4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,
+    -4568,-4568,-4568,-4568,-4568,-4568,-4568, 4738,-4568,-4568,
+    -4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,
+
+    -4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,-4568,
+    -4568,-4568, 4738,-4568,-4568,-4568,-4568,-4568,-4568,-4568,
+    -4568,-4568,-4568,-4568,-4568
+    },
+
+    {
+       27,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,
+    -4569,-4569,-4569, 4739,-4569,-4569,-4569,-4569,-4569,-4569,
+    -4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,
+    -4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,
+    -4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,
+    -4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,-4569,
+    -4569,-4569,-4569,-4569,-4569
+
+    },
+
+    {
+       27,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,
+    -4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,
+    -4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,
+    -4570,-4570,-4570, 4740,-4570,-4570,-4570,-4570,-4570,-4570,
+    -4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570,
+    -4570,-4570,-4570,-4570,-4570,-4570,-4570,-4570, 4740,-4570,
+    -4570,-4570,-4570,-4570,-4570
+    },
+
+    {
+       27, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741,-4571, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741
+    },
+
+    {
+       27,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,
+    -4572,-4572,-4572, 4742,-4572,-4572,-4572,-4572,-4572,-4572,
+    -4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,
+    -4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,
+    -4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,
+    -4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,-4572,
+
+    -4572,-4572,-4572,-4572,-4572
+    },
+
+    {
+       27,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,
+    -4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,
+    -4573,-4573,-4573,-4573,-4573,-4573,-4573, 4743,-4573,-4573,
+    -4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,
+    -4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,-4573,
+    -4573,-4573, 4743,-4573,-4573,-4573,-4573,-4573,-4573,-4573,
+    -4573,-4573,-4573,-4573,-4573
+    },
+
+    {
+       27,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,
+    -4574,-4574,-4574, 4744,-4574,-4574,-4574,-4574,-4574,-4574,
+
+    -4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,
+    -4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,
+    -4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,
+    -4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,-4574,
+    -4574,-4574,-4574,-4574,-4574
+    },
+
+    {
+       27,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,
+    -4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,
+    -4575,-4575,-4575,-4575,-4575,-4575,-4575, 4745,-4575,-4575,
+    -4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,
+    -4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,-4575,
+
+    -4575,-4575, 4745,-4575,-4575,-4575,-4575,-4575,-4575,-4575,
+    -4575,-4575,-4575,-4575,-4575
+    },
+
+    {
+       27,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,
+    -4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,
+    -4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,
+    -4576, 4746,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,
+    -4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,-4576,
+    -4576,-4576,-4576,-4576,-4576,-4576, 4746,-4576,-4576,-4576,
+    -4576,-4576,-4576,-4576,-4576
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 3643,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4578, 4747, 4747,-4578,-4578,-4578,-4578,-4578,-4578,
+    -4578,-4578, 4748,-4578,-4578,-4578,-4578,-4578,-4578,-4578,
+    -4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,
+    -4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,
+
+    -4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,
+    -4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,-4578,
+    -4578,-4578,-4578,-4578,-4578
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4749,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 4749,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 4750,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 4750,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184, 4751,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 4751,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,
+    -4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,
+    -4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,
+    -4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,
+    -4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,
+    -4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,-4582,
+
+    -4582,-4582,-4582,-4582,-4582
+    },
+
+    {
+       27,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,
+    -4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,
+    -4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,
+    -4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,
+    -4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,
+    -4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,-4583,
+    -4583,-4583,-4583,-4583,-4583
+    },
+
+    {
+       27,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,
+    -4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,
+
+    -4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,
+    -4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,
+    -4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,
+    -4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,-4584,
+    -4584,-4584,-4584,-4584,-4584
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 4752,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     4752,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,
+    -4586,-4586,-4586, 4753,-4586,-4586,-4586,-4586,-4586,-4586,
+    -4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,
+    -4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,
+    -4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,
+    -4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,-4586,
+    -4586,-4586,-4586,-4586,-4586
+    },
+
+    {
+       27,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,
+
+    -4587,-4587,-4587, 4754,-4587,-4587,-4587,-4587,-4587,-4587,
+    -4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,
+    -4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,
+    -4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,
+    -4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,-4587,
+    -4587,-4587,-4587,-4587,-4587
+    },
+
+    {
+       27,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,
+    -4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,
+    -4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,
+    -4588,-4588, 4755,-4588,-4588,-4588,-4588,-4588,-4588,-4588,
+
+    -4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,-4588,
+    -4588,-4588,-4588,-4588,-4588,-4588,-4588, 4755,-4588,-4588,
+    -4588,-4588,-4588,-4588,-4588
+    },
+
+    {
+       27,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,
+    -4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,
+    -4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,
+    -4589,-4589, 4756,-4589,-4589,-4589,-4589,-4589,-4589,-4589,
+    -4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,-4589,
+    -4589,-4589,-4589,-4589,-4589,-4589,-4589, 4756,-4589,-4589,
+    -4589,-4589,-4589,-4589,-4589
+
+    },
+
+    {
+       27,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,
+    -4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,
+    -4590,-4590,-4590,-4590,-4590,-4590,-4590, 4757,-4590,-4590,
+    -4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,
+    -4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,-4590,
+    -4590,-4590, 4757,-4590,-4590,-4590,-4590,-4590,-4590,-4590,
+    -4590,-4590,-4590,-4590,-4590
+    },
+
+    {
+       27,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,
+    -4591,-4591,-4591, 4758,-4591,-4591,-4591,-4591,-4591,-4591,
+    -4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,
+
+    -4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,
+    -4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,
+    -4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,-4591,
+    -4591,-4591,-4591,-4591,-4591
+    },
+
+    {
+       27,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,
+    -4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,
+    -4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,
+    -4592,-4592,-4592, 4759,-4592,-4592,-4592,-4592,-4592,-4592,
+    -4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592,
+    -4592,-4592,-4592,-4592,-4592,-4592,-4592,-4592, 4759,-4592,
+
+    -4592,-4592,-4592,-4592,-4592
+    },
+
+    {
+       27, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760,-4593, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760
+    },
+
+    {
+       27,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,
+    -4594,-4594,-4594, 4761,-4594,-4594,-4594,-4594,-4594,-4594,
+
+    -4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,
+    -4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,
+    -4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,
+    -4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,-4594,
+    -4594,-4594,-4594,-4594,-4594
+    },
+
+    {
+       27,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,
+    -4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,
+    -4595,-4595,-4595,-4595,-4595,-4595,-4595, 4762,-4595,-4595,
+    -4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,
+    -4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,-4595,
+
+    -4595,-4595, 4762,-4595,-4595,-4595,-4595,-4595,-4595,-4595,
+    -4595,-4595,-4595,-4595,-4595
+    },
+
+    {
+       27,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,
+    -4596,-4596,-4596, 4763,-4596,-4596,-4596,-4596,-4596,-4596,
+    -4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,
+    -4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,
+    -4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,
+    -4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,-4596,
+    -4596,-4596,-4596,-4596,-4596
+    },
+
+    {
+       27,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,
+
+    -4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,
+    -4597,-4597,-4597,-4597,-4597,-4597,-4597, 4764,-4597,-4597,
+    -4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,
+    -4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,-4597,
+    -4597,-4597, 4764,-4597,-4597,-4597,-4597,-4597,-4597,-4597,
+    -4597,-4597,-4597,-4597,-4597
+    },
+
+    {
+       27,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,
+    -4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,
+    -4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,
+    -4598, 4765,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,
+
+    -4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,-4598,
+    -4598,-4598,-4598,-4598,-4598,-4598, 4765,-4598,-4598,-4598,
+    -4598,-4598,-4598,-4598,-4598
+    },
+
+    {
+       27,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599, 3677,
+    -4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,
+    -4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,
+    -4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,
+    -4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,
+    -4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,-4599,
+    -4599,-4599,-4599,-4599,-4599
+
+    },
+
+    {
+       27,-4600, 4766, 4766,-4600,-4600,-4600,-4600,-4600,-4600,
+    -4600,-4600, 4767,-4600,-4600,-4600,-4600,-4600,-4600,-4600,
+    -4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,
+    -4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,
+    -4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,
+    -4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,-4600,
+    -4600,-4600,-4600,-4600,-4600
+    },
+
+    {
+       27,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,
+    -4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,
+    -4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,
+
+    -4601,-4601,-4601, 4768,-4601,-4601,-4601,-4601,-4601,-4601,
+    -4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601,
+    -4601,-4601,-4601,-4601,-4601,-4601,-4601,-4601, 4768,-4601,
+    -4601,-4601,-4601,-4601,-4601
+    },
+
+    {
+       27,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,
+    -4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,
+    -4602,-4602,-4602,-4602,-4602,-4602,-4602, 4769,-4602,-4602,
+    -4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,
+    -4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,-4602,
+    -4602,-4602, 4769,-4602,-4602,-4602,-4602,-4602,-4602,-4602,
+
+    -4602,-4602,-4602,-4602,-4602
+    },
+
+    {
+       27,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,
+    -4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,
+    -4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,
+    -4603,-4603,-4603, 4770,-4603,-4603,-4603,-4603,-4603,-4603,
+    -4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603,
+    -4603,-4603,-4603,-4603,-4603,-4603,-4603,-4603, 4770,-4603,
+    -4603,-4603,-4603,-4603,-4603
+    },
+
+    {
+       27,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,
+    -4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,
+
+    -4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,
+    -4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,
+    -4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,
+    -4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,-4604,
+    -4604,-4604,-4604,-4604,-4604
+    },
+
+    {
+       27,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,
+    -4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,
+    -4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,
+    -4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,
+    -4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,
+
+    -4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,-4605,
+    -4605,-4605,-4605,-4605,-4605
+    },
+
+    {
+       27,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,
+    -4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,
+    -4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,
+    -4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,
+    -4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,
+    -4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,-4606,
+    -4606,-4606,-4606,-4606,-4606
+    },
+
+    {
+       27,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,
+
+    -4607,-4607,-4607, 4771,-4607,-4607,-4607,-4607,-4607,-4607,
+    -4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,
+    -4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,
+    -4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,
+    -4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,-4607,
+    -4607,-4607,-4607,-4607,-4607
+    },
+
+    {
+       27,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,
+    -4608,-4608,-4608, 4772,-4608,-4608,-4608,-4608,-4608,-4608,
+    -4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,
+    -4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,
+
+    -4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,
+    -4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,-4608,
+    -4608,-4608,-4608,-4608,-4608
+    },
+
+    {
+       27,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,
+    -4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,
+    -4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,
+    -4609,-4609, 4773,-4609,-4609,-4609,-4609,-4609,-4609,-4609,
+    -4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,-4609,
+    -4609,-4609,-4609,-4609,-4609,-4609,-4609, 4773,-4609,-4609,
+    -4609,-4609,-4609,-4609,-4609
+
+    },
+
+    {
+       27,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,
+    -4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,
+    -4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,
+    -4610,-4610, 4774,-4610,-4610,-4610,-4610,-4610,-4610,-4610,
+    -4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,-4610,
+    -4610,-4610,-4610,-4610,-4610,-4610,-4610, 4774,-4610,-4610,
+    -4610,-4610,-4610,-4610,-4610
+    },
+
+    {
+       27,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,
+    -4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,
+    -4611,-4611,-4611,-4611,-4611,-4611,-4611, 4775,-4611,-4611,
+
+    -4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,
+    -4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,-4611,
+    -4611,-4611, 4775,-4611,-4611,-4611,-4611,-4611,-4611,-4611,
+    -4611,-4611,-4611,-4611,-4611
+    },
+
+    {
+       27,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,
+    -4612,-4612,-4612, 4776,-4612,-4612,-4612,-4612,-4612,-4612,
+    -4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,
+    -4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,
+    -4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,
+    -4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,-4612,
+
+    -4612,-4612,-4612,-4612,-4612
+    },
+
+    {
+       27,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,
+    -4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,
+    -4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,
+    -4613,-4613,-4613, 4777,-4613,-4613,-4613,-4613,-4613,-4613,
+    -4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613,
+    -4613,-4613,-4613,-4613,-4613,-4613,-4613,-4613, 4777,-4613,
+    -4613,-4613,-4613,-4613,-4613
+    },
+
+    {
+       27, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778,-4614, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778
+    },
+
+    {
+       27,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,
+    -4615,-4615,-4615, 4779,-4615,-4615,-4615,-4615,-4615,-4615,
+    -4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,
+    -4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,
+    -4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,
+
+    -4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,-4615,
+    -4615,-4615,-4615,-4615,-4615
+    },
+
+    {
+       27,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,
+    -4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,
+    -4616,-4616,-4616,-4616,-4616,-4616,-4616, 4780,-4616,-4616,
+    -4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,
+    -4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,-4616,
+    -4616,-4616, 4780,-4616,-4616,-4616,-4616,-4616,-4616,-4616,
+    -4616,-4616,-4616,-4616,-4616
+    },
+
+    {
+       27,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,
+
+    -4617,-4617,-4617, 4781,-4617,-4617,-4617,-4617,-4617,-4617,
+    -4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,
+    -4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,
+    -4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,
+    -4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,-4617,
+    -4617,-4617,-4617,-4617,-4617
+    },
+
+    {
+       27,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,
+    -4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,
+    -4618,-4618,-4618,-4618,-4618,-4618,-4618, 4782,-4618,-4618,
+    -4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,
+
+    -4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,-4618,
+    -4618,-4618, 4782,-4618,-4618,-4618,-4618,-4618,-4618,-4618,
+    -4618,-4618,-4618,-4618,-4618
+    },
+
+    {
+       27,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,
+    -4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,
+    -4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,
+    -4619, 4783,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,
+    -4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,-4619,
+    -4619,-4619,-4619,-4619,-4619,-4619, 4783,-4619,-4619,-4619,
+    -4619,-4619,-4619,-4619,-4619
+
+    },
+
+    {
+       27,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620, 3710,
+    -4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,
+    -4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,
+    -4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,
+    -4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,
+    -4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,-4620,
+    -4620,-4620,-4620,-4620,-4620
+    },
+
+    {
+       27,-4621, 4784, 4784,-4621,-4621,-4621,-4621,-4621,-4621,
+    -4621,-4621, 4785,-4621,-4621,-4621,-4621,-4621,-4621,-4621,
+    -4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,
+
+    -4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,
+    -4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,
+    -4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,-4621,
+    -4621,-4621,-4621,-4621,-4621
+    },
+
+    {
+       27,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,
+    -4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,
+    -4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,
+    -4622,-4622,-4622, 4786,-4622,-4622,-4622,-4622,-4622,-4622,
+    -4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622,
+    -4622,-4622,-4622,-4622,-4622,-4622,-4622,-4622, 4786,-4622,
+
+    -4622,-4622,-4622,-4622,-4622
+    },
+
+    {
+       27,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,
+    -4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,
+    -4623,-4623,-4623,-4623,-4623,-4623,-4623, 4787,-4623,-4623,
+    -4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,
+    -4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,-4623,
+    -4623,-4623, 4787,-4623,-4623,-4623,-4623,-4623,-4623,-4623,
+    -4623,-4623,-4623,-4623,-4623
+    },
+
+    {
+       27,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,
+    -4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,
+
+    -4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,
+    -4624,-4624,-4624, 4788,-4624,-4624,-4624,-4624,-4624,-4624,
+    -4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624,
+    -4624,-4624,-4624,-4624,-4624,-4624,-4624,-4624, 4788,-4624,
+    -4624,-4624,-4624,-4624,-4624
+    },
+
+    {
+       27,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,
+    -4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,
+    -4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,
+    -4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,
+    -4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,
+
+    -4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,-4625,
+    -4625,-4625,-4625,-4625,-4625
+    },
+
+    {
+       27,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,
+    -4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,
+    -4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,
+    -4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,
+    -4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,
+    -4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,-4626,
+    -4626,-4626,-4626,-4626,-4626
+    },
+
+    {
+       27,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,
+
+    -4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,
+    -4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,
+    -4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,
+    -4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,
+    -4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,-4627,
+    -4627,-4627,-4627,-4627,-4627
+    },
+
+    {
+       27,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,
+    -4628,-4628,-4628, 4789,-4628,-4628,-4628,-4628,-4628,-4628,
+    -4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,
+    -4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,
+
+    -4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,
+    -4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,-4628,
+    -4628,-4628,-4628,-4628,-4628
+    },
+
+    {
+       27,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,
+    -4629,-4629,-4629, 4790,-4629,-4629,-4629,-4629,-4629,-4629,
+    -4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,
+    -4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,
+    -4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,
+    -4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,-4629,
+    -4629,-4629,-4629,-4629,-4629
+
+    },
+
+    {
+       27,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,
+    -4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,
+    -4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,
+    -4630,-4630, 4791,-4630,-4630,-4630,-4630,-4630,-4630,-4630,
+    -4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,-4630,
+    -4630,-4630,-4630,-4630,-4630,-4630,-4630, 4791,-4630,-4630,
+    -4630,-4630,-4630,-4630,-4630
+    },
+
+    {
+       27,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,
+    -4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,
+    -4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,
+
+    -4631,-4631, 4792,-4631,-4631,-4631,-4631,-4631,-4631,-4631,
+    -4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,-4631,
+    -4631,-4631,-4631,-4631,-4631,-4631,-4631, 4792,-4631,-4631,
+    -4631,-4631,-4631,-4631,-4631
+    },
+
+    {
+       27,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,
+    -4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,
+    -4632,-4632,-4632,-4632,-4632,-4632,-4632, 4793,-4632,-4632,
+    -4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,
+    -4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,-4632,
+    -4632,-4632, 4793,-4632,-4632,-4632,-4632,-4632,-4632,-4632,
+
+    -4632,-4632,-4632,-4632,-4632
+    },
+
+    {
+       27,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,
+    -4633,-4633,-4633, 4794,-4633,-4633,-4633,-4633,-4633,-4633,
+    -4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,
+    -4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,
+    -4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,
+    -4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,-4633,
+    -4633,-4633,-4633,-4633,-4633
+    },
+
+    {
+       27,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,
+    -4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,
+
+    -4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,
+    -4634,-4634,-4634, 4795,-4634,-4634,-4634,-4634,-4634,-4634,
+    -4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634,
+    -4634,-4634,-4634,-4634,-4634,-4634,-4634,-4634, 4795,-4634,
+    -4634,-4634,-4634,-4634,-4634
+    },
+
+    {
+       27, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796,-4635, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796
+    },
+
+    {
+       27,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,
+    -4636,-4636,-4636, 4797,-4636,-4636,-4636,-4636,-4636,-4636,
+    -4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,
+    -4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,
+    -4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,
+    -4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,-4636,
+    -4636,-4636,-4636,-4636,-4636
+    },
+
+    {
+       27,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,
+
+    -4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,
+    -4637,-4637,-4637,-4637,-4637,-4637,-4637, 4798,-4637,-4637,
+    -4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,
+    -4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,-4637,
+    -4637,-4637, 4798,-4637,-4637,-4637,-4637,-4637,-4637,-4637,
+    -4637,-4637,-4637,-4637,-4637
+    },
+
+    {
+       27,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,
+    -4638,-4638,-4638, 4799,-4638,-4638,-4638,-4638,-4638,-4638,
+    -4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,
+    -4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,
+
+    -4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,
+    -4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,-4638,
+    -4638,-4638,-4638,-4638,-4638
+    },
+
+    {
+       27,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,
+    -4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,
+    -4639,-4639,-4639,-4639,-4639,-4639,-4639, 4800,-4639,-4639,
+    -4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,
+    -4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,-4639,
+    -4639,-4639, 4800,-4639,-4639,-4639,-4639,-4639,-4639,-4639,
+    -4639,-4639,-4639,-4639,-4639
+
+    },
+
+    {
+       27,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,
+    -4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,
+    -4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,
+    -4640, 4801,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,
+    -4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,-4640,
+    -4640,-4640,-4640,-4640,-4640,-4640, 4801,-4640,-4640,-4640,
+    -4640,-4640,-4640,-4640,-4640
+    },
+
+    {
+       27,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641, 3743,
+    -4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,
+    -4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,
+
+    -4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,
+    -4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,
+    -4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,-4641,
+    -4641,-4641,-4641,-4641,-4641
+    },
+
+    {
+       27,-4642, 4802, 4802,-4642,-4642,-4642,-4642,-4642,-4642,
+    -4642,-4642, 4803,-4642,-4642,-4642,-4642,-4642,-4642,-4642,
+    -4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,
+    -4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,
+    -4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,
+    -4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,-4642,
+
+    -4642,-4642,-4642,-4642,-4642
+    },
+
+    {
+       27,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,
+    -4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,
+    -4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,
+    -4643,-4643,-4643, 4804,-4643,-4643,-4643,-4643,-4643,-4643,
+    -4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643,
+    -4643,-4643,-4643,-4643,-4643,-4643,-4643,-4643, 4804,-4643,
+    -4643,-4643,-4643,-4643,-4643
+    },
+
+    {
+       27,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,
+    -4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,
+
+    -4644,-4644,-4644,-4644,-4644,-4644,-4644, 4805,-4644,-4644,
+    -4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,
+    -4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,-4644,
+    -4644,-4644, 4805,-4644,-4644,-4644,-4644,-4644,-4644,-4644,
+    -4644,-4644,-4644,-4644,-4644
+    },
+
+    {
+       27,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,
+    -4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,
+    -4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,
+    -4645,-4645,-4645, 4806,-4645,-4645,-4645,-4645,-4645,-4645,
+    -4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645,
+
+    -4645,-4645,-4645,-4645,-4645,-4645,-4645,-4645, 4806,-4645,
+    -4645,-4645,-4645,-4645,-4645
+    },
+
+    {
+       27,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,
+    -4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,
+    -4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,
+    -4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,
+    -4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,
+    -4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,-4646,
+    -4646,-4646,-4646,-4646,-4646
+    },
+
+    {
+       27,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,
+
+    -4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,
+    -4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,
+    -4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,
+    -4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,
+    -4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,-4647,
+    -4647,-4647,-4647,-4647,-4647
+    },
+
+    {
+       27,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,
+    -4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,
+    -4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,
+    -4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,
+
+    -4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,
+    -4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,-4648,
+    -4648,-4648,-4648,-4648,-4648
+    },
+
+    {
+       27,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,
+    -4649,-4649,-4649, 4807,-4649,-4649,-4649,-4649,-4649,-4649,
+    -4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,
+    -4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,
+    -4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,
+    -4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,-4649,
+    -4649,-4649,-4649,-4649,-4649
+
+    },
+
+    {
+       27,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,
+    -4650,-4650,-4650, 4808,-4650,-4650,-4650,-4650,-4650,-4650,
+    -4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,
+    -4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,
+    -4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,
+    -4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,-4650,
+    -4650,-4650,-4650,-4650,-4650
+    },
+
+    {
+       27,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,
+    -4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,
+    -4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,
+
+    -4651,-4651, 4809,-4651,-4651,-4651,-4651,-4651,-4651,-4651,
+    -4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,-4651,
+    -4651,-4651,-4651,-4651,-4651,-4651,-4651, 4809,-4651,-4651,
+    -4651,-4651,-4651,-4651,-4651
+    },
+
+    {
+       27,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,
+    -4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,
+    -4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,
+    -4652,-4652, 4810,-4652,-4652,-4652,-4652,-4652,-4652,-4652,
+    -4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,-4652,
+    -4652,-4652,-4652,-4652,-4652,-4652,-4652, 4810,-4652,-4652,
+
+    -4652,-4652,-4652,-4652,-4652
+    },
+
+    {
+       27,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,
+    -4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,
+    -4653,-4653,-4653,-4653,-4653,-4653,-4653, 4811,-4653,-4653,
+    -4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,
+    -4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,-4653,
+    -4653,-4653, 4811,-4653,-4653,-4653,-4653,-4653,-4653,-4653,
+    -4653,-4653,-4653,-4653,-4653
+    },
+
+    {
+       27,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,
+    -4654,-4654,-4654, 4812,-4654,-4654,-4654,-4654,-4654,-4654,
+
+    -4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,
+    -4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,
+    -4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,
+    -4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,-4654,
+    -4654,-4654,-4654,-4654,-4654
+    },
+
+    {
+       27,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,
+    -4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,
+    -4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,
+    -4655,-4655,-4655, 4813,-4655,-4655,-4655,-4655,-4655,-4655,
+    -4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655,
+
+    -4655,-4655,-4655,-4655,-4655,-4655,-4655,-4655, 4813,-4655,
+    -4655,-4655,-4655,-4655,-4655
+    },
+
+    {
+       27, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814,-4656, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814
+    },
+
+    {
+       27,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,
+
+    -4657,-4657,-4657, 4815,-4657,-4657,-4657,-4657,-4657,-4657,
+    -4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,
+    -4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,
+    -4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,
+    -4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,-4657,
+    -4657,-4657,-4657,-4657,-4657
+    },
+
+    {
+       27,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,
+    -4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,
+    -4658,-4658,-4658,-4658,-4658,-4658,-4658, 4816,-4658,-4658,
+    -4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,
+
+    -4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,-4658,
+    -4658,-4658, 4816,-4658,-4658,-4658,-4658,-4658,-4658,-4658,
+    -4658,-4658,-4658,-4658,-4658
+    },
+
+    {
+       27,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,
+    -4659,-4659,-4659, 4817,-4659,-4659,-4659,-4659,-4659,-4659,
+    -4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,
+    -4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,
+    -4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,
+    -4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,-4659,
+    -4659,-4659,-4659,-4659,-4659
+
+    },
+
+    {
+       27,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,
+    -4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,
+    -4660,-4660,-4660,-4660,-4660,-4660,-4660, 4818,-4660,-4660,
+    -4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,
+    -4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,-4660,
+    -4660,-4660, 4818,-4660,-4660,-4660,-4660,-4660,-4660,-4660,
+    -4660,-4660,-4660,-4660,-4660
+    },
+
+    {
+       27,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,
+    -4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,
+    -4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,
+
+    -4661, 4819,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,
+    -4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,-4661,
+    -4661,-4661,-4661,-4661,-4661,-4661, 4819,-4661,-4661,-4661,
+    -4661,-4661,-4661,-4661,-4661
+    },
+
+    {
+       27,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662, 3777,
+    -4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,
+    -4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,
+    -4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,
+    -4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,
+    -4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,-4662,
+
+    -4662,-4662,-4662,-4662,-4662
+    },
+
+    {
+       27,-4663, 4820, 4820,-4663,-4663,-4663,-4663,-4663,-4663,
+    -4663,-4663, 4821,-4663,-4663,-4663,-4663,-4663,-4663,-4663,
+    -4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,
+    -4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,
+    -4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,
+    -4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,-4663,
+    -4663,-4663,-4663,-4663,-4663
+    },
+
+    {
+       27,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,
+    -4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,
+
+    -4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,
+    -4664,-4664,-4664, 4822,-4664,-4664,-4664,-4664,-4664,-4664,
+    -4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664,
+    -4664,-4664,-4664,-4664,-4664,-4664,-4664,-4664, 4822,-4664,
+    -4664,-4664,-4664,-4664,-4664
+    },
+
+    {
+       27,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,
+    -4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,
+    -4665,-4665,-4665,-4665,-4665,-4665,-4665, 4823,-4665,-4665,
+    -4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,
+    -4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,-4665,
+
+    -4665,-4665, 4823,-4665,-4665,-4665,-4665,-4665,-4665,-4665,
+    -4665,-4665,-4665,-4665,-4665
+    },
+
+    {
+       27,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,
+    -4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,
+    -4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,
+    -4666,-4666,-4666, 4824,-4666,-4666,-4666,-4666,-4666,-4666,
+    -4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666,
+    -4666,-4666,-4666,-4666,-4666,-4666,-4666,-4666, 4824,-4666,
+    -4666,-4666,-4666,-4666,-4666
+    },
+
+    {
+       27,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,
+
+    -4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,
+    -4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,
+    -4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,
+    -4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,
+    -4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,-4667,
+    -4667,-4667,-4667,-4667,-4667
+    },
+
+    {
+       27,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,
+    -4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,
+    -4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,
+    -4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,
+
+    -4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,
+    -4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,-4668,
+    -4668,-4668,-4668,-4668,-4668
+    },
+
+    {
+       27,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,
+    -4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,
+    -4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,
+    -4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,
+    -4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,
+    -4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,-4669,
+    -4669,-4669,-4669,-4669,-4669
+
+    },
+
+    {
+       27,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,
+    -4670,-4670,-4670, 4825,-4670,-4670,-4670,-4670,-4670,-4670,
+    -4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,
+    -4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,
+    -4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,
+    -4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,-4670,
+    -4670,-4670,-4670,-4670,-4670
+    },
+
+    {
+       27,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,
+    -4671,-4671,-4671, 4826,-4671,-4671,-4671,-4671,-4671,-4671,
+    -4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,
+
+    -4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,
+    -4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,
+    -4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,-4671,
+    -4671,-4671,-4671,-4671,-4671
+    },
+
+    {
+       27,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,
+    -4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,
+    -4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,
+    -4672,-4672, 4827,-4672,-4672,-4672,-4672,-4672,-4672,-4672,
+    -4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,-4672,
+    -4672,-4672,-4672,-4672,-4672,-4672,-4672, 4827,-4672,-4672,
+
+    -4672,-4672,-4672,-4672,-4672
+    },
+
+    {
+       27,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,
+    -4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,
+    -4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,
+    -4673,-4673, 4828,-4673,-4673,-4673,-4673,-4673,-4673,-4673,
+    -4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,-4673,
+    -4673,-4673,-4673,-4673,-4673,-4673,-4673, 4828,-4673,-4673,
+    -4673,-4673,-4673,-4673,-4673
+    },
+
+    {
+       27,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,
+    -4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,
+
+    -4674,-4674,-4674,-4674,-4674,-4674,-4674, 4829,-4674,-4674,
+    -4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,
+    -4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,-4674,
+    -4674,-4674, 4829,-4674,-4674,-4674,-4674,-4674,-4674,-4674,
+    -4674,-4674,-4674,-4674,-4674
+    },
+
+    {
+       27,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,
+    -4675,-4675,-4675, 4830,-4675,-4675,-4675,-4675,-4675,-4675,
+    -4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,
+    -4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,
+    -4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,
+
+    -4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,-4675,
+    -4675,-4675,-4675,-4675,-4675
+    },
+
+    {
+       27,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,
+    -4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,
+    -4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,
+    -4676,-4676,-4676, 4831,-4676,-4676,-4676,-4676,-4676,-4676,
+    -4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676,
+    -4676,-4676,-4676,-4676,-4676,-4676,-4676,-4676, 4831,-4676,
+    -4676,-4676,-4676,-4676,-4676
+    },
+
+    {
+       27, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+
+     4832, 4832,-4677, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832
+    },
+
+    {
+       27,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,
+    -4678,-4678,-4678, 4833,-4678,-4678,-4678,-4678,-4678,-4678,
+    -4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,
+    -4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,
+
+    -4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,
+    -4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,-4678,
+    -4678,-4678,-4678,-4678,-4678
+    },
+
+    {
+       27,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,
+    -4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,
+    -4679,-4679,-4679,-4679,-4679,-4679,-4679, 4834,-4679,-4679,
+    -4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,
+    -4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,-4679,
+    -4679,-4679, 4834,-4679,-4679,-4679,-4679,-4679,-4679,-4679,
+    -4679,-4679,-4679,-4679,-4679
+
+    },
+
+    {
+       27,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,
+    -4680,-4680,-4680, 4835,-4680,-4680,-4680,-4680,-4680,-4680,
+    -4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,
+    -4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,
+    -4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,
+    -4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,-4680,
+    -4680,-4680,-4680,-4680,-4680
+    },
+
+    {
+       27,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,
+    -4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,
+    -4681,-4681,-4681,-4681,-4681,-4681,-4681, 4836,-4681,-4681,
+
+    -4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,
+    -4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,-4681,
+    -4681,-4681, 4836,-4681,-4681,-4681,-4681,-4681,-4681,-4681,
+    -4681,-4681,-4681,-4681,-4681
+    },
+
+    {
+       27,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,
+    -4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,
+    -4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,
+    -4682, 4837,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,
+    -4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,-4682,
+    -4682,-4682,-4682,-4682,-4682,-4682, 4837,-4682,-4682,-4682,
+
+    -4682,-4682,-4682,-4682,-4682
+    },
+
+    {
+       27,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683, 3811,
+    -4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,
+    -4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,
+    -4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,
+    -4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,
+    -4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,-4683,
+    -4683,-4683,-4683,-4683,-4683
+    },
+
+    {
+       27,-4684, 4838, 4838,-4684,-4684,-4684,-4684,-4684,-4684,
+    -4684,-4684, 4839,-4684,-4684,-4684,-4684,-4684,-4684,-4684,
+
+    -4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,
+    -4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,
+    -4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,
+    -4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,-4684,
+    -4684,-4684,-4684,-4684,-4684
+    },
+
+    {
+       27,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,
+    -4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,
+    -4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,
+    -4685,-4685,-4685, 4840,-4685,-4685,-4685,-4685,-4685,-4685,
+    -4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685,
+
+    -4685,-4685,-4685,-4685,-4685,-4685,-4685,-4685, 4840,-4685,
+    -4685,-4685,-4685,-4685,-4685
+    },
+
+    {
+       27,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,
+    -4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,
+    -4686,-4686,-4686,-4686,-4686,-4686,-4686, 4841,-4686,-4686,
+    -4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,
+    -4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,-4686,
+    -4686,-4686, 4841,-4686,-4686,-4686,-4686,-4686,-4686,-4686,
+    -4686,-4686,-4686,-4686,-4686
+    },
+
+    {
+       27,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,
+
+    -4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,
+    -4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,
+    -4687,-4687,-4687, 4842,-4687,-4687,-4687,-4687,-4687,-4687,
+    -4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687,
+    -4687,-4687,-4687,-4687,-4687,-4687,-4687,-4687, 4842,-4687,
+    -4687,-4687,-4687,-4687,-4687
+    },
+
+    {
+       27,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,
+    -4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,
+    -4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,
+    -4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,
+
+    -4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,
+    -4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,-4688,
+    -4688,-4688,-4688,-4688,-4688
+    },
+
+    {
+       27,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,
+    -4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,
+    -4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,
+    -4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,
+    -4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,
+    -4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,-4689,
+    -4689,-4689,-4689,-4689,-4689
+
+    },
+
+    {
+       27,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,
+    -4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,
+    -4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,
+    -4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,
+    -4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,
+    -4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,-4690,
+    -4690,-4690,-4690,-4690,-4690
+    },
+
+    {
+       27,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,
+    -4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,
+    -4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,
+
+    -4691,-4691,-4691, 4843,-4691,-4691,-4691,-4691,-4691,-4691,
+    -4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691,
+    -4691,-4691,-4691,-4691,-4691,-4691,-4691,-4691, 4843,-4691,
+    -4691,-4691,-4691,-4691,-4691
+    },
+
+    {
+       27,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,
+    -4692,-4692,-4692, 4844,-4692,-4692,-4692,-4692,-4692,-4692,
+    -4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,
+    -4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,
+    -4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,
+    -4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,-4692,
+
+    -4692,-4692,-4692,-4692,-4692
+    },
+
+    {
+       27,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,
+    -4693,-4693,-4693, 4845,-4693,-4693,-4693,-4693,-4693,-4693,
+    -4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,
+    -4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,
+    -4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,
+    -4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,-4693,
+    -4693,-4693,-4693,-4693,-4693
+    },
+
+    {
+       27,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,
+    -4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,
+
+    -4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,
+    -4694,-4694, 4846,-4694,-4694,-4694,-4694,-4694,-4694,-4694,
+    -4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,-4694,
+    -4694,-4694,-4694,-4694,-4694,-4694,-4694, 4846,-4694,-4694,
+    -4694,-4694,-4694,-4694,-4694
+    },
+
+    {
+       27,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,
+    -4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,
+    -4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,
+    -4695,-4695, 4847,-4695,-4695,-4695,-4695,-4695,-4695,-4695,
+    -4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,-4695,
+
+    -4695,-4695,-4695,-4695,-4695,-4695,-4695, 4847,-4695,-4695,
+    -4695,-4695,-4695,-4695,-4695
+    },
+
+    {
+       27,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,
+    -4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,
+    -4696,-4696,-4696,-4696,-4696,-4696,-4696, 4848,-4696,-4696,
+    -4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,
+    -4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,-4696,
+    -4696,-4696, 4848,-4696,-4696,-4696,-4696,-4696,-4696,-4696,
+    -4696,-4696,-4696,-4696,-4696
+    },
+
+    {
+       27,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,
+
+    -4697,-4697,-4697, 4849,-4697,-4697,-4697,-4697,-4697,-4697,
+    -4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,
+    -4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,
+    -4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,
+    -4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,-4697,
+    -4697,-4697,-4697,-4697,-4697
+    },
+
+    {
+       27,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,
+    -4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,
+    -4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,
+    -4698,-4698,-4698, 4850,-4698,-4698,-4698,-4698,-4698,-4698,
+
+    -4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698,
+    -4698,-4698,-4698,-4698,-4698,-4698,-4698,-4698, 4850,-4698,
+    -4698,-4698,-4698,-4698,-4698
+    },
+
+    {
+       27, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851,-4699, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851
+
+    },
+
+    {
+       27,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,
+    -4700,-4700,-4700, 4852,-4700,-4700,-4700,-4700,-4700,-4700,
+    -4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,
+    -4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,
+    -4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,
+    -4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,-4700,
+    -4700,-4700,-4700,-4700,-4700
+    },
+
+    {
+       27,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,
+    -4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,
+    -4701,-4701,-4701,-4701,-4701,-4701,-4701, 4853,-4701,-4701,
+
+    -4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,
+    -4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,-4701,
+    -4701,-4701, 4853,-4701,-4701,-4701,-4701,-4701,-4701,-4701,
+    -4701,-4701,-4701,-4701,-4701
+    },
+
+    {
+       27,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,
+    -4702,-4702,-4702, 4854,-4702,-4702,-4702,-4702,-4702,-4702,
+    -4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,
+    -4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,
+    -4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,
+    -4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,-4702,
+
+    -4702,-4702,-4702,-4702,-4702
+    },
+
+    {
+       27,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,
+    -4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,
+    -4703,-4703,-4703,-4703,-4703,-4703,-4703, 4855,-4703,-4703,
+    -4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,
+    -4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,-4703,
+    -4703,-4703, 4855,-4703,-4703,-4703,-4703,-4703,-4703,-4703,
+    -4703,-4703,-4703,-4703,-4703
+    },
+
+    {
+       27,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,
+    -4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,
+
+    -4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,
+    -4704, 4856,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,
+    -4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,-4704,
+    -4704,-4704,-4704,-4704,-4704,-4704, 4856,-4704,-4704,-4704,
+    -4704,-4704,-4704,-4704,-4704
+    },
+
+    {
+       27,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705, 3845,
+    -4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,
+    -4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,
+    -4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,
+    -4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,
+
+    -4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,-4705,
+    -4705,-4705,-4705,-4705,-4705
+    },
+
+    {
+       27,-4706, 4857, 4857,-4706,-4706,-4706,-4706,-4706,-4706,
+    -4706,-4706, 4858,-4706,-4706,-4706,-4706,-4706,-4706,-4706,
+    -4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,
+    -4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,
+    -4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,
+    -4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,-4706,
+    -4706,-4706,-4706,-4706,-4706
+    },
+
+    {
+       27,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,
+
+    -4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,
+    -4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,
+    -4707,-4707,-4707, 4859,-4707,-4707,-4707,-4707,-4707,-4707,
+    -4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707,
+    -4707,-4707,-4707,-4707,-4707,-4707,-4707,-4707, 4859,-4707,
+    -4707,-4707,-4707,-4707,-4707
+    },
+
+    {
+       27,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,
+    -4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,
+    -4708,-4708,-4708,-4708,-4708,-4708,-4708, 4860,-4708,-4708,
+    -4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,
+
+    -4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,-4708,
+    -4708,-4708, 4860,-4708,-4708,-4708,-4708,-4708,-4708,-4708,
+    -4708,-4708,-4708,-4708,-4708
+    },
+
+    {
+       27,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,
+    -4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,
+    -4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,
+    -4709,-4709,-4709, 4861,-4709,-4709,-4709,-4709,-4709,-4709,
+    -4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709,
+    -4709,-4709,-4709,-4709,-4709,-4709,-4709,-4709, 4861,-4709,
+    -4709,-4709,-4709,-4709,-4709
+
+    },
+
+    {
+       27,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,
+    -4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,
+    -4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,
+    -4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,
+    -4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,
+    -4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,-4710,
+    -4710,-4710,-4710,-4710,-4710
+    },
+
+    {
+       27,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,
+    -4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,
+    -4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,
+
+    -4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,
+    -4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,
+    -4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,-4711,
+    -4711,-4711,-4711,-4711,-4711
+    },
+
+    {
+       27,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,
+    -4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,
+    -4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,
+    -4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,
+    -4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,
+    -4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,-4712,
+
+    -4712,-4712,-4712,-4712,-4712
+    },
+
+    {
+       27,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,
+    -4713,-4713,-4713, 4862,-4713,-4713,-4713,-4713,-4713,-4713,
+    -4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,
+    -4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,
+    -4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,
+    -4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,-4713,
+    -4713,-4713,-4713,-4713,-4713
+    },
+
+    {
+       27,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,
+    -4714,-4714,-4714, 4863,-4714,-4714,-4714,-4714,-4714,-4714,
+
+    -4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,
+    -4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,
+    -4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,
+    -4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,-4714,
+    -4714,-4714,-4714,-4714,-4714
+    },
+
+    {
+       27,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,
+    -4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,
+    -4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,
+    -4715,-4715, 4864,-4715,-4715,-4715,-4715,-4715,-4715,-4715,
+    -4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,-4715,
+
+    -4715,-4715,-4715,-4715,-4715,-4715,-4715, 4864,-4715,-4715,
+    -4715,-4715,-4715,-4715,-4715
+    },
+
+    {
+       27,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,
+    -4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,
+    -4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,
+    -4716,-4716, 4865,-4716,-4716,-4716,-4716,-4716,-4716,-4716,
+    -4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,-4716,
+    -4716,-4716,-4716,-4716,-4716,-4716,-4716, 4865,-4716,-4716,
+    -4716,-4716,-4716,-4716,-4716
+    },
+
+    {
+       27,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,
+
+    -4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,
+    -4717,-4717,-4717,-4717,-4717,-4717,-4717, 4866,-4717,-4717,
+    -4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,
+    -4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,-4717,
+    -4717,-4717, 4866,-4717,-4717,-4717,-4717,-4717,-4717,-4717,
+    -4717,-4717,-4717,-4717,-4717
+    },
+
+    {
+       27,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,
+    -4718,-4718,-4718, 4867,-4718,-4718,-4718,-4718,-4718,-4718,
+    -4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,
+    -4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,
+
+    -4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,
+    -4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,-4718,
+    -4718,-4718,-4718,-4718,-4718
+    },
+
+    {
+       27,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,
+    -4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,
+    -4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,
+    -4719,-4719,-4719, 4868,-4719,-4719,-4719,-4719,-4719,-4719,
+    -4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719,
+    -4719,-4719,-4719,-4719,-4719,-4719,-4719,-4719, 4868,-4719,
+    -4719,-4719,-4719,-4719,-4719
+
+    },
+
+    {
+       27, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869,-4720, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869
+    },
+
+    {
+       27,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,
+    -4721,-4721,-4721, 4870,-4721,-4721,-4721,-4721,-4721,-4721,
+    -4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,
+
+    -4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,
+    -4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,
+    -4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,-4721,
+    -4721,-4721,-4721,-4721,-4721
+    },
+
+    {
+       27,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,
+    -4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,
+    -4722,-4722,-4722,-4722,-4722,-4722,-4722, 4871,-4722,-4722,
+    -4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,
+    -4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,-4722,
+    -4722,-4722, 4871,-4722,-4722,-4722,-4722,-4722,-4722,-4722,
+
+    -4722,-4722,-4722,-4722,-4722
+    },
+
+    {
+       27,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,
+    -4723,-4723,-4723, 4872,-4723,-4723,-4723,-4723,-4723,-4723,
+    -4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,
+    -4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,
+    -4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,
+    -4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,-4723,
+    -4723,-4723,-4723,-4723,-4723
+    },
+
+    {
+       27,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,
+    -4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,
+
+    -4724,-4724,-4724,-4724,-4724,-4724,-4724, 4873,-4724,-4724,
+    -4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,
+    -4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,-4724,
+    -4724,-4724, 4873,-4724,-4724,-4724,-4724,-4724,-4724,-4724,
+    -4724,-4724,-4724,-4724,-4724
+    },
+
+    {
+       27,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,
+    -4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,
+    -4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,
+    -4725, 4874,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,
+    -4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,-4725,
+
+    -4725,-4725,-4725,-4725,-4725,-4725, 4874,-4725,-4725,-4725,
+    -4725,-4725,-4725,-4725,-4725
+    },
+
+    {
+       27,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726, 3879,
+    -4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,
+    -4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,
+    -4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,
+    -4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,
+    -4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,-4726,
+    -4726,-4726,-4726,-4726,-4726
+    },
+
+    {
+       27,-4727, 4875, 4875,-4727,-4727,-4727,-4727,-4727,-4727,
+
+    -4727,-4727, 4876,-4727,-4727,-4727,-4727,-4727,-4727,-4727,
+    -4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,
+    -4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,
+    -4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,
+    -4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,-4727,
+    -4727,-4727,-4727,-4727,-4727
+    },
+
+    {
+       27,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,
+    -4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,
+    -4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,
+    -4728,-4728,-4728, 4877,-4728,-4728,-4728,-4728,-4728,-4728,
+
+    -4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728,
+    -4728,-4728,-4728,-4728,-4728,-4728,-4728,-4728, 4877,-4728,
+    -4728,-4728,-4728,-4728,-4728
+    },
+
+    {
+       27,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,
+    -4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,
+    -4729,-4729,-4729,-4729,-4729,-4729,-4729, 4878,-4729,-4729,
+    -4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,
+    -4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,-4729,
+    -4729,-4729, 4878,-4729,-4729,-4729,-4729,-4729,-4729,-4729,
+    -4729,-4729,-4729,-4729,-4729
+
+    },
+
+    {
+       27,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,
+    -4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,
+    -4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,
+    -4730,-4730,-4730, 4879,-4730,-4730,-4730,-4730,-4730,-4730,
+    -4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730,
+    -4730,-4730,-4730,-4730,-4730,-4730,-4730,-4730, 4879,-4730,
+    -4730,-4730,-4730,-4730,-4730
+    },
+
+    {
+       27,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,
+    -4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,
+    -4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,
+
+    -4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,
+    -4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,
+    -4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,-4731,
+    -4731,-4731,-4731,-4731,-4731
+    },
+
+    {
+       27,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,
+    -4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,
+    -4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,
+    -4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,
+    -4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,
+    -4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,-4732,
+
+    -4732,-4732,-4732,-4732,-4732
+    },
+
+    {
+       27,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,
+    -4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,
+    -4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,
+    -4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,
+    -4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,
+    -4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,-4733,
+    -4733,-4733,-4733,-4733,-4733
+    },
+
+    {
+       27,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,
+    -4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,
+
+    -4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,
+    -4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,
+    -4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,
+    -4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,-4734,
+    -4734,-4734,-4734,-4734,-4734
+    },
+
+    {
+       27,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,
+    -4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,
+    -4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,
+    -4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,
+    -4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,
+
+    -4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,-4735,
+    -4735,-4735,-4735,-4735,-4735
+    },
+
+    {
+       27,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,
+    -4736,-4736,-4736, 4880,-4736,-4736,-4736,-4736,-4736,-4736,
+    -4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,
+    -4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,
+    -4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,
+    -4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,-4736,
+    -4736,-4736,-4736,-4736,-4736
+    },
+
+    {
+       27,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,
+
+    -4737,-4737,-4737, 4881,-4737,-4737,-4737,-4737,-4737,-4737,
+    -4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,
+    -4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,
+    -4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,
+    -4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,-4737,
+    -4737,-4737,-4737,-4737,-4737
+    },
+
+    {
+       27,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,
+    -4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,
+    -4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,
+    -4738,-4738,-4738, 4882,-4738,-4738,-4738,-4738,-4738,-4738,
+
+    -4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738,
+    -4738,-4738,-4738,-4738,-4738,-4738,-4738,-4738, 4882,-4738,
+    -4738,-4738,-4738,-4738,-4738
+    },
+
+    {
+       27,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,
+    -4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,
+    -4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,
+    -4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,
+    -4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,
+    -4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,-4739,
+    -4739,-4739,-4739,-4739,-4739
+
+    },
+
+    {
+       27,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,
+    -4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,
+    -4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,
+    -4740,-4740, 4883,-4740,-4740,-4740,-4740,-4740,-4740,-4740,
+    -4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,-4740,
+    -4740,-4740,-4740,-4740,-4740,-4740,-4740, 4883,-4740,-4740,
+    -4740,-4740,-4740,-4740,-4740
+    },
+
+    {
+       27, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4884, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
+     4741, 4741, 4741, 4741, 4741
+    },
+
+    {
+       27,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,
+    -4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,
+    -4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,
+    -4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,
+    -4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,
+    -4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,-4742,
+
+    -4742,-4742,-4742,-4742,-4742
+    },
+
+    {
+       27,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,
+    -4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,
+    -4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,
+    -4743,-4743,-4743, 4885,-4743,-4743,-4743,-4743,-4743,-4743,
+    -4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743,
+    -4743,-4743,-4743,-4743,-4743,-4743,-4743,-4743, 4885,-4743,
+    -4743,-4743,-4743,-4743,-4743
+    },
+
+    {
+       27,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,
+    -4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,
+
+    -4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,
+    -4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,
+    -4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,
+    -4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,-4744,
+    -4744,-4744,-4744,-4744,-4744
+    },
+
+    {
+       27,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,
+    -4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,
+    -4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,
+    -4745,-4745,-4745, 4886,-4745,-4745,-4745,-4745,-4745,-4745,
+    -4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745,
+
+    -4745,-4745,-4745,-4745,-4745,-4745,-4745,-4745, 4886,-4745,
+    -4745,-4745,-4745,-4745,-4745
+    },
+
+    {
+       27,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,
+    -4746,-4746,-4746,-4746, 4887,-4746,-4746,-4746,-4746,-4746,
+    -4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,
+    -4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,
+     4887,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,
+    -4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,-4746,
+    -4746,-4746,-4746,-4746,-4746
+    },
+
+    {
+       27,-4747, 4747, 4747,-4747,-4747,-4747,-4747,-4747,-4747,
+
+    -4747,-4747, 4748,-4747,-4747,-4747,-4747,-4747,-4747,-4747,
+    -4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,
+    -4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,
+    -4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,
+    -4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,-4747,
+    -4747,-4747,-4747,-4747,-4747
+    },
+
+    {
+       27,-4748,-4748,-4748,-4748,-4748,-4748,-4748,-4748,-4748,
+    -4748,-4748,-4748,-4748,-4748,-4748, 4888,-4748,-4748,-4748,
+    -4748,-4748,-4748,-4748,-4748,-4748,-4748,-4748,-4748, 4889,
+    -4748,-4748,-4748,-4748,-4748,-4748,-4748,-4748,-4748,-4748,
+
+    -4748,-4748, 4888,-4748,-4748,-4748,-4748,-4748,-4748,-4748,
+    -4748,-4748,-4748,-4748, 4889,-4748,-4748,-4748,-4748,-4748,
+    -4748,-4748,-4748,-4748,-4748
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 4890,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     4890,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 4891,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 4892,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184, 4893,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 4893,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 4894,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 4894,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,
+    -4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,
+    -4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,
+    -4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,
+    -4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,
+    -4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,-4753,
+    -4753,-4753,-4753,-4753,-4753
+    },
+
+    {
+       27,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,
+    -4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,
+
+    -4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,
+    -4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,
+    -4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,
+    -4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,-4754,
+    -4754,-4754,-4754,-4754,-4754
+    },
+
+    {
+       27,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,
+    -4755,-4755,-4755, 4895,-4755,-4755,-4755,-4755,-4755,-4755,
+    -4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,
+    -4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,
+    -4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,
+
+    -4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,-4755,
+    -4755,-4755,-4755,-4755,-4755
+    },
+
+    {
+       27,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,
+    -4756,-4756,-4756, 4896,-4756,-4756,-4756,-4756,-4756,-4756,
+    -4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,
+    -4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,
+    -4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,
+    -4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,-4756,
+    -4756,-4756,-4756,-4756,-4756
+    },
+
+    {
+       27,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,
+
+    -4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,
+    -4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,
+    -4757,-4757,-4757, 4897,-4757,-4757,-4757,-4757,-4757,-4757,
+    -4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757,
+    -4757,-4757,-4757,-4757,-4757,-4757,-4757,-4757, 4897,-4757,
+    -4757,-4757,-4757,-4757,-4757
+    },
+
+    {
+       27,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,
+    -4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,
+    -4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,
+    -4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,
+
+    -4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,
+    -4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,-4758,
+    -4758,-4758,-4758,-4758,-4758
+    },
+
+    {
+       27,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,
+    -4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,
+    -4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,
+    -4759,-4759, 4898,-4759,-4759,-4759,-4759,-4759,-4759,-4759,
+    -4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,-4759,
+    -4759,-4759,-4759,-4759,-4759,-4759,-4759, 4898,-4759,-4759,
+    -4759,-4759,-4759,-4759,-4759
+
+    },
+
+    {
+       27, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4899, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+     4760, 4760, 4760, 4760, 4760
+    },
+
+    {
+       27,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,
+    -4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,
+    -4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,
+
+    -4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,
+    -4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,
+    -4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,-4761,
+    -4761,-4761,-4761,-4761,-4761
+    },
+
+    {
+       27,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,
+    -4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,
+    -4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,
+    -4762,-4762,-4762, 4900,-4762,-4762,-4762,-4762,-4762,-4762,
+    -4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762,
+    -4762,-4762,-4762,-4762,-4762,-4762,-4762,-4762, 4900,-4762,
+
+    -4762,-4762,-4762,-4762,-4762
+    },
+
+    {
+       27,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,
+    -4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,
+    -4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,
+    -4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,
+    -4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,
+    -4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,-4763,
+    -4763,-4763,-4763,-4763,-4763
+    },
+
+    {
+       27,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,
+    -4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,
+
+    -4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,
+    -4764,-4764,-4764, 4901,-4764,-4764,-4764,-4764,-4764,-4764,
+    -4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764,
+    -4764,-4764,-4764,-4764,-4764,-4764,-4764,-4764, 4901,-4764,
+    -4764,-4764,-4764,-4764,-4764
+    },
+
+    {
+       27,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,
+    -4765,-4765,-4765,-4765, 4902,-4765,-4765,-4765,-4765,-4765,
+    -4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,
+    -4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,
+     4902,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,
+
+    -4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,-4765,
+    -4765,-4765,-4765,-4765,-4765
+    },
+
+    {
+       27,-4766, 4766, 4766,-4766,-4766,-4766,-4766,-4766,-4766,
+    -4766,-4766, 4767,-4766,-4766,-4766,-4766,-4766,-4766,-4766,
+    -4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,
+    -4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,
+    -4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,
+    -4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,-4766,
+    -4766,-4766,-4766,-4766,-4766
+    },
+
+    {
+       27,-4767,-4767,-4767,-4767,-4767,-4767,-4767,-4767,-4767,
+
+    -4767,-4767,-4767,-4767,-4767,-4767, 4903,-4767,-4767,-4767,
+    -4767,-4767,-4767,-4767,-4767,-4767,-4767,-4767,-4767, 4904,
+    -4767,-4767,-4767,-4767,-4767,-4767,-4767,-4767,-4767,-4767,
+    -4767,-4767, 4903,-4767,-4767,-4767,-4767,-4767,-4767,-4767,
+    -4767,-4767,-4767,-4767, 4904,-4767,-4767,-4767,-4767,-4767,
+    -4767,-4767,-4767,-4767,-4767
+    },
+
+    {
+       27,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,
+    -4768,-4768,-4768,-4768, 4905,-4768,-4768,-4768,-4768,-4768,
+    -4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,
+    -4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,
+
+     4905,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,
+    -4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,-4768,
+    -4768,-4768,-4768,-4768,-4768
+    },
+
+    {
+       27,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769, 4906,
+    -4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,
+    -4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,
+    -4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769, 4907,
+    -4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,
+    -4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,-4769,
+    -4769,-4769,-4769,-4769,-4769
+
+    },
+
+    {
+       27,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,
+    -4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,
+    -4770,-4770, 4908,-4770,-4770,-4770,-4770,-4770,-4770,-4770,
+    -4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,
+    -4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770, 4908,-4770,
+    -4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,-4770,
+    -4770,-4770,-4770,-4770,-4770
+    },
+
+    {
+       27,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,
+    -4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,
+    -4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,
+
+    -4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,
+    -4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,
+    -4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,-4771,
+    -4771,-4771,-4771,-4771,-4771
+    },
+
+    {
+       27,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,
+    -4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,
+    -4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,
+    -4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,
+    -4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,
+    -4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,-4772,
+
+    -4772,-4772,-4772,-4772,-4772
+    },
+
+    {
+       27,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,
+    -4773,-4773,-4773, 4909,-4773,-4773,-4773,-4773,-4773,-4773,
+    -4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,
+    -4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,
+    -4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,
+    -4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,-4773,
+    -4773,-4773,-4773,-4773,-4773
+    },
+
+    {
+       27,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,
+    -4774,-4774,-4774, 4910,-4774,-4774,-4774,-4774,-4774,-4774,
+
+    -4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,
+    -4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,
+    -4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,
+    -4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,-4774,
+    -4774,-4774,-4774,-4774,-4774
+    },
+
+    {
+       27,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,
+    -4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,
+    -4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,
+    -4775,-4775,-4775, 4911,-4775,-4775,-4775,-4775,-4775,-4775,
+    -4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775,
+
+    -4775,-4775,-4775,-4775,-4775,-4775,-4775,-4775, 4911,-4775,
+    -4775,-4775,-4775,-4775,-4775
+    },
+
+    {
+       27,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,
+    -4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,
+    -4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,
+    -4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,
+    -4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,
+    -4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,-4776,
+    -4776,-4776,-4776,-4776,-4776
+    },
+
+    {
+       27,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,
+
+    -4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,
+    -4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,
+    -4777,-4777, 4912,-4777,-4777,-4777,-4777,-4777,-4777,-4777,
+    -4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,-4777,
+    -4777,-4777,-4777,-4777,-4777,-4777,-4777, 4912,-4777,-4777,
+    -4777,-4777,-4777,-4777,-4777
+    },
+
+    {
+       27, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4913, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
+     4778, 4778, 4778, 4778, 4778
+    },
+
+    {
+       27,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,
+    -4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,
+    -4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,
+    -4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,
+    -4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,
+    -4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,-4779,
+    -4779,-4779,-4779,-4779,-4779
+
+    },
+
+    {
+       27,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,
+    -4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,
+    -4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,
+    -4780,-4780,-4780, 4914,-4780,-4780,-4780,-4780,-4780,-4780,
+    -4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780,
+    -4780,-4780,-4780,-4780,-4780,-4780,-4780,-4780, 4914,-4780,
+    -4780,-4780,-4780,-4780,-4780
+    },
+
+    {
+       27,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,
+    -4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,
+    -4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,
+
+    -4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,
+    -4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,
+    -4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,-4781,
+    -4781,-4781,-4781,-4781,-4781
+    },
+
+    {
+       27,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,
+    -4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,
+    -4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,
+    -4782,-4782,-4782, 4915,-4782,-4782,-4782,-4782,-4782,-4782,
+    -4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782,
+    -4782,-4782,-4782,-4782,-4782,-4782,-4782,-4782, 4915,-4782,
+
+    -4782,-4782,-4782,-4782,-4782
+    },
+
+    {
+       27,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,
+    -4783,-4783,-4783,-4783, 4916,-4783,-4783,-4783,-4783,-4783,
+    -4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,
+    -4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,
+     4916,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,
+    -4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,-4783,
+    -4783,-4783,-4783,-4783,-4783
+    },
+
+    {
+       27,-4784, 4784, 4784,-4784,-4784,-4784,-4784,-4784,-4784,
+    -4784,-4784, 4785,-4784,-4784,-4784,-4784,-4784,-4784,-4784,
+
+    -4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,
+    -4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,
+    -4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,
+    -4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,-4784,
+    -4784,-4784,-4784,-4784,-4784
+    },
+
+    {
+       27,-4785,-4785,-4785,-4785,-4785,-4785,-4785,-4785,-4785,
+    -4785,-4785,-4785,-4785,-4785,-4785, 4917,-4785,-4785,-4785,
+    -4785,-4785,-4785,-4785,-4785,-4785,-4785,-4785,-4785, 4918,
+    -4785,-4785,-4785,-4785,-4785,-4785,-4785,-4785,-4785,-4785,
+    -4785,-4785, 4917,-4785,-4785,-4785,-4785,-4785,-4785,-4785,
+
+    -4785,-4785,-4785,-4785, 4918,-4785,-4785,-4785,-4785,-4785,
+    -4785,-4785,-4785,-4785,-4785
+    },
+
+    {
+       27,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,
+    -4786,-4786,-4786,-4786, 4919,-4786,-4786,-4786,-4786,-4786,
+    -4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,
+    -4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,
+     4919,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,
+    -4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,-4786,
+    -4786,-4786,-4786,-4786,-4786
+    },
+
+    {
+       27,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787, 4920,
+
+    -4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,
+    -4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,
+    -4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787, 4921,
+    -4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,
+    -4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,-4787,
+    -4787,-4787,-4787,-4787,-4787
+    },
+
+    {
+       27,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,
+    -4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,
+    -4788,-4788, 4922,-4788,-4788,-4788,-4788,-4788,-4788,-4788,
+    -4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,
+
+    -4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788, 4922,-4788,
+    -4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,-4788,
+    -4788,-4788,-4788,-4788,-4788
+    },
+
+    {
+       27,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,
+    -4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,
+    -4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,
+    -4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,
+    -4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,
+    -4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,-4789,
+    -4789,-4789,-4789,-4789,-4789
+
+    },
+
+    {
+       27,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,
+    -4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,
+    -4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,
+    -4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,
+    -4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,
+    -4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,-4790,
+    -4790,-4790,-4790,-4790,-4790
+    },
+
+    {
+       27,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,
+    -4791,-4791,-4791, 4923,-4791,-4791,-4791,-4791,-4791,-4791,
+    -4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,
+
+    -4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,
+    -4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,
+    -4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,-4791,
+    -4791,-4791,-4791,-4791,-4791
+    },
+
+    {
+       27,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,
+    -4792,-4792,-4792, 4924,-4792,-4792,-4792,-4792,-4792,-4792,
+    -4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,
+    -4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,
+    -4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,
+    -4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,-4792,
+
+    -4792,-4792,-4792,-4792,-4792
+    },
+
+    {
+       27,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,
+    -4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,
+    -4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,
+    -4793,-4793,-4793, 4925,-4793,-4793,-4793,-4793,-4793,-4793,
+    -4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793,
+    -4793,-4793,-4793,-4793,-4793,-4793,-4793,-4793, 4925,-4793,
+    -4793,-4793,-4793,-4793,-4793
+    },
+
+    {
+       27,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,
+    -4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,
+
+    -4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,
+    -4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,
+    -4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,
+    -4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,-4794,
+    -4794,-4794,-4794,-4794,-4794
+    },
+
+    {
+       27,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,
+    -4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,
+    -4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,
+    -4795,-4795, 4926,-4795,-4795,-4795,-4795,-4795,-4795,-4795,
+    -4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,-4795,
+
+    -4795,-4795,-4795,-4795,-4795,-4795,-4795, 4926,-4795,-4795,
+    -4795,-4795,-4795,-4795,-4795
+    },
+
+    {
+       27, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4927, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
+     4796, 4796, 4796, 4796, 4796
+    },
+
+    {
+       27,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,
+
+    -4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,
+    -4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,
+    -4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,
+    -4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,
+    -4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,-4797,
+    -4797,-4797,-4797,-4797,-4797
+    },
+
+    {
+       27,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,
+    -4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,
+    -4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,
+    -4798,-4798,-4798, 4928,-4798,-4798,-4798,-4798,-4798,-4798,
+
+    -4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798,
+    -4798,-4798,-4798,-4798,-4798,-4798,-4798,-4798, 4928,-4798,
+    -4798,-4798,-4798,-4798,-4798
+    },
+
+    {
+       27,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,
+    -4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,
+    -4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,
+    -4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,
+    -4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,
+    -4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,-4799,
+    -4799,-4799,-4799,-4799,-4799
+
+    },
+
+    {
+       27,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,
+    -4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,
+    -4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,
+    -4800,-4800,-4800, 4929,-4800,-4800,-4800,-4800,-4800,-4800,
+    -4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800,
+    -4800,-4800,-4800,-4800,-4800,-4800,-4800,-4800, 4929,-4800,
+    -4800,-4800,-4800,-4800,-4800
+    },
+
+    {
+       27,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,
+    -4801,-4801,-4801,-4801, 4930,-4801,-4801,-4801,-4801,-4801,
+    -4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,
+
+    -4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,
+     4930,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,
+    -4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,-4801,
+    -4801,-4801,-4801,-4801,-4801
+    },
+
+    {
+       27,-4802, 4802, 4802,-4802,-4802,-4802,-4802,-4802,-4802,
+    -4802,-4802, 4803,-4802,-4802,-4802,-4802,-4802,-4802,-4802,
+    -4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,
+    -4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,
+    -4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,
+    -4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,-4802,
+
+    -4802,-4802,-4802,-4802,-4802
+    },
+
+    {
+       27,-4803,-4803,-4803,-4803,-4803,-4803,-4803,-4803,-4803,
+    -4803,-4803,-4803,-4803,-4803,-4803, 4931,-4803,-4803,-4803,
+    -4803,-4803,-4803,-4803,-4803,-4803,-4803,-4803,-4803, 4932,
+    -4803,-4803,-4803,-4803,-4803,-4803,-4803,-4803,-4803,-4803,
+    -4803,-4803, 4931,-4803,-4803,-4803,-4803,-4803,-4803,-4803,
+    -4803,-4803,-4803,-4803, 4932,-4803,-4803,-4803,-4803,-4803,
+    -4803,-4803,-4803,-4803,-4803
+    },
+
+    {
+       27,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,
+    -4804,-4804,-4804,-4804, 4933,-4804,-4804,-4804,-4804,-4804,
+
+    -4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,
+    -4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,
+     4933,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,
+    -4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,-4804,
+    -4804,-4804,-4804,-4804,-4804
+    },
+
+    {
+       27,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805, 4934,
+    -4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,
+    -4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,
+    -4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805, 4935,
+    -4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,
+
+    -4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,-4805,
+    -4805,-4805,-4805,-4805,-4805
+    },
+
+    {
+       27,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,
+    -4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,
+    -4806,-4806, 4936,-4806,-4806,-4806,-4806,-4806,-4806,-4806,
+    -4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,
+    -4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806, 4936,-4806,
+    -4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,-4806,
+    -4806,-4806,-4806,-4806,-4806
+    },
+
+    {
+       27,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,
+
+    -4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,
+    -4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,
+    -4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,
+    -4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,
+    -4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,-4807,
+    -4807,-4807,-4807,-4807,-4807
+    },
+
+    {
+       27,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,
+    -4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,
+    -4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,
+    -4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,
+
+    -4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,
+    -4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,-4808,
+    -4808,-4808,-4808,-4808,-4808
+    },
+
+    {
+       27,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,
+    -4809,-4809,-4809, 4937,-4809,-4809,-4809,-4809,-4809,-4809,
+    -4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,
+    -4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,
+    -4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,
+    -4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,-4809,
+    -4809,-4809,-4809,-4809,-4809
+
+    },
+
+    {
+       27,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,
+    -4810,-4810,-4810, 4938,-4810,-4810,-4810,-4810,-4810,-4810,
+    -4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,
+    -4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,
+    -4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,
+    -4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,-4810,
+    -4810,-4810,-4810,-4810,-4810
+    },
+
+    {
+       27,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,
+    -4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,
+    -4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,
+
+    -4811,-4811,-4811, 4939,-4811,-4811,-4811,-4811,-4811,-4811,
+    -4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811,
+    -4811,-4811,-4811,-4811,-4811,-4811,-4811,-4811, 4939,-4811,
+    -4811,-4811,-4811,-4811,-4811
+    },
+
+    {
+       27,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,
+    -4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,
+    -4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,
+    -4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,
+    -4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,
+    -4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,-4812,
+
+    -4812,-4812,-4812,-4812,-4812
+    },
+
+    {
+       27,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,
+    -4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,
+    -4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,
+    -4813,-4813, 4940,-4813,-4813,-4813,-4813,-4813,-4813,-4813,
+    -4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,-4813,
+    -4813,-4813,-4813,-4813,-4813,-4813,-4813, 4940,-4813,-4813,
+    -4813,-4813,-4813,-4813,-4813
+    },
+
+    {
+       27, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4941, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
+     4814, 4814, 4814, 4814, 4814
+    },
+
+    {
+       27,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,
+    -4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,
+    -4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,
+    -4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,
+    -4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,
+
+    -4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,-4815,
+    -4815,-4815,-4815,-4815,-4815
+    },
+
+    {
+       27,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,
+    -4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,
+    -4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,
+    -4816,-4816,-4816, 4942,-4816,-4816,-4816,-4816,-4816,-4816,
+    -4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816,
+    -4816,-4816,-4816,-4816,-4816,-4816,-4816,-4816, 4942,-4816,
+    -4816,-4816,-4816,-4816,-4816
+    },
+
+    {
+       27,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,
+
+    -4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,
+    -4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,
+    -4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,
+    -4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,
+    -4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,-4817,
+    -4817,-4817,-4817,-4817,-4817
+    },
+
+    {
+       27,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,
+    -4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,
+    -4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,
+    -4818,-4818,-4818, 4943,-4818,-4818,-4818,-4818,-4818,-4818,
+
+    -4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818,
+    -4818,-4818,-4818,-4818,-4818,-4818,-4818,-4818, 4943,-4818,
+    -4818,-4818,-4818,-4818,-4818
+    },
+
+    {
+       27,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,
+    -4819,-4819,-4819,-4819, 4944,-4819,-4819,-4819,-4819,-4819,
+    -4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,
+    -4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,
+     4944,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,
+    -4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,-4819,
+    -4819,-4819,-4819,-4819,-4819
+
+    },
+
+    {
+       27,-4820, 4820, 4820,-4820,-4820,-4820,-4820,-4820,-4820,
+    -4820,-4820, 4821,-4820,-4820,-4820,-4820,-4820,-4820,-4820,
+    -4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,
+    -4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,
+    -4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,
+    -4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,-4820,
+    -4820,-4820,-4820,-4820,-4820
+    },
+
+    {
+       27,-4821,-4821,-4821,-4821,-4821,-4821,-4821,-4821,-4821,
+    -4821,-4821,-4821,-4821,-4821,-4821, 4945,-4821,-4821,-4821,
+    -4821,-4821,-4821,-4821,-4821,-4821,-4821,-4821,-4821, 4946,
+
+    -4821,-4821,-4821,-4821,-4821,-4821,-4821,-4821,-4821,-4821,
+    -4821,-4821, 4945,-4821,-4821,-4821,-4821,-4821,-4821,-4821,
+    -4821,-4821,-4821,-4821, 4946,-4821,-4821,-4821,-4821,-4821,
+    -4821,-4821,-4821,-4821,-4821
+    },
+
+    {
+       27,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,
+    -4822,-4822,-4822,-4822, 4947,-4822,-4822,-4822,-4822,-4822,
+    -4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,
+    -4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,
+     4947,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,
+    -4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,-4822,
+
+    -4822,-4822,-4822,-4822,-4822
+    },
+
+    {
+       27,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823, 4948,
+    -4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,
+    -4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,
+    -4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823, 4949,
+    -4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,
+    -4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,-4823,
+    -4823,-4823,-4823,-4823,-4823
+    },
+
+    {
+       27,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,
+    -4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,
+
+    -4824,-4824, 4950,-4824,-4824,-4824,-4824,-4824,-4824,-4824,
+    -4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,
+    -4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824, 4950,-4824,
+    -4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,-4824,
+    -4824,-4824,-4824,-4824,-4824
+    },
+
+    {
+       27,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,
+    -4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,
+    -4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,
+    -4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,
+    -4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,
+
+    -4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,-4825,
+    -4825,-4825,-4825,-4825,-4825
+    },
+
+    {
+       27,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,
+    -4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,
+    -4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,
+    -4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,
+    -4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,
+    -4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,-4826,
+    -4826,-4826,-4826,-4826,-4826
+    },
+
+    {
+       27,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,
+
+    -4827,-4827,-4827, 4951,-4827,-4827,-4827,-4827,-4827,-4827,
+    -4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,
+    -4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,
+    -4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,
+    -4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,-4827,
+    -4827,-4827,-4827,-4827,-4827
+    },
+
+    {
+       27,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,
+    -4828,-4828,-4828, 4952,-4828,-4828,-4828,-4828,-4828,-4828,
+    -4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,
+    -4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,
+
+    -4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,
+    -4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,-4828,
+    -4828,-4828,-4828,-4828,-4828
+    },
+
+    {
+       27,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,
+    -4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,
+    -4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,
+    -4829,-4829,-4829, 4953,-4829,-4829,-4829,-4829,-4829,-4829,
+    -4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829,
+    -4829,-4829,-4829,-4829,-4829,-4829,-4829,-4829, 4953,-4829,
+    -4829,-4829,-4829,-4829,-4829
+
+    },
+
+    {
+       27,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,
+    -4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,
+    -4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,
+    -4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,
+    -4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,
+    -4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,-4830,
+    -4830,-4830,-4830,-4830,-4830
+    },
+
+    {
+       27,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,
+    -4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,
+    -4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,
+
+    -4831,-4831, 4954,-4831,-4831,-4831,-4831,-4831,-4831,-4831,
+    -4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,-4831,
+    -4831,-4831,-4831,-4831,-4831,-4831,-4831, 4954,-4831,-4831,
+    -4831,-4831,-4831,-4831,-4831
+    },
+
+    {
+       27, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4955, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+     4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+
+     4832, 4832, 4832, 4832, 4832
+    },
+
+    {
+       27,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,
+    -4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,
+    -4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,
+    -4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,
+    -4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,
+    -4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,-4833,
+    -4833,-4833,-4833,-4833,-4833
+    },
+
+    {
+       27,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,
+    -4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,
+
+    -4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,
+    -4834,-4834,-4834, 4956,-4834,-4834,-4834,-4834,-4834,-4834,
+    -4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834,
+    -4834,-4834,-4834,-4834,-4834,-4834,-4834,-4834, 4956,-4834,
+    -4834,-4834,-4834,-4834,-4834
+    },
+
+    {
+       27,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,
+    -4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,
+    -4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,
+    -4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,
+    -4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,
+
+    -4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,-4835,
+    -4835,-4835,-4835,-4835,-4835
+    },
+
+    {
+       27,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,
+    -4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,
+    -4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,
+    -4836,-4836,-4836, 4957,-4836,-4836,-4836,-4836,-4836,-4836,
+    -4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836,
+    -4836,-4836,-4836,-4836,-4836,-4836,-4836,-4836, 4957,-4836,
+    -4836,-4836,-4836,-4836,-4836
+    },
+
+    {
+       27,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,
+
+    -4837,-4837,-4837,-4837, 4958,-4837,-4837,-4837,-4837,-4837,
+    -4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,
+    -4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,
+     4958,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,
+    -4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,-4837,
+    -4837,-4837,-4837,-4837,-4837
+    },
+
+    {
+       27,-4838, 4838, 4838,-4838,-4838,-4838,-4838,-4838,-4838,
+    -4838,-4838, 4839,-4838,-4838,-4838,-4838,-4838,-4838,-4838,
+    -4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,
+    -4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,
+
+    -4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,
+    -4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,-4838,
+    -4838,-4838,-4838,-4838,-4838
+    },
+
+    {
+       27,-4839,-4839,-4839,-4839,-4839,-4839,-4839,-4839,-4839,
+    -4839,-4839,-4839,-4839,-4839,-4839, 4959,-4839,-4839,-4839,
+    -4839,-4839,-4839,-4839,-4839,-4839,-4839,-4839,-4839, 4960,
+    -4839,-4839,-4839,-4839,-4839,-4839,-4839,-4839,-4839,-4839,
+    -4839,-4839, 4959,-4839,-4839,-4839,-4839,-4839,-4839,-4839,
+    -4839,-4839,-4839,-4839, 4960,-4839,-4839,-4839,-4839,-4839,
+    -4839,-4839,-4839,-4839,-4839
+
+    },
+
+    {
+       27,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,
+    -4840,-4840,-4840,-4840, 4961,-4840,-4840,-4840,-4840,-4840,
+    -4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,
+    -4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,
+     4961,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,
+    -4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,-4840,
+    -4840,-4840,-4840,-4840,-4840
+    },
+
+    {
+       27,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841, 4962,
+    -4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,
+    -4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,
+
+    -4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841, 4963,
+    -4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,
+    -4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,-4841,
+    -4841,-4841,-4841,-4841,-4841
+    },
+
+    {
+       27,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,
+    -4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,
+    -4842,-4842, 4964,-4842,-4842,-4842,-4842,-4842,-4842,-4842,
+    -4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,
+    -4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842, 4964,-4842,
+    -4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,-4842,
+
+    -4842,-4842,-4842,-4842,-4842
+    },
+
+    {
+       27,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,
+    -4843,-4843,-4843,-4843, 4965,-4843,-4843,-4843,-4843,-4843,
+    -4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,
+    -4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,
+     4965,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,
+    -4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,-4843,
+    -4843,-4843,-4843,-4843,-4843
+    },
+
+    {
+       27,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,
+    -4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,
+
+    -4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,
+    -4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,
+    -4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,
+    -4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,-4844,
+    -4844,-4844,-4844,-4844,-4844
+    },
+
+    {
+       27,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,
+    -4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,
+    -4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,
+    -4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,
+    -4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,
+
+    -4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,-4845,
+    -4845,-4845,-4845,-4845,-4845
+    },
+
+    {
+       27,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,
+    -4846,-4846,-4846, 4966,-4846,-4846,-4846,-4846,-4846,-4846,
+    -4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,
+    -4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,
+    -4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,
+    -4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,-4846,
+    -4846,-4846,-4846,-4846,-4846
+    },
+
+    {
+       27,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,
+
+    -4847,-4847,-4847, 4967,-4847,-4847,-4847,-4847,-4847,-4847,
+    -4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,
+    -4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,
+    -4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,
+    -4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,-4847,
+    -4847,-4847,-4847,-4847,-4847
+    },
+
+    {
+       27,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,
+    -4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,
+    -4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,
+    -4848,-4848,-4848, 4968,-4848,-4848,-4848,-4848,-4848,-4848,
+
+    -4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848,
+    -4848,-4848,-4848,-4848,-4848,-4848,-4848,-4848, 4968,-4848,
+    -4848,-4848,-4848,-4848,-4848
+    },
+
+    {
+       27,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,
+    -4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,
+    -4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,
+    -4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,
+    -4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,
+    -4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,-4849,
+    -4849,-4849,-4849,-4849,-4849
+
+    },
+
+    {
+       27,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,
+    -4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,
+    -4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,
+    -4850,-4850, 4969,-4850,-4850,-4850,-4850,-4850,-4850,-4850,
+    -4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,-4850,
+    -4850,-4850,-4850,-4850,-4850,-4850,-4850, 4969,-4850,-4850,
+    -4850,-4850,-4850,-4850,-4850
+    },
+
+    {
+       27, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4970, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+     4851, 4851, 4851, 4851, 4851
+    },
+
+    {
+       27,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,
+    -4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,
+    -4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,
+    -4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,
+    -4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,
+    -4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,-4852,
+
+    -4852,-4852,-4852,-4852,-4852
+    },
+
+    {
+       27,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,
+    -4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,
+    -4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,
+    -4853,-4853,-4853, 4971,-4853,-4853,-4853,-4853,-4853,-4853,
+    -4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853,
+    -4853,-4853,-4853,-4853,-4853,-4853,-4853,-4853, 4971,-4853,
+    -4853,-4853,-4853,-4853,-4853
+    },
+
+    {
+       27,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,
+    -4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,
+
+    -4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,
+    -4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,
+    -4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,
+    -4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,-4854,
+    -4854,-4854,-4854,-4854,-4854
+    },
+
+    {
+       27,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,
+    -4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,
+    -4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,
+    -4855,-4855,-4855, 4972,-4855,-4855,-4855,-4855,-4855,-4855,
+    -4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855,
+
+    -4855,-4855,-4855,-4855,-4855,-4855,-4855,-4855, 4972,-4855,
+    -4855,-4855,-4855,-4855,-4855
+    },
+
+    {
+       27,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,
+    -4856,-4856,-4856,-4856, 4973,-4856,-4856,-4856,-4856,-4856,
+    -4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,
+    -4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,
+     4973,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,
+    -4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,-4856,
+    -4856,-4856,-4856,-4856,-4856
+    },
+
+    {
+       27,-4857, 4857, 4857,-4857,-4857,-4857,-4857,-4857,-4857,
+
+    -4857,-4857, 4858,-4857,-4857,-4857,-4857,-4857,-4857,-4857,
+    -4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,
+    -4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,
+    -4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,
+    -4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,-4857,
+    -4857,-4857,-4857,-4857,-4857
+    },
+
+    {
+       27,-4858,-4858,-4858,-4858,-4858,-4858,-4858,-4858,-4858,
+    -4858,-4858,-4858,-4858,-4858,-4858, 4974,-4858,-4858,-4858,
+    -4858,-4858,-4858,-4858,-4858,-4858,-4858,-4858,-4858, 4975,
+    -4858,-4858,-4858,-4858,-4858,-4858,-4858,-4858,-4858,-4858,
+
+    -4858,-4858, 4974,-4858,-4858,-4858,-4858,-4858,-4858,-4858,
+    -4858,-4858,-4858,-4858, 4975,-4858,-4858,-4858,-4858,-4858,
+    -4858,-4858,-4858,-4858,-4858
+    },
+
+    {
+       27,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,
+    -4859,-4859,-4859,-4859, 4976,-4859,-4859,-4859,-4859,-4859,
+    -4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,
+    -4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,
+     4976,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,
+    -4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,-4859,
+    -4859,-4859,-4859,-4859,-4859
+
+    },
+
+    {
+       27,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860, 4977,
+    -4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,
+    -4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,
+    -4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860, 4978,
+    -4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,
+    -4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,-4860,
+    -4860,-4860,-4860,-4860,-4860
+    },
+
+    {
+       27,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,
+    -4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,
+    -4861,-4861, 4979,-4861,-4861,-4861,-4861,-4861,-4861,-4861,
+
+    -4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,
+    -4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861, 4979,-4861,
+    -4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,-4861,
+    -4861,-4861,-4861,-4861,-4861
+    },
+
+    {
+       27,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,
+    -4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,
+    -4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,
+    -4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,
+    -4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,
+    -4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,-4862,
+
+    -4862,-4862,-4862,-4862,-4862
+    },
+
+    {
+       27,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,
+    -4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,
+    -4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,
+    -4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,
+    -4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,
+    -4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,-4863,
+    -4863,-4863,-4863,-4863,-4863
+    },
+
+    {
+       27,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,
+    -4864,-4864,-4864, 4980,-4864,-4864,-4864,-4864,-4864,-4864,
+
+    -4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,
+    -4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,
+    -4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,
+    -4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,-4864,
+    -4864,-4864,-4864,-4864,-4864
+    },
+
+    {
+       27,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,
+    -4865,-4865,-4865, 4981,-4865,-4865,-4865,-4865,-4865,-4865,
+    -4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,
+    -4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,
+    -4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,
+
+    -4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,-4865,
+    -4865,-4865,-4865,-4865,-4865
+    },
+
+    {
+       27,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,
+    -4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,
+    -4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,
+    -4866,-4866,-4866, 4982,-4866,-4866,-4866,-4866,-4866,-4866,
+    -4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866,
+    -4866,-4866,-4866,-4866,-4866,-4866,-4866,-4866, 4982,-4866,
+    -4866,-4866,-4866,-4866,-4866
+    },
+
+    {
+       27,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,
+
+    -4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,
+    -4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,
+    -4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,
+    -4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,
+    -4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,-4867,
+    -4867,-4867,-4867,-4867,-4867
+    },
+
+    {
+       27,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,
+    -4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,
+    -4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,
+    -4868,-4868, 4983,-4868,-4868,-4868,-4868,-4868,-4868,-4868,
+
+    -4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,-4868,
+    -4868,-4868,-4868,-4868,-4868,-4868,-4868, 4983,-4868,-4868,
+    -4868,-4868,-4868,-4868,-4868
+    },
+
+    {
+       27, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4984, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
+     4869, 4869, 4869, 4869, 4869
+
+    },
+
+    {
+       27,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,
+    -4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,
+    -4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,
+    -4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,
+    -4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,
+    -4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,-4870,
+    -4870,-4870,-4870,-4870,-4870
+    },
+
+    {
+       27,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,
+    -4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,
+    -4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,
+
+    -4871,-4871,-4871, 4985,-4871,-4871,-4871,-4871,-4871,-4871,
+    -4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871,
+    -4871,-4871,-4871,-4871,-4871,-4871,-4871,-4871, 4985,-4871,
+    -4871,-4871,-4871,-4871,-4871
+    },
+
+    {
+       27,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,
+    -4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,
+    -4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,
+    -4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,
+    -4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,
+    -4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,-4872,
+
+    -4872,-4872,-4872,-4872,-4872
+    },
+
+    {
+       27,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,
+    -4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,
+    -4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,
+    -4873,-4873,-4873, 4986,-4873,-4873,-4873,-4873,-4873,-4873,
+    -4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873,
+    -4873,-4873,-4873,-4873,-4873,-4873,-4873,-4873, 4986,-4873,
+    -4873,-4873,-4873,-4873,-4873
+    },
+
+    {
+       27,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,
+    -4874,-4874,-4874,-4874, 4987,-4874,-4874,-4874,-4874,-4874,
+
+    -4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,
+    -4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,
+     4987,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,
+    -4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,-4874,
+    -4874,-4874,-4874,-4874,-4874
+    },
+
+    {
+       27,-4875, 4875, 4875,-4875,-4875,-4875,-4875,-4875,-4875,
+    -4875,-4875, 4876,-4875,-4875,-4875,-4875,-4875,-4875,-4875,
+    -4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,
+    -4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,
+    -4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,
+
+    -4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,-4875,
+    -4875,-4875,-4875,-4875,-4875
+    },
+
+    {
+       27,-4876,-4876,-4876,-4876,-4876,-4876,-4876,-4876,-4876,
+    -4876,-4876,-4876,-4876,-4876,-4876, 4988,-4876,-4876,-4876,
+    -4876,-4876,-4876,-4876,-4876,-4876,-4876,-4876,-4876, 4989,
+    -4876,-4876,-4876,-4876,-4876,-4876,-4876,-4876,-4876,-4876,
+    -4876,-4876, 4988,-4876,-4876,-4876,-4876,-4876,-4876,-4876,
+    -4876,-4876,-4876,-4876, 4989,-4876,-4876,-4876,-4876,-4876,
+    -4876,-4876,-4876,-4876,-4876
+    },
+
+    {
+       27,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,
+
+    -4877,-4877,-4877,-4877, 4990,-4877,-4877,-4877,-4877,-4877,
+    -4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,
+    -4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,
+     4990,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,
+    -4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,-4877,
+    -4877,-4877,-4877,-4877,-4877
+    },
+
+    {
+       27,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878, 4991,
+    -4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,
+    -4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,
+    -4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878, 4992,
+
+    -4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,
+    -4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,-4878,
+    -4878,-4878,-4878,-4878,-4878
+    },
+
+    {
+       27,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,
+    -4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,
+    -4879,-4879, 4993,-4879,-4879,-4879,-4879,-4879,-4879,-4879,
+    -4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,
+    -4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879, 4993,-4879,
+    -4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,-4879,
+    -4879,-4879,-4879,-4879,-4879
+
+    },
+
+    {
+       27,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,
+    -4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,
+    -4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,
+    -4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,
+    -4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,
+    -4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,-4880,
+    -4880,-4880,-4880,-4880,-4880
+    },
+
+    {
+       27,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,
+    -4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,
+    -4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,
+
+    -4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,
+    -4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,
+    -4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,-4881,
+    -4881,-4881,-4881,-4881,-4881
+    },
+
+    {
+       27,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,
+    -4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,
+    -4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,
+    -4882,-4882, 4994,-4882,-4882,-4882,-4882,-4882,-4882,-4882,
+    -4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,-4882,
+    -4882,-4882,-4882,-4882,-4882,-4882,-4882, 4994,-4882,-4882,
+
+    -4882,-4882,-4882,-4882,-4882
+    },
+
+    {
+       27,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,
+    -4883,-4883,-4883, 4995,-4883,-4883,-4883,-4883,-4883,-4883,
+    -4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,
+    -4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,
+    -4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,
+    -4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,-4883,
+    -4883,-4883,-4883,-4883,-4883
+    },
+
+    {
+       27,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884, 4996,
+    -4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,
+
+    -4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,
+    -4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,
+    -4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,
+    -4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,-4884,
+    -4884,-4884,-4884,-4884,-4884
+    },
+
+    {
+       27,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,
+    -4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,
+    -4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,
+    -4885,-4885, 4997,-4885,-4885,-4885,-4885,-4885,-4885,-4885,
+    -4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,-4885,
+
+    -4885,-4885,-4885,-4885,-4885,-4885,-4885, 4997,-4885,-4885,
+    -4885,-4885,-4885,-4885,-4885
+    },
+
+    {
+       27,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,
+    -4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886, 4998,-4886,
+    -4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,
+    -4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,
+    -4886,-4886,-4886,-4886, 4998,-4886,-4886,-4886,-4886,-4886,
+    -4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,-4886,
+    -4886,-4886,-4886,-4886,-4886
+    },
+
+    {
+       27,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,
+
+    -4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,
+    -4887,-4887,-4887,-4887,-4887,-4887, 4999,-4887,-4887,-4887,
+    -4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,
+    -4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,
+    -4887, 4999,-4887,-4887,-4887,-4887,-4887,-4887,-4887,-4887,
+    -4887,-4887,-4887,-4887,-4887
+    },
+
+    {
+       27,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,
+    -4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,
+    -4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888, 5000,-4888,
+    -4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,
+
+    -4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,-4888,
+    -4888,-4888,-4888, 5000,-4888,-4888,-4888,-4888,-4888,-4888,
+    -4888,-4888,-4888,-4888,-4888
+    },
+
+    {
+       27,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,
+    -4889,-4889,-4889,-4889, 5001,-4889,-4889,-4889,-4889,-4889,
+    -4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,
+    -4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,
+     5001,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,
+    -4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,-4889,
+    -4889,-4889,-4889,-4889,-4889
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 5002,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 5002,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 5003,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 5004,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 5004,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 5005,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 5005,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 4169,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,
+    -4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,
+    -4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,
+    -4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,
+    -4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,
+
+    -4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,-4895,
+    -4895,-4895,-4895,-4895,-4895
+    },
+
+    {
+       27,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,
+    -4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,
+    -4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,
+    -4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,
+    -4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,
+    -4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,-4896,
+    -4896,-4896,-4896,-4896,-4896
+    },
+
+    {
+       27,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,
+
+    -4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,
+    -4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,
+    -4897,-4897, 5006,-4897,-4897,-4897,-4897,-4897,-4897,-4897,
+    -4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,-4897,
+    -4897,-4897,-4897,-4897,-4897,-4897,-4897, 5006,-4897,-4897,
+    -4897,-4897,-4897,-4897,-4897
+    },
+
+    {
+       27,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,
+    -4898,-4898,-4898, 5007,-4898,-4898,-4898,-4898,-4898,-4898,
+    -4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,
+    -4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,
+
+    -4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,
+    -4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,-4898,
+    -4898,-4898,-4898,-4898,-4898
+    },
+
+    {
+       27,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899, 5008,
+    -4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,
+    -4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,
+    -4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,
+    -4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,
+    -4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,-4899,
+    -4899,-4899,-4899,-4899,-4899
+
+    },
+
+    {
+       27,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,
+    -4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,
+    -4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,
+    -4900,-4900, 5009,-4900,-4900,-4900,-4900,-4900,-4900,-4900,
+    -4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,-4900,
+    -4900,-4900,-4900,-4900,-4900,-4900,-4900, 5009,-4900,-4900,
+    -4900,-4900,-4900,-4900,-4900
+    },
+
+    {
+       27,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,
+    -4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901, 5010,-4901,
+    -4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,
+
+    -4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,
+    -4901,-4901,-4901,-4901, 5010,-4901,-4901,-4901,-4901,-4901,
+    -4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,-4901,
+    -4901,-4901,-4901,-4901,-4901
+    },
+
+    {
+       27,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,
+    -4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,
+    -4902,-4902,-4902,-4902,-4902,-4902, 5011,-4902,-4902,-4902,
+    -4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,
+    -4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,
+    -4902, 5011,-4902,-4902,-4902,-4902,-4902,-4902,-4902,-4902,
+
+    -4902,-4902,-4902,-4902,-4902
+    },
+
+    {
+       27,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,
+    -4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,
+    -4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903, 5012,-4903,
+    -4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,
+    -4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,-4903,
+    -4903,-4903,-4903, 5012,-4903,-4903,-4903,-4903,-4903,-4903,
+    -4903,-4903,-4903,-4903,-4903
+    },
+
+    {
+       27,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,
+    -4904,-4904,-4904,-4904, 5013,-4904,-4904,-4904,-4904,-4904,
+
+    -4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,
+    -4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,
+     5013,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,
+    -4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,-4904,
+    -4904,-4904,-4904,-4904,-4904
+    },
+
+    {
+       27,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,
+    -4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,
+    -4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,
+    -4905, 5014,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,
+    -4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,-4905,
+
+    -4905,-4905,-4905,-4905,-4905,-4905, 5014,-4905,-4905,-4905,
+    -4905,-4905,-4905,-4905,-4905
+    },
+
+    {
+       27,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,
+    -4906,-4906,-4906, 5015,-4906,-4906,-4906,-4906,-4906,-4906,
+    -4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,
+    -4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,
+    -4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,
+    -4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,-4906,
+    -4906,-4906,-4906,-4906,-4906
+    },
+
+    {
+       27,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,
+
+    -4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,
+    -4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,
+    -4907,-4907, 5016,-4907,-4907,-4907,-4907,-4907,-4907,-4907,
+    -4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,-4907,
+    -4907,-4907,-4907,-4907,-4907,-4907,-4907, 5016,-4907,-4907,
+    -4907,-4907,-4907,-4907,-4907
+    },
+
+    {
+       27,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,
+    -4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,
+    -4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908, 5017,-4908,
+    -4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,
+
+    -4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,-4908,
+    -4908,-4908,-4908, 5017,-4908,-4908,-4908,-4908,-4908,-4908,
+    -4908,-4908,-4908,-4908,-4908
+    },
+
+    {
+       27,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,
+    -4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,
+    -4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,
+    -4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,
+    -4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,
+    -4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,-4909,
+    -4909,-4909,-4909,-4909,-4909
+
+    },
+
+    {
+       27,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,
+    -4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,
+    -4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,
+    -4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,
+    -4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,
+    -4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,-4910,
+    -4910,-4910,-4910,-4910,-4910
+    },
+
+    {
+       27,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,
+    -4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,
+    -4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,
+
+    -4911,-4911, 5018,-4911,-4911,-4911,-4911,-4911,-4911,-4911,
+    -4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,-4911,
+    -4911,-4911,-4911,-4911,-4911,-4911,-4911, 5018,-4911,-4911,
+    -4911,-4911,-4911,-4911,-4911
+    },
+
+    {
+       27,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,
+    -4912,-4912,-4912, 5019,-4912,-4912,-4912,-4912,-4912,-4912,
+    -4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,
+    -4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,
+    -4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,
+    -4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,-4912,
+
+    -4912,-4912,-4912,-4912,-4912
+    },
+
+    {
+       27,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913, 5020,
+    -4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,
+    -4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,
+    -4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,
+    -4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,
+    -4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,-4913,
+    -4913,-4913,-4913,-4913,-4913
+    },
+
+    {
+       27,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,
+    -4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,
+
+    -4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,
+    -4914,-4914, 5021,-4914,-4914,-4914,-4914,-4914,-4914,-4914,
+    -4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,-4914,
+    -4914,-4914,-4914,-4914,-4914,-4914,-4914, 5021,-4914,-4914,
+    -4914,-4914,-4914,-4914,-4914
+    },
+
+    {
+       27,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,
+    -4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915, 5022,-4915,
+    -4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,
+    -4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,
+    -4915,-4915,-4915,-4915, 5022,-4915,-4915,-4915,-4915,-4915,
+
+    -4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,-4915,
+    -4915,-4915,-4915,-4915,-4915
+    },
+
+    {
+       27,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,
+    -4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,
+    -4916,-4916,-4916,-4916,-4916,-4916, 5023,-4916,-4916,-4916,
+    -4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,
+    -4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,
+    -4916, 5023,-4916,-4916,-4916,-4916,-4916,-4916,-4916,-4916,
+    -4916,-4916,-4916,-4916,-4916
+    },
+
+    {
+       27,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,
+
+    -4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,
+    -4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917, 5024,-4917,
+    -4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,
+    -4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,-4917,
+    -4917,-4917,-4917, 5024,-4917,-4917,-4917,-4917,-4917,-4917,
+    -4917,-4917,-4917,-4917,-4917
+    },
+
+    {
+       27,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,
+    -4918,-4918,-4918,-4918, 5025,-4918,-4918,-4918,-4918,-4918,
+    -4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,
+    -4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,
+
+     5025,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,
+    -4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,-4918,
+    -4918,-4918,-4918,-4918,-4918
+    },
+
+    {
+       27,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,
+    -4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,
+    -4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,
+    -4919, 5026,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,
+    -4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,-4919,
+    -4919,-4919,-4919,-4919,-4919,-4919, 5026,-4919,-4919,-4919,
+    -4919,-4919,-4919,-4919,-4919
+
+    },
+
+    {
+       27,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,
+    -4920,-4920,-4920, 5027,-4920,-4920,-4920,-4920,-4920,-4920,
+    -4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,
+    -4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,
+    -4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,
+    -4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,-4920,
+    -4920,-4920,-4920,-4920,-4920
+    },
+
+    {
+       27,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,
+    -4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,
+    -4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,
+
+    -4921,-4921, 5028,-4921,-4921,-4921,-4921,-4921,-4921,-4921,
+    -4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,-4921,
+    -4921,-4921,-4921,-4921,-4921,-4921,-4921, 5028,-4921,-4921,
+    -4921,-4921,-4921,-4921,-4921
+    },
+
+    {
+       27,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,
+    -4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,
+    -4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922, 5029,-4922,
+    -4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,
+    -4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,-4922,
+    -4922,-4922,-4922, 5029,-4922,-4922,-4922,-4922,-4922,-4922,
+
+    -4922,-4922,-4922,-4922,-4922
+    },
+
+    {
+       27,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,
+    -4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,
+    -4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,
+    -4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,
+    -4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,
+    -4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,-4923,
+    -4923,-4923,-4923,-4923,-4923
+    },
+
+    {
+       27,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,
+    -4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,
+
+    -4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,
+    -4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,
+    -4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,
+    -4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,-4924,
+    -4924,-4924,-4924,-4924,-4924
+    },
+
+    {
+       27,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,
+    -4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,
+    -4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,
+    -4925,-4925, 5030,-4925,-4925,-4925,-4925,-4925,-4925,-4925,
+    -4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,-4925,
+
+    -4925,-4925,-4925,-4925,-4925,-4925,-4925, 5030,-4925,-4925,
+    -4925,-4925,-4925,-4925,-4925
+    },
+
+    {
+       27,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,
+    -4926,-4926,-4926, 5031,-4926,-4926,-4926,-4926,-4926,-4926,
+    -4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,
+    -4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,
+    -4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,
+    -4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,-4926,
+    -4926,-4926,-4926,-4926,-4926
+    },
+
+    {
+       27,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927, 5032,
+
+    -4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,
+    -4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,
+    -4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,
+    -4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,
+    -4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,-4927,
+    -4927,-4927,-4927,-4927,-4927
+    },
+
+    {
+       27,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,
+    -4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,
+    -4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,
+    -4928,-4928, 5033,-4928,-4928,-4928,-4928,-4928,-4928,-4928,
+
+    -4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,-4928,
+    -4928,-4928,-4928,-4928,-4928,-4928,-4928, 5033,-4928,-4928,
+    -4928,-4928,-4928,-4928,-4928
+    },
+
+    {
+       27,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,
+    -4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929, 5034,-4929,
+    -4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,
+    -4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,
+    -4929,-4929,-4929,-4929, 5034,-4929,-4929,-4929,-4929,-4929,
+    -4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,-4929,
+    -4929,-4929,-4929,-4929,-4929
+
+    },
+
+    {
+       27,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,
+    -4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,
+    -4930,-4930,-4930,-4930,-4930,-4930, 5035,-4930,-4930,-4930,
+    -4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,
+    -4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,
+    -4930, 5035,-4930,-4930,-4930,-4930,-4930,-4930,-4930,-4930,
+    -4930,-4930,-4930,-4930,-4930
+    },
+
+    {
+       27,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,
+    -4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,
+    -4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931, 5036,-4931,
+
+    -4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,
+    -4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,-4931,
+    -4931,-4931,-4931, 5036,-4931,-4931,-4931,-4931,-4931,-4931,
+    -4931,-4931,-4931,-4931,-4931
+    },
+
+    {
+       27,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,
+    -4932,-4932,-4932,-4932, 5037,-4932,-4932,-4932,-4932,-4932,
+    -4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,
+    -4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,
+     5037,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,
+    -4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,-4932,
+
+    -4932,-4932,-4932,-4932,-4932
+    },
+
+    {
+       27,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,
+    -4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,
+    -4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,
+    -4933, 5038,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,
+    -4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,-4933,
+    -4933,-4933,-4933,-4933,-4933,-4933, 5038,-4933,-4933,-4933,
+    -4933,-4933,-4933,-4933,-4933
+    },
+
+    {
+       27,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,
+    -4934,-4934,-4934, 5039,-4934,-4934,-4934,-4934,-4934,-4934,
+
+    -4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,
+    -4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,
+    -4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,
+    -4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,-4934,
+    -4934,-4934,-4934,-4934,-4934
+    },
+
+    {
+       27,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,
+    -4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,
+    -4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,
+    -4935,-4935, 5040,-4935,-4935,-4935,-4935,-4935,-4935,-4935,
+    -4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,-4935,
+
+    -4935,-4935,-4935,-4935,-4935,-4935,-4935, 5040,-4935,-4935,
+    -4935,-4935,-4935,-4935,-4935
+    },
+
+    {
+       27,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,
+    -4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,
+    -4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936, 5041,-4936,
+    -4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,
+    -4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,-4936,
+    -4936,-4936,-4936, 5041,-4936,-4936,-4936,-4936,-4936,-4936,
+    -4936,-4936,-4936,-4936,-4936
+    },
+
+    {
+       27,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,
+
+    -4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,
+    -4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,
+    -4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,
+    -4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,
+    -4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,-4937,
+    -4937,-4937,-4937,-4937,-4937
+    },
+
+    {
+       27,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,
+    -4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,
+    -4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,
+    -4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,
+
+    -4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,
+    -4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,-4938,
+    -4938,-4938,-4938,-4938,-4938
+    },
+
+    {
+       27,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,
+    -4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,
+    -4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,
+    -4939,-4939, 5042,-4939,-4939,-4939,-4939,-4939,-4939,-4939,
+    -4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,-4939,
+    -4939,-4939,-4939,-4939,-4939,-4939,-4939, 5042,-4939,-4939,
+    -4939,-4939,-4939,-4939,-4939
+
+    },
+
+    {
+       27,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,
+    -4940,-4940,-4940, 5043,-4940,-4940,-4940,-4940,-4940,-4940,
+    -4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,
+    -4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,
+    -4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,
+    -4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,-4940,
+    -4940,-4940,-4940,-4940,-4940
+    },
+
+    {
+       27,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941, 5044,
+    -4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,
+    -4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,
+
+    -4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,
+    -4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,
+    -4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,-4941,
+    -4941,-4941,-4941,-4941,-4941
+    },
+
+    {
+       27,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,
+    -4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,
+    -4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,
+    -4942,-4942, 5045,-4942,-4942,-4942,-4942,-4942,-4942,-4942,
+    -4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,-4942,
+    -4942,-4942,-4942,-4942,-4942,-4942,-4942, 5045,-4942,-4942,
+
+    -4942,-4942,-4942,-4942,-4942
+    },
+
+    {
+       27,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,
+    -4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943, 5046,-4943,
+    -4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,
+    -4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,
+    -4943,-4943,-4943,-4943, 5046,-4943,-4943,-4943,-4943,-4943,
+    -4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,-4943,
+    -4943,-4943,-4943,-4943,-4943
+    },
+
+    {
+       27,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,
+    -4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,
+
+    -4944,-4944,-4944,-4944,-4944,-4944, 5047,-4944,-4944,-4944,
+    -4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,
+    -4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,
+    -4944, 5047,-4944,-4944,-4944,-4944,-4944,-4944,-4944,-4944,
+    -4944,-4944,-4944,-4944,-4944
+    },
+
+    {
+       27,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,
+    -4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,
+    -4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945, 5048,-4945,
+    -4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,
+    -4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,-4945,
+
+    -4945,-4945,-4945, 5048,-4945,-4945,-4945,-4945,-4945,-4945,
+    -4945,-4945,-4945,-4945,-4945
+    },
+
+    {
+       27,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,
+    -4946,-4946,-4946,-4946, 5049,-4946,-4946,-4946,-4946,-4946,
+    -4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,
+    -4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,
+     5049,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,
+    -4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,-4946,
+    -4946,-4946,-4946,-4946,-4946
+    },
+
+    {
+       27,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,
+
+    -4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,
+    -4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,
+    -4947, 5050,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,
+    -4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,-4947,
+    -4947,-4947,-4947,-4947,-4947,-4947, 5050,-4947,-4947,-4947,
+    -4947,-4947,-4947,-4947,-4947
+    },
+
+    {
+       27,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,
+    -4948,-4948,-4948, 5051,-4948,-4948,-4948,-4948,-4948,-4948,
+    -4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,
+    -4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,
+
+    -4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,
+    -4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,-4948,
+    -4948,-4948,-4948,-4948,-4948
+    },
+
+    {
+       27,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,
+    -4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,
+    -4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,
+    -4949,-4949, 5052,-4949,-4949,-4949,-4949,-4949,-4949,-4949,
+    -4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,-4949,
+    -4949,-4949,-4949,-4949,-4949,-4949,-4949, 5052,-4949,-4949,
+    -4949,-4949,-4949,-4949,-4949
+
+    },
+
+    {
+       27,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,
+    -4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,
+    -4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950, 5053,-4950,
+    -4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,
+    -4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,-4950,
+    -4950,-4950,-4950, 5053,-4950,-4950,-4950,-4950,-4950,-4950,
+    -4950,-4950,-4950,-4950,-4950
+    },
+
+    {
+       27,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,
+    -4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,
+    -4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,
+
+    -4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,
+    -4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,
+    -4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,-4951,
+    -4951,-4951,-4951,-4951,-4951
+    },
+
+    {
+       27,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,
+    -4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,
+    -4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,
+    -4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,
+    -4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,
+    -4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,-4952,
+
+    -4952,-4952,-4952,-4952,-4952
+    },
+
+    {
+       27,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,
+    -4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,
+    -4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,
+    -4953,-4953, 5054,-4953,-4953,-4953,-4953,-4953,-4953,-4953,
+    -4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,-4953,
+    -4953,-4953,-4953,-4953,-4953,-4953,-4953, 5054,-4953,-4953,
+    -4953,-4953,-4953,-4953,-4953
+    },
+
+    {
+       27,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,
+    -4954,-4954,-4954, 5055,-4954,-4954,-4954,-4954,-4954,-4954,
+
+    -4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,
+    -4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,
+    -4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,
+    -4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,-4954,
+    -4954,-4954,-4954,-4954,-4954
+    },
+
+    {
+       27,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955, 5056,
+    -4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,
+    -4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,
+    -4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,
+    -4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,
+
+    -4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,-4955,
+    -4955,-4955,-4955,-4955,-4955
+    },
+
+    {
+       27,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,
+    -4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,
+    -4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,
+    -4956,-4956, 5057,-4956,-4956,-4956,-4956,-4956,-4956,-4956,
+    -4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,-4956,
+    -4956,-4956,-4956,-4956,-4956,-4956,-4956, 5057,-4956,-4956,
+    -4956,-4956,-4956,-4956,-4956
+    },
+
+    {
+       27,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,
+
+    -4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957, 5058,-4957,
+    -4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,
+    -4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,
+    -4957,-4957,-4957,-4957, 5058,-4957,-4957,-4957,-4957,-4957,
+    -4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,-4957,
+    -4957,-4957,-4957,-4957,-4957
+    },
+
+    {
+       27,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,
+    -4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,
+    -4958,-4958,-4958,-4958,-4958,-4958, 5059,-4958,-4958,-4958,
+    -4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,
+
+    -4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,
+    -4958, 5059,-4958,-4958,-4958,-4958,-4958,-4958,-4958,-4958,
+    -4958,-4958,-4958,-4958,-4958
+    },
+
+    {
+       27,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,
+    -4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,
+    -4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959, 5060,-4959,
+    -4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,
+    -4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,-4959,
+    -4959,-4959,-4959, 5060,-4959,-4959,-4959,-4959,-4959,-4959,
+    -4959,-4959,-4959,-4959,-4959
+
+    },
+
+    {
+       27,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,
+    -4960,-4960,-4960,-4960, 5061,-4960,-4960,-4960,-4960,-4960,
+    -4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,
+    -4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,
+     5061,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,
+    -4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,-4960,
+    -4960,-4960,-4960,-4960,-4960
+    },
+
+    {
+       27,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,
+    -4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,
+    -4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,
+
+    -4961, 5062,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,
+    -4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,-4961,
+    -4961,-4961,-4961,-4961,-4961,-4961, 5062,-4961,-4961,-4961,
+    -4961,-4961,-4961,-4961,-4961
+    },
+
+    {
+       27,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,
+    -4962,-4962,-4962, 5063,-4962,-4962,-4962,-4962,-4962,-4962,
+    -4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,
+    -4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,
+    -4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,
+    -4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,-4962,
+
+    -4962,-4962,-4962,-4962,-4962
+    },
+
+    {
+       27,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,
+    -4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,
+    -4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,
+    -4963,-4963, 5064,-4963,-4963,-4963,-4963,-4963,-4963,-4963,
+    -4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,-4963,
+    -4963,-4963,-4963,-4963,-4963,-4963,-4963, 5064,-4963,-4963,
+    -4963,-4963,-4963,-4963,-4963
+    },
+
+    {
+       27,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,
+    -4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,
+
+    -4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964, 5065,-4964,
+    -4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,
+    -4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,-4964,
+    -4964,-4964,-4964, 5065,-4964,-4964,-4964,-4964,-4964,-4964,
+    -4964,-4964,-4964,-4964,-4964
+    },
+
+    {
+       27,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,
+    -4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,
+    -4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,
+    -4965, 5066,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,
+    -4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,-4965,
+
+    -4965,-4965,-4965,-4965,-4965,-4965, 5066,-4965,-4965,-4965,
+    -4965,-4965,-4965,-4965,-4965
+    },
+
+    {
+       27,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,
+    -4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,
+    -4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,
+    -4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,
+    -4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,
+    -4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,-4966,
+    -4966,-4966,-4966,-4966,-4966
+    },
+
+    {
+       27,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,
+
+    -4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,
+    -4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,
+    -4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,
+    -4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,
+    -4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,-4967,
+    -4967,-4967,-4967,-4967,-4967
+    },
+
+    {
+       27,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,
+    -4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,
+    -4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,
+    -4968,-4968, 5067,-4968,-4968,-4968,-4968,-4968,-4968,-4968,
+
+    -4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,-4968,
+    -4968,-4968,-4968,-4968,-4968,-4968,-4968, 5067,-4968,-4968,
+    -4968,-4968,-4968,-4968,-4968
+    },
+
+    {
+       27,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,
+    -4969,-4969,-4969, 5068,-4969,-4969,-4969,-4969,-4969,-4969,
+    -4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,
+    -4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,
+    -4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,
+    -4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,-4969,
+    -4969,-4969,-4969,-4969,-4969
+
+    },
+
+    {
+       27,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970, 5069,
+    -4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,
+    -4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,
+    -4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,
+    -4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,
+    -4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,-4970,
+    -4970,-4970,-4970,-4970,-4970
+    },
+
+    {
+       27,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,
+    -4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,
+    -4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,
+
+    -4971,-4971, 5070,-4971,-4971,-4971,-4971,-4971,-4971,-4971,
+    -4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,-4971,
+    -4971,-4971,-4971,-4971,-4971,-4971,-4971, 5070,-4971,-4971,
+    -4971,-4971,-4971,-4971,-4971
+    },
+
+    {
+       27,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,
+    -4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972, 5071,-4972,
+    -4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,
+    -4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,
+    -4972,-4972,-4972,-4972, 5071,-4972,-4972,-4972,-4972,-4972,
+    -4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,-4972,
+
+    -4972,-4972,-4972,-4972,-4972
+    },
+
+    {
+       27,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,
+    -4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,
+    -4973,-4973,-4973,-4973,-4973,-4973, 5072,-4973,-4973,-4973,
+    -4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,
+    -4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,
+    -4973, 5072,-4973,-4973,-4973,-4973,-4973,-4973,-4973,-4973,
+    -4973,-4973,-4973,-4973,-4973
+    },
+
+    {
+       27,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,
+    -4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,
+
+    -4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974, 5073,-4974,
+    -4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,
+    -4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,-4974,
+    -4974,-4974,-4974, 5073,-4974,-4974,-4974,-4974,-4974,-4974,
+    -4974,-4974,-4974,-4974,-4974
+    },
+
+    {
+       27,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,
+    -4975,-4975,-4975,-4975, 5074,-4975,-4975,-4975,-4975,-4975,
+    -4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,
+    -4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,
+     5074,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,
+
+    -4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,-4975,
+    -4975,-4975,-4975,-4975,-4975
+    },
+
+    {
+       27,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,
+    -4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,
+    -4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,
+    -4976, 5075,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,
+    -4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,-4976,
+    -4976,-4976,-4976,-4976,-4976,-4976, 5075,-4976,-4976,-4976,
+    -4976,-4976,-4976,-4976,-4976
+    },
+
+    {
+       27,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,
+
+    -4977,-4977,-4977, 5076,-4977,-4977,-4977,-4977,-4977,-4977,
+    -4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,
+    -4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,
+    -4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,
+    -4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,-4977,
+    -4977,-4977,-4977,-4977,-4977
+    },
+
+    {
+       27,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,
+    -4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,
+    -4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,
+    -4978,-4978, 5077,-4978,-4978,-4978,-4978,-4978,-4978,-4978,
+
+    -4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,-4978,
+    -4978,-4978,-4978,-4978,-4978,-4978,-4978, 5077,-4978,-4978,
+    -4978,-4978,-4978,-4978,-4978
+    },
+
+    {
+       27,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,
+    -4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,
+    -4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979, 5078,-4979,
+    -4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,
+    -4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,-4979,
+    -4979,-4979,-4979, 5078,-4979,-4979,-4979,-4979,-4979,-4979,
+    -4979,-4979,-4979,-4979,-4979
+
+    },
+
+    {
+       27,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,
+    -4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,
+    -4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,
+    -4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,
+    -4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,
+    -4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,-4980,
+    -4980,-4980,-4980,-4980,-4980
+    },
+
+    {
+       27,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,
+    -4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,
+    -4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,
+
+    -4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,
+    -4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,
+    -4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,-4981,
+    -4981,-4981,-4981,-4981,-4981
+    },
+
+    {
+       27,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,
+    -4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,
+    -4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,
+    -4982,-4982, 5079,-4982,-4982,-4982,-4982,-4982,-4982,-4982,
+    -4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,-4982,
+    -4982,-4982,-4982,-4982,-4982,-4982,-4982, 5079,-4982,-4982,
+
+    -4982,-4982,-4982,-4982,-4982
+    },
+
+    {
+       27,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,
+    -4983,-4983,-4983, 5080,-4983,-4983,-4983,-4983,-4983,-4983,
+    -4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,
+    -4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,
+    -4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,
+    -4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,-4983,
+    -4983,-4983,-4983,-4983,-4983
+    },
+
+    {
+       27,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984, 5081,
+    -4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,
+
+    -4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,
+    -4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,
+    -4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,
+    -4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,-4984,
+    -4984,-4984,-4984,-4984,-4984
+    },
+
+    {
+       27,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,
+    -4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,
+    -4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,
+    -4985,-4985, 5082,-4985,-4985,-4985,-4985,-4985,-4985,-4985,
+    -4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,-4985,
+
+    -4985,-4985,-4985,-4985,-4985,-4985,-4985, 5082,-4985,-4985,
+    -4985,-4985,-4985,-4985,-4985
+    },
+
+    {
+       27,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,
+    -4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986, 5083,-4986,
+    -4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,
+    -4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,
+    -4986,-4986,-4986,-4986, 5083,-4986,-4986,-4986,-4986,-4986,
+    -4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,-4986,
+    -4986,-4986,-4986,-4986,-4986
+    },
+
+    {
+       27,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,
+
+    -4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,
+    -4987,-4987,-4987,-4987,-4987,-4987, 5084,-4987,-4987,-4987,
+    -4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,
+    -4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,
+    -4987, 5084,-4987,-4987,-4987,-4987,-4987,-4987,-4987,-4987,
+    -4987,-4987,-4987,-4987,-4987
+    },
+
+    {
+       27,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,
+    -4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,
+    -4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988, 5085,-4988,
+    -4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,
+
+    -4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,-4988,
+    -4988,-4988,-4988, 5085,-4988,-4988,-4988,-4988,-4988,-4988,
+    -4988,-4988,-4988,-4988,-4988
+    },
+
+    {
+       27,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,
+    -4989,-4989,-4989,-4989, 5086,-4989,-4989,-4989,-4989,-4989,
+    -4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,
+    -4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,
+     5086,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,
+    -4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,-4989,
+    -4989,-4989,-4989,-4989,-4989
+
+    },
+
+    {
+       27,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,
+    -4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,
+    -4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,
+    -4990, 5087,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,
+    -4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,-4990,
+    -4990,-4990,-4990,-4990,-4990,-4990, 5087,-4990,-4990,-4990,
+    -4990,-4990,-4990,-4990,-4990
+    },
+
+    {
+       27,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,
+    -4991,-4991,-4991, 5088,-4991,-4991,-4991,-4991,-4991,-4991,
+    -4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,
+
+    -4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,
+    -4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,
+    -4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,-4991,
+    -4991,-4991,-4991,-4991,-4991
+    },
+
+    {
+       27,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,
+    -4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,
+    -4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,
+    -4992,-4992, 5089,-4992,-4992,-4992,-4992,-4992,-4992,-4992,
+    -4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,-4992,
+    -4992,-4992,-4992,-4992,-4992,-4992,-4992, 5089,-4992,-4992,
+
+    -4992,-4992,-4992,-4992,-4992
+    },
+
+    {
+       27,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,
+    -4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,
+    -4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993, 5090,-4993,
+    -4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,
+    -4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,-4993,
+    -4993,-4993,-4993, 5090,-4993,-4993,-4993,-4993,-4993,-4993,
+    -4993,-4993,-4993,-4993,-4993
+    },
+
+    {
+       27,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,
+    -4994,-4994,-4994, 5091,-4994,-4994,-4994,-4994,-4994,-4994,
+
+    -4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,
+    -4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,
+    -4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,
+    -4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,-4994,
+    -4994,-4994,-4994,-4994,-4994
+    },
+
+    {
+       27,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,
+    -4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,
+    -4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,
+    -4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,
+    -4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,
+
+    -4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,-4995,
+    -4995,-4995,-4995,-4995,-4995
+    },
+
+    {
+       27,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,
+    -4996,-4996,-4996,-4996,-4996,-4996, 5092,-4996,-4996,-4996,
+    -4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,
+    -4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,
+    -4996,-4996, 5092,-4996,-4996,-4996,-4996,-4996,-4996,-4996,
+    -4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,-4996,
+    -4996,-4996,-4996,-4996,-4996
+    },
+
+    {
+       27,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,
+
+    -4997,-4997,-4997, 5093,-4997,-4997,-4997,-4997,-4997,-4997,
+    -4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,
+    -4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,
+    -4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,
+    -4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,-4997,
+    -4997,-4997,-4997,-4997,-4997
+    },
+
+    {
+       27,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,
+    -4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,
+    -4998,-4998,-4998,-4998,-4998,-4998,-4998, 5094,-4998,-4998,
+    -4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,
+
+    -4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,-4998,
+    -4998,-4998, 5094,-4998,-4998,-4998,-4998,-4998,-4998,-4998,
+    -4998,-4998,-4998,-4998,-4998
+    },
+
+    {
+       27,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,
+    -4999,-4999,-4999, 5095,-4999,-4999,-4999,-4999,-4999,-4999,
+    -4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,
+    -4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,
+    -4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,
+    -4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,-4999,
+    -4999,-4999,-4999,-4999,-4999
+
+    },
+
+    {
+       27,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,
+    -5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,
+    -5000,-5000,-5000,-5000,-5000,-5000,-5000, 5096,-5000,-5000,
+    -5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,
+    -5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,-5000,
+    -5000,-5000, 5096,-5000,-5000,-5000,-5000,-5000,-5000,-5000,
+    -5000,-5000,-5000,-5000,-5000
+    },
+
+    {
+       27,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,
+    -5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,
+    -5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,
+
+    -5001, 5097,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,
+    -5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,-5001,
+    -5001,-5001,-5001,-5001,-5001,-5001, 5097,-5001,-5001,-5001,
+    -5001,-5001,-5001,-5001,-5001
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 4392,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5003, 5098, 5098,-5003,-5003,-5003,-5003,-5003,-5003,
+    -5003,-5003, 5099,-5003,-5003,-5003,-5003,-5003,-5003,-5003,
+    -5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,
+    -5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,
+    -5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,
+    -5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,-5003,
+    -5003,-5003,-5003,-5003,-5003
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 5100,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 5100,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 5101,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184, 5101,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,
+    -5006,-5006,-5006, 5102,-5006,-5006,-5006,-5006,-5006,-5006,
+    -5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,
+    -5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,
+    -5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,
+    -5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,-5006,
+    -5006,-5006,-5006,-5006,-5006
+    },
+
+    {
+       27,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,
+
+    -5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,
+    -5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,
+    -5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,
+    -5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,
+    -5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,-5007,
+    -5007,-5007,-5007,-5007,-5007
+    },
+
+    {
+       27,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,
+    -5008,-5008,-5008,-5008,-5008,-5008, 5103,-5008,-5008,-5008,
+    -5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,
+    -5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,
+
+    -5008,-5008, 5103,-5008,-5008,-5008,-5008,-5008,-5008,-5008,
+    -5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,-5008,
+    -5008,-5008,-5008,-5008,-5008
+    },
+
+    {
+       27,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,
+    -5009,-5009,-5009, 5104,-5009,-5009,-5009,-5009,-5009,-5009,
+    -5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,
+    -5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,
+    -5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,
+    -5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,-5009,
+    -5009,-5009,-5009,-5009,-5009
+
+    },
+
+    {
+       27,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,
+    -5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,
+    -5010,-5010,-5010,-5010,-5010,-5010,-5010, 5105,-5010,-5010,
+    -5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,
+    -5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,-5010,
+    -5010,-5010, 5105,-5010,-5010,-5010,-5010,-5010,-5010,-5010,
+    -5010,-5010,-5010,-5010,-5010
+    },
+
+    {
+       27,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,
+    -5011,-5011,-5011, 5106,-5011,-5011,-5011,-5011,-5011,-5011,
+    -5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,
+
+    -5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,
+    -5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,
+    -5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,-5011,
+    -5011,-5011,-5011,-5011,-5011
+    },
+
+    {
+       27,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,
+    -5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,
+    -5012,-5012,-5012,-5012,-5012,-5012,-5012, 5107,-5012,-5012,
+    -5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,
+    -5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,-5012,
+    -5012,-5012, 5107,-5012,-5012,-5012,-5012,-5012,-5012,-5012,
+
+    -5012,-5012,-5012,-5012,-5012
+    },
+
+    {
+       27,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,
+    -5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,
+    -5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,
+    -5013, 5108,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,
+    -5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,-5013,
+    -5013,-5013,-5013,-5013,-5013,-5013, 5108,-5013,-5013,-5013,
+    -5013,-5013,-5013,-5013,-5013
+    },
+
+    {
+       27,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014, 4416,
+    -5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,
+
+    -5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,
+    -5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,
+    -5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,
+    -5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,-5014,
+    -5014,-5014,-5014,-5014,-5014
+    },
+
+    {
+       27,-5015, 5109, 5109,-5015,-5015,-5015,-5015,-5015,-5015,
+    -5015,-5015, 5110,-5015,-5015,-5015,-5015,-5015,-5015,-5015,
+    -5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,
+    -5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,
+    -5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,
+
+    -5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,-5015,
+    -5015,-5015,-5015,-5015,-5015
+    },
+
+    {
+       27,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,
+    -5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,
+    -5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,
+    -5016,-5016,-5016, 5111,-5016,-5016,-5016,-5016,-5016,-5016,
+    -5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016,
+    -5016,-5016,-5016,-5016,-5016,-5016,-5016,-5016, 5111,-5016,
+    -5016,-5016,-5016,-5016,-5016
+    },
+
+    {
+       27,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,
+
+    -5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,
+    -5017,-5017,-5017,-5017,-5017,-5017,-5017, 5112,-5017,-5017,
+    -5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,
+    -5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,-5017,
+    -5017,-5017, 5112,-5017,-5017,-5017,-5017,-5017,-5017,-5017,
+    -5017,-5017,-5017,-5017,-5017
+    },
+
+    {
+       27,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,
+    -5018,-5018,-5018, 5113,-5018,-5018,-5018,-5018,-5018,-5018,
+    -5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,
+    -5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,
+
+    -5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,
+    -5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,-5018,
+    -5018,-5018,-5018,-5018,-5018
+    },
+
+    {
+       27,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,
+    -5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,
+    -5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,
+    -5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,
+    -5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,
+    -5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,-5019,
+    -5019,-5019,-5019,-5019,-5019
+
+    },
+
+    {
+       27,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,
+    -5020,-5020,-5020,-5020,-5020,-5020, 5114,-5020,-5020,-5020,
+    -5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,
+    -5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,
+    -5020,-5020, 5114,-5020,-5020,-5020,-5020,-5020,-5020,-5020,
+    -5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,-5020,
+    -5020,-5020,-5020,-5020,-5020
+    },
+
+    {
+       27,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,
+    -5021,-5021,-5021, 5115,-5021,-5021,-5021,-5021,-5021,-5021,
+    -5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,
+
+    -5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,
+    -5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,
+    -5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,-5021,
+    -5021,-5021,-5021,-5021,-5021
+    },
+
+    {
+       27,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,
+    -5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,
+    -5022,-5022,-5022,-5022,-5022,-5022,-5022, 5116,-5022,-5022,
+    -5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,
+    -5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,-5022,
+    -5022,-5022, 5116,-5022,-5022,-5022,-5022,-5022,-5022,-5022,
+
+    -5022,-5022,-5022,-5022,-5022
+    },
+
+    {
+       27,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,
+    -5023,-5023,-5023, 5117,-5023,-5023,-5023,-5023,-5023,-5023,
+    -5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,
+    -5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,
+    -5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,
+    -5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,-5023,
+    -5023,-5023,-5023,-5023,-5023
+    },
+
+    {
+       27,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,
+    -5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,
+
+    -5024,-5024,-5024,-5024,-5024,-5024,-5024, 5118,-5024,-5024,
+    -5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,
+    -5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,-5024,
+    -5024,-5024, 5118,-5024,-5024,-5024,-5024,-5024,-5024,-5024,
+    -5024,-5024,-5024,-5024,-5024
+    },
+
+    {
+       27,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,
+    -5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,
+    -5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,
+    -5025, 5119,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,
+    -5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,-5025,
+
+    -5025,-5025,-5025,-5025,-5025,-5025, 5119,-5025,-5025,-5025,
+    -5025,-5025,-5025,-5025,-5025
+    },
+
+    {
+       27,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026, 4439,
+    -5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,
+    -5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,
+    -5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,
+    -5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,
+    -5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,-5026,
+    -5026,-5026,-5026,-5026,-5026
+    },
+
+    {
+       27,-5027, 5120, 5120,-5027,-5027,-5027,-5027,-5027,-5027,
+
+    -5027,-5027, 5121,-5027,-5027,-5027,-5027,-5027,-5027,-5027,
+    -5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,
+    -5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,
+    -5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,
+    -5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,-5027,
+    -5027,-5027,-5027,-5027,-5027
+    },
+
+    {
+       27,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,
+    -5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,
+    -5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,
+    -5028,-5028,-5028, 5122,-5028,-5028,-5028,-5028,-5028,-5028,
+
+    -5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028,
+    -5028,-5028,-5028,-5028,-5028,-5028,-5028,-5028, 5122,-5028,
+    -5028,-5028,-5028,-5028,-5028
+    },
+
+    {
+       27,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,
+    -5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,
+    -5029,-5029,-5029,-5029,-5029,-5029,-5029, 5123,-5029,-5029,
+    -5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,
+    -5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,-5029,
+    -5029,-5029, 5123,-5029,-5029,-5029,-5029,-5029,-5029,-5029,
+    -5029,-5029,-5029,-5029,-5029
+
+    },
+
+    {
+       27,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,
+    -5030,-5030,-5030, 5124,-5030,-5030,-5030,-5030,-5030,-5030,
+    -5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,
+    -5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,
+    -5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,
+    -5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,-5030,
+    -5030,-5030,-5030,-5030,-5030
+    },
+
+    {
+       27,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,
+    -5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,
+    -5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,
+
+    -5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,
+    -5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,
+    -5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,-5031,
+    -5031,-5031,-5031,-5031,-5031
+    },
+
+    {
+       27,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,
+    -5032,-5032,-5032,-5032,-5032,-5032, 5125,-5032,-5032,-5032,
+    -5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,
+    -5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,
+    -5032,-5032, 5125,-5032,-5032,-5032,-5032,-5032,-5032,-5032,
+    -5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,-5032,
+
+    -5032,-5032,-5032,-5032,-5032
+    },
+
+    {
+       27,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,
+    -5033,-5033,-5033, 5126,-5033,-5033,-5033,-5033,-5033,-5033,
+    -5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,
+    -5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,
+    -5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,
+    -5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,-5033,
+    -5033,-5033,-5033,-5033,-5033
+    },
+
+    {
+       27,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,
+    -5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,
+
+    -5034,-5034,-5034,-5034,-5034,-5034,-5034, 5127,-5034,-5034,
+    -5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,
+    -5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,-5034,
+    -5034,-5034, 5127,-5034,-5034,-5034,-5034,-5034,-5034,-5034,
+    -5034,-5034,-5034,-5034,-5034
+    },
+
+    {
+       27,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,
+    -5035,-5035,-5035, 5128,-5035,-5035,-5035,-5035,-5035,-5035,
+    -5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,
+    -5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,
+    -5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,
+
+    -5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,-5035,
+    -5035,-5035,-5035,-5035,-5035
+    },
+
+    {
+       27,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,
+    -5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,
+    -5036,-5036,-5036,-5036,-5036,-5036,-5036, 5129,-5036,-5036,
+    -5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,
+    -5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,-5036,
+    -5036,-5036, 5129,-5036,-5036,-5036,-5036,-5036,-5036,-5036,
+    -5036,-5036,-5036,-5036,-5036
+    },
+
+    {
+       27,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,
+
+    -5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,
+    -5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,
+    -5037, 5130,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,
+    -5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,-5037,
+    -5037,-5037,-5037,-5037,-5037,-5037, 5130,-5037,-5037,-5037,
+    -5037,-5037,-5037,-5037,-5037
+    },
+
+    {
+       27,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038, 4462,
+    -5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,
+    -5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,
+    -5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,
+
+    -5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,
+    -5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,-5038,
+    -5038,-5038,-5038,-5038,-5038
+    },
+
+    {
+       27,-5039, 5131, 5131,-5039,-5039,-5039,-5039,-5039,-5039,
+    -5039,-5039, 5132,-5039,-5039,-5039,-5039,-5039,-5039,-5039,
+    -5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,
+    -5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,
+    -5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,
+    -5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,-5039,
+    -5039,-5039,-5039,-5039,-5039
+
+    },
+
+    {
+       27,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,
+    -5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,
+    -5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,
+    -5040,-5040,-5040, 5133,-5040,-5040,-5040,-5040,-5040,-5040,
+    -5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040,
+    -5040,-5040,-5040,-5040,-5040,-5040,-5040,-5040, 5133,-5040,
+    -5040,-5040,-5040,-5040,-5040
+    },
+
+    {
+       27,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,
+    -5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,
+    -5041,-5041,-5041,-5041,-5041,-5041,-5041, 5134,-5041,-5041,
+
+    -5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,
+    -5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,-5041,
+    -5041,-5041, 5134,-5041,-5041,-5041,-5041,-5041,-5041,-5041,
+    -5041,-5041,-5041,-5041,-5041
+    },
+
+    {
+       27,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,
+    -5042,-5042,-5042, 5135,-5042,-5042,-5042,-5042,-5042,-5042,
+    -5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,
+    -5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,
+    -5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,
+    -5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,-5042,
+
+    -5042,-5042,-5042,-5042,-5042
+    },
+
+    {
+       27,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,
+    -5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,
+    -5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,
+    -5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,
+    -5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,
+    -5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,-5043,
+    -5043,-5043,-5043,-5043,-5043
+    },
+
+    {
+       27,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,
+    -5044,-5044,-5044,-5044,-5044,-5044, 5136,-5044,-5044,-5044,
+
+    -5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,
+    -5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,
+    -5044,-5044, 5136,-5044,-5044,-5044,-5044,-5044,-5044,-5044,
+    -5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,-5044,
+    -5044,-5044,-5044,-5044,-5044
+    },
+
+    {
+       27,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,
+    -5045,-5045,-5045, 5137,-5045,-5045,-5045,-5045,-5045,-5045,
+    -5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,
+    -5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,
+    -5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,
+
+    -5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,-5045,
+    -5045,-5045,-5045,-5045,-5045
+    },
+
+    {
+       27,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,
+    -5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,
+    -5046,-5046,-5046,-5046,-5046,-5046,-5046, 5138,-5046,-5046,
+    -5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,
+    -5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,-5046,
+    -5046,-5046, 5138,-5046,-5046,-5046,-5046,-5046,-5046,-5046,
+    -5046,-5046,-5046,-5046,-5046
+    },
+
+    {
+       27,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,
+
+    -5047,-5047,-5047, 5139,-5047,-5047,-5047,-5047,-5047,-5047,
+    -5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,
+    -5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,
+    -5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,
+    -5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,-5047,
+    -5047,-5047,-5047,-5047,-5047
+    },
+
+    {
+       27,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,
+    -5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,
+    -5048,-5048,-5048,-5048,-5048,-5048,-5048, 5140,-5048,-5048,
+    -5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,
+
+    -5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,-5048,
+    -5048,-5048, 5140,-5048,-5048,-5048,-5048,-5048,-5048,-5048,
+    -5048,-5048,-5048,-5048,-5048
+    },
+
+    {
+       27,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,
+    -5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,
+    -5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,
+    -5049, 5141,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,
+    -5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,-5049,
+    -5049,-5049,-5049,-5049,-5049,-5049, 5141,-5049,-5049,-5049,
+    -5049,-5049,-5049,-5049,-5049
+
+    },
+
+    {
+       27,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050, 4485,
+    -5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,
+    -5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,
+    -5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,
+    -5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,
+    -5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,-5050,
+    -5050,-5050,-5050,-5050,-5050
+    },
+
+    {
+       27,-5051, 5142, 5142,-5051,-5051,-5051,-5051,-5051,-5051,
+    -5051,-5051, 5143,-5051,-5051,-5051,-5051,-5051,-5051,-5051,
+    -5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,
+
+    -5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,
+    -5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,
+    -5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,-5051,
+    -5051,-5051,-5051,-5051,-5051
+    },
+
+    {
+       27,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,
+    -5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,
+    -5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,
+    -5052,-5052,-5052, 5144,-5052,-5052,-5052,-5052,-5052,-5052,
+    -5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052,
+    -5052,-5052,-5052,-5052,-5052,-5052,-5052,-5052, 5144,-5052,
+
+    -5052,-5052,-5052,-5052,-5052
+    },
+
+    {
+       27,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,
+    -5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,
+    -5053,-5053,-5053,-5053,-5053,-5053,-5053, 5145,-5053,-5053,
+    -5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,
+    -5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,-5053,
+    -5053,-5053, 5145,-5053,-5053,-5053,-5053,-5053,-5053,-5053,
+    -5053,-5053,-5053,-5053,-5053
+    },
+
+    {
+       27,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,
+    -5054,-5054,-5054, 5146,-5054,-5054,-5054,-5054,-5054,-5054,
+
+    -5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,
+    -5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,
+    -5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,
+    -5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,-5054,
+    -5054,-5054,-5054,-5054,-5054
+    },
+
+    {
+       27,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,
+    -5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,
+    -5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,
+    -5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,
+    -5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,
+
+    -5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,-5055,
+    -5055,-5055,-5055,-5055,-5055
+    },
+
+    {
+       27,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,
+    -5056,-5056,-5056,-5056,-5056,-5056, 5147,-5056,-5056,-5056,
+    -5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,
+    -5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,
+    -5056,-5056, 5147,-5056,-5056,-5056,-5056,-5056,-5056,-5056,
+    -5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,-5056,
+    -5056,-5056,-5056,-5056,-5056
+    },
+
+    {
+       27,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,
+
+    -5057,-5057,-5057, 5148,-5057,-5057,-5057,-5057,-5057,-5057,
+    -5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,
+    -5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,
+    -5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,
+    -5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,-5057,
+    -5057,-5057,-5057,-5057,-5057
+    },
+
+    {
+       27,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,
+    -5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,
+    -5058,-5058,-5058,-5058,-5058,-5058,-5058, 5149,-5058,-5058,
+    -5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,
+
+    -5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,-5058,
+    -5058,-5058, 5149,-5058,-5058,-5058,-5058,-5058,-5058,-5058,
+    -5058,-5058,-5058,-5058,-5058
+    },
+
+    {
+       27,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,
+    -5059,-5059,-5059, 5150,-5059,-5059,-5059,-5059,-5059,-5059,
+    -5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,
+    -5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,
+    -5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,
+    -5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,-5059,
+    -5059,-5059,-5059,-5059,-5059
+
+    },
+
+    {
+       27,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,
+    -5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,
+    -5060,-5060,-5060,-5060,-5060,-5060,-5060, 5151,-5060,-5060,
+    -5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,
+    -5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,-5060,
+    -5060,-5060, 5151,-5060,-5060,-5060,-5060,-5060,-5060,-5060,
+    -5060,-5060,-5060,-5060,-5060
+    },
+
+    {
+       27,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,
+    -5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,
+    -5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,
+
+    -5061, 5152,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,
+    -5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,-5061,
+    -5061,-5061,-5061,-5061,-5061,-5061, 5152,-5061,-5061,-5061,
+    -5061,-5061,-5061,-5061,-5061
+    },
+
+    {
+       27,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062, 4508,
+    -5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,
+    -5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,
+    -5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,
+    -5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,
+    -5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,-5062,
+
+    -5062,-5062,-5062,-5062,-5062
+    },
+
+    {
+       27,-5063, 5153, 5153,-5063,-5063,-5063,-5063,-5063,-5063,
+    -5063,-5063, 5154,-5063,-5063,-5063,-5063,-5063,-5063,-5063,
+    -5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,
+    -5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,
+    -5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,
+    -5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,-5063,
+    -5063,-5063,-5063,-5063,-5063
+    },
+
+    {
+       27,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,
+    -5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,
+
+    -5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,
+    -5064,-5064,-5064, 5155,-5064,-5064,-5064,-5064,-5064,-5064,
+    -5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064,
+    -5064,-5064,-5064,-5064,-5064,-5064,-5064,-5064, 5155,-5064,
+    -5064,-5064,-5064,-5064,-5064
+    },
+
+    {
+       27,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,
+    -5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,
+    -5065,-5065,-5065,-5065,-5065,-5065,-5065, 5156,-5065,-5065,
+    -5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,
+    -5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,-5065,
+
+    -5065,-5065, 5156,-5065,-5065,-5065,-5065,-5065,-5065,-5065,
+    -5065,-5065,-5065,-5065,-5065
+    },
+
+    {
+       27,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,
+    -5066,-5066,-5066, 4516,-5066,-5066,-5066,-5066,-5066,-5066,
+    -5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,
+    -5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,
+    -5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,
+    -5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,-5066,
+    -5066,-5066,-5066,-5066,-5066
+    },
+
+    {
+       27,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,
+
+    -5067,-5067,-5067, 5157,-5067,-5067,-5067,-5067,-5067,-5067,
+    -5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,
+    -5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,
+    -5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,
+    -5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,-5067,
+    -5067,-5067,-5067,-5067,-5067
+    },
+
+    {
+       27,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,
+    -5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,
+    -5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,
+    -5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,
+
+    -5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,
+    -5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,-5068,
+    -5068,-5068,-5068,-5068,-5068
+    },
+
+    {
+       27,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,
+    -5069,-5069,-5069,-5069,-5069,-5069, 5158,-5069,-5069,-5069,
+    -5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,
+    -5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,
+    -5069,-5069, 5158,-5069,-5069,-5069,-5069,-5069,-5069,-5069,
+    -5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,-5069,
+    -5069,-5069,-5069,-5069,-5069
+
+    },
+
+    {
+       27,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,
+    -5070,-5070,-5070, 5159,-5070,-5070,-5070,-5070,-5070,-5070,
+    -5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,
+    -5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,
+    -5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,
+    -5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,-5070,
+    -5070,-5070,-5070,-5070,-5070
+    },
+
+    {
+       27,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,
+    -5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,
+    -5071,-5071,-5071,-5071,-5071,-5071,-5071, 5160,-5071,-5071,
+
+    -5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,
+    -5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,-5071,
+    -5071,-5071, 5160,-5071,-5071,-5071,-5071,-5071,-5071,-5071,
+    -5071,-5071,-5071,-5071,-5071
+    },
+
+    {
+       27,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,
+    -5072,-5072,-5072, 5161,-5072,-5072,-5072,-5072,-5072,-5072,
+    -5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,
+    -5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,
+    -5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,
+    -5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,-5072,
+
+    -5072,-5072,-5072,-5072,-5072
+    },
+
+    {
+       27,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,
+    -5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,
+    -5073,-5073,-5073,-5073,-5073,-5073,-5073, 5162,-5073,-5073,
+    -5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,
+    -5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,-5073,
+    -5073,-5073, 5162,-5073,-5073,-5073,-5073,-5073,-5073,-5073,
+    -5073,-5073,-5073,-5073,-5073
+    },
+
+    {
+       27,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,
+    -5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,
+
+    -5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,
+    -5074, 5163,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,
+    -5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,-5074,
+    -5074,-5074,-5074,-5074,-5074,-5074, 5163,-5074,-5074,-5074,
+    -5074,-5074,-5074,-5074,-5074
+    },
+
+    {
+       27,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075, 4533,
+    -5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,
+    -5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,
+    -5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,
+    -5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,
+
+    -5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,-5075,
+    -5075,-5075,-5075,-5075,-5075
+    },
+
+    {
+       27,-5076, 5164, 5164,-5076,-5076,-5076,-5076,-5076,-5076,
+    -5076,-5076, 5165,-5076,-5076,-5076,-5076,-5076,-5076,-5076,
+    -5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,
+    -5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,
+    -5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,
+    -5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,-5076,
+    -5076,-5076,-5076,-5076,-5076
+    },
+
+    {
+       27,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,
+
+    -5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,
+    -5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,
+    -5077,-5077,-5077, 5166,-5077,-5077,-5077,-5077,-5077,-5077,
+    -5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077,
+    -5077,-5077,-5077,-5077,-5077,-5077,-5077,-5077, 5166,-5077,
+    -5077,-5077,-5077,-5077,-5077
+    },
+
+    {
+       27,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,
+    -5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,
+    -5078,-5078,-5078,-5078,-5078,-5078,-5078, 5167,-5078,-5078,
+    -5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,
+
+    -5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,-5078,
+    -5078,-5078, 5167,-5078,-5078,-5078,-5078,-5078,-5078,-5078,
+    -5078,-5078,-5078,-5078,-5078
+    },
+
+    {
+       27,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,
+    -5079,-5079,-5079, 5168,-5079,-5079,-5079,-5079,-5079,-5079,
+    -5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,
+    -5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,
+    -5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,
+    -5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,-5079,
+    -5079,-5079,-5079,-5079,-5079
+
+    },
+
+    {
+       27,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,
+    -5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,
+    -5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,
+    -5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,
+    -5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,
+    -5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,-5080,
+    -5080,-5080,-5080,-5080,-5080
+    },
+
+    {
+       27,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,
+    -5081,-5081,-5081,-5081,-5081,-5081, 5169,-5081,-5081,-5081,
+    -5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,
+
+    -5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,
+    -5081,-5081, 5169,-5081,-5081,-5081,-5081,-5081,-5081,-5081,
+    -5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,-5081,
+    -5081,-5081,-5081,-5081,-5081
+    },
+
+    {
+       27,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,
+    -5082,-5082,-5082, 5170,-5082,-5082,-5082,-5082,-5082,-5082,
+    -5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,
+    -5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,
+    -5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,
+    -5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,-5082,
+
+    -5082,-5082,-5082,-5082,-5082
+    },
+
+    {
+       27,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,
+    -5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,
+    -5083,-5083,-5083,-5083,-5083,-5083,-5083, 5171,-5083,-5083,
+    -5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,
+    -5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,-5083,
+    -5083,-5083, 5171,-5083,-5083,-5083,-5083,-5083,-5083,-5083,
+    -5083,-5083,-5083,-5083,-5083
+    },
+
+    {
+       27,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,
+    -5084,-5084,-5084, 5172,-5084,-5084,-5084,-5084,-5084,-5084,
+
+    -5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,
+    -5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,
+    -5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,
+    -5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,-5084,
+    -5084,-5084,-5084,-5084,-5084
+    },
+
+    {
+       27,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,
+    -5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,
+    -5085,-5085,-5085,-5085,-5085,-5085,-5085, 5173,-5085,-5085,
+    -5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,
+    -5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,-5085,
+
+    -5085,-5085, 5173,-5085,-5085,-5085,-5085,-5085,-5085,-5085,
+    -5085,-5085,-5085,-5085,-5085
+    },
+
+    {
+       27,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,
+    -5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,
+    -5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,
+    -5086, 5174,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,
+    -5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,-5086,
+    -5086,-5086,-5086,-5086,-5086,-5086, 5174,-5086,-5086,-5086,
+    -5086,-5086,-5086,-5086,-5086
+    },
+
+    {
+       27,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087, 4556,
+
+    -5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,
+    -5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,
+    -5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,
+    -5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,
+    -5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,-5087,
+    -5087,-5087,-5087,-5087,-5087
+    },
+
+    {
+       27,-5088, 5175, 5175,-5088,-5088,-5088,-5088,-5088,-5088,
+    -5088,-5088, 5176,-5088,-5088,-5088,-5088,-5088,-5088,-5088,
+    -5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,
+    -5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,
+
+    -5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,
+    -5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,-5088,
+    -5088,-5088,-5088,-5088,-5088
+    },
+
+    {
+       27,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,
+    -5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,
+    -5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,
+    -5089,-5089,-5089, 5177,-5089,-5089,-5089,-5089,-5089,-5089,
+    -5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089,
+    -5089,-5089,-5089,-5089,-5089,-5089,-5089,-5089, 5177,-5089,
+    -5089,-5089,-5089,-5089,-5089
+
+    },
+
+    {
+       27,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,
+    -5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,
+    -5090,-5090,-5090,-5090,-5090,-5090,-5090, 5178,-5090,-5090,
+    -5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,
+    -5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,-5090,
+    -5090,-5090, 5178,-5090,-5090,-5090,-5090,-5090,-5090,-5090,
+    -5090,-5090,-5090,-5090,-5090
+    },
+
+    {
+       27,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,
+    -5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,
+    -5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,
+
+    -5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,
+    -5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,
+    -5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,-5091,
+    -5091,-5091,-5091,-5091,-5091
+    },
+
+    {
+       27,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,
+    -5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,
+    -5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092, 5179,-5092,
+    -5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,
+    -5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,-5092,
+    -5092,-5092,-5092, 5179,-5092,-5092,-5092,-5092,-5092,-5092,
+
+    -5092,-5092,-5092,-5092,-5092
+    },
+
+    {
+       27,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,
+    -5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,
+    -5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,
+    -5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,
+    -5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,
+    -5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,-5093,
+    -5093,-5093,-5093,-5093,-5093
+    },
+
+    {
+       27,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,
+    -5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,
+
+    -5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,
+    -5094,-5094,-5094, 5180,-5094,-5094,-5094,-5094,-5094,-5094,
+    -5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094,
+    -5094,-5094,-5094,-5094,-5094,-5094,-5094,-5094, 5180,-5094,
+    -5094,-5094,-5094,-5094,-5094
+    },
+
+    {
+       27,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,
+    -5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,
+    -5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,
+    -5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,
+    -5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,
+
+    -5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,-5095,
+    -5095,-5095,-5095,-5095,-5095
+    },
+
+    {
+       27,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,
+    -5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,
+    -5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,
+    -5096,-5096,-5096, 5181,-5096,-5096,-5096,-5096,-5096,-5096,
+    -5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096,
+    -5096,-5096,-5096,-5096,-5096,-5096,-5096,-5096, 5181,-5096,
+    -5096,-5096,-5096,-5096,-5096
+    },
+
+    {
+       27,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,
+
+    -5097,-5097,-5097,-5097, 5182,-5097,-5097,-5097,-5097,-5097,
+    -5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,
+    -5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,
+     5182,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,
+    -5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,-5097,
+    -5097,-5097,-5097,-5097,-5097
+    },
+
+    {
+       27,-5098, 5098, 5098,-5098,-5098,-5098,-5098,-5098,-5098,
+    -5098,-5098, 5099,-5098,-5098,-5098,-5098,-5098,-5098,-5098,
+    -5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,
+    -5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,
+
+    -5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,
+    -5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,-5098,
+    -5098,-5098,-5098,-5098,-5098
+    },
+
+    {
+       27,-5099,-5099,-5099,-5099,-5099,-5099,-5099,-5099,-5099,
+    -5099,-5099,-5099,-5099,-5099,-5099, 5183,-5099,-5099,-5099,
+    -5099,-5099,-5099,-5099,-5099,-5099,-5099,-5099,-5099, 5184,
+    -5099,-5099,-5099,-5099,-5099,-5099,-5099,-5099,-5099,-5099,
+    -5099,-5099, 5183,-5099,-5099,-5099,-5099,-5099,-5099,-5099,
+    -5099,-5099,-5099,-5099, 5184,-5099,-5099,-5099,-5099,-5099,
+    -5099,-5099,-5099,-5099,-5099
+
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 5185,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     5185,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 5186,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184, 5187,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,
+    -5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,
+    -5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,
+    -5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,
+    -5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,
+    -5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,-5102,
+
+    -5102,-5102,-5102,-5102,-5102
+    },
+
+    {
+       27,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,
+    -5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,
+    -5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103, 5188,-5103,
+    -5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,
+    -5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,-5103,
+    -5103,-5103,-5103, 5188,-5103,-5103,-5103,-5103,-5103,-5103,
+    -5103,-5103,-5103,-5103,-5103
+    },
+
+    {
+       27,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,
+    -5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,
+
+    -5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,
+    -5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,
+    -5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,
+    -5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,-5104,
+    -5104,-5104,-5104,-5104,-5104
+    },
+
+    {
+       27,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,
+    -5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,
+    -5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,
+    -5105,-5105,-5105, 5189,-5105,-5105,-5105,-5105,-5105,-5105,
+    -5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105,
+
+    -5105,-5105,-5105,-5105,-5105,-5105,-5105,-5105, 5189,-5105,
+    -5105,-5105,-5105,-5105,-5105
+    },
+
+    {
+       27,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,
+    -5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,
+    -5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,
+    -5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,
+    -5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,
+    -5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,-5106,
+    -5106,-5106,-5106,-5106,-5106
+    },
+
+    {
+       27,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,
+
+    -5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,
+    -5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,
+    -5107,-5107,-5107, 5190,-5107,-5107,-5107,-5107,-5107,-5107,
+    -5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107,
+    -5107,-5107,-5107,-5107,-5107,-5107,-5107,-5107, 5190,-5107,
+    -5107,-5107,-5107,-5107,-5107
+    },
+
+    {
+       27,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,
+    -5108,-5108,-5108,-5108, 5191,-5108,-5108,-5108,-5108,-5108,
+    -5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,
+    -5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,
+
+     5191,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,
+    -5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,-5108,
+    -5108,-5108,-5108,-5108,-5108
+    },
+
+    {
+       27,-5109, 5109, 5109,-5109,-5109,-5109,-5109,-5109,-5109,
+    -5109,-5109, 5110,-5109,-5109,-5109,-5109,-5109,-5109,-5109,
+    -5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,
+    -5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,
+    -5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,
+    -5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,-5109,
+    -5109,-5109,-5109,-5109,-5109
+
+    },
+
+    {
+       27,-5110,-5110,-5110,-5110,-5110,-5110,-5110,-5110,-5110,
+    -5110,-5110,-5110,-5110,-5110,-5110, 5192,-5110,-5110,-5110,
+    -5110,-5110,-5110,-5110,-5110,-5110,-5110,-5110,-5110, 5193,
+    -5110,-5110,-5110,-5110,-5110,-5110,-5110,-5110,-5110,-5110,
+    -5110,-5110, 5192,-5110,-5110,-5110,-5110,-5110,-5110,-5110,
+    -5110,-5110,-5110,-5110, 5193,-5110,-5110,-5110,-5110,-5110,
+    -5110,-5110,-5110,-5110,-5110
+    },
+
+    {
+       27,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,
+    -5111,-5111,-5111,-5111, 5194,-5111,-5111,-5111,-5111,-5111,
+    -5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,
+
+    -5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,
+     5194,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,
+    -5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,-5111,
+    -5111,-5111,-5111,-5111,-5111
+    },
+
+    {
+       27,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112, 5195,
+    -5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,
+    -5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,
+    -5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112, 5196,
+    -5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,
+    -5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,-5112,
+
+    -5112,-5112,-5112,-5112,-5112
+    },
+
+    {
+       27,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,
+    -5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,
+    -5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,
+    -5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,
+    -5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,
+    -5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,-5113,
+    -5113,-5113,-5113,-5113,-5113
+    },
+
+    {
+       27,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,
+    -5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,
+
+    -5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114, 5197,-5114,
+    -5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,
+    -5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,-5114,
+    -5114,-5114,-5114, 5197,-5114,-5114,-5114,-5114,-5114,-5114,
+    -5114,-5114,-5114,-5114,-5114
+    },
+
+    {
+       27,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,
+    -5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,
+    -5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,
+    -5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,
+    -5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,
+
+    -5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,-5115,
+    -5115,-5115,-5115,-5115,-5115
+    },
+
+    {
+       27,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,
+    -5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,
+    -5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,
+    -5116,-5116,-5116, 5198,-5116,-5116,-5116,-5116,-5116,-5116,
+    -5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116,
+    -5116,-5116,-5116,-5116,-5116,-5116,-5116,-5116, 5198,-5116,
+    -5116,-5116,-5116,-5116,-5116
+    },
+
+    {
+       27,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,
+
+    -5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,
+    -5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,
+    -5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,
+    -5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,
+    -5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,-5117,
+    -5117,-5117,-5117,-5117,-5117
+    },
+
+    {
+       27,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,
+    -5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,
+    -5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,
+    -5118,-5118,-5118, 5199,-5118,-5118,-5118,-5118,-5118,-5118,
+
+    -5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118,
+    -5118,-5118,-5118,-5118,-5118,-5118,-5118,-5118, 5199,-5118,
+    -5118,-5118,-5118,-5118,-5118
+    },
+
+    {
+       27,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,
+    -5119,-5119,-5119,-5119, 5200,-5119,-5119,-5119,-5119,-5119,
+    -5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,
+    -5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,
+     5200,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,
+    -5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,-5119,
+    -5119,-5119,-5119,-5119,-5119
+
+    },
+
+    {
+       27,-5120, 5120, 5120,-5120,-5120,-5120,-5120,-5120,-5120,
+    -5120,-5120, 5121,-5120,-5120,-5120,-5120,-5120,-5120,-5120,
+    -5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,
+    -5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,
+    -5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,
+    -5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,-5120,
+    -5120,-5120,-5120,-5120,-5120
+    },
+
+    {
+       27,-5121,-5121,-5121,-5121,-5121,-5121,-5121,-5121,-5121,
+    -5121,-5121,-5121,-5121,-5121,-5121, 5201,-5121,-5121,-5121,
+    -5121,-5121,-5121,-5121,-5121,-5121,-5121,-5121,-5121, 5202,
+
+    -5121,-5121,-5121,-5121,-5121,-5121,-5121,-5121,-5121,-5121,
+    -5121,-5121, 5201,-5121,-5121,-5121,-5121,-5121,-5121,-5121,
+    -5121,-5121,-5121,-5121, 5202,-5121,-5121,-5121,-5121,-5121,
+    -5121,-5121,-5121,-5121,-5121
+    },
+
+    {
+       27,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,
+    -5122,-5122,-5122,-5122, 5203,-5122,-5122,-5122,-5122,-5122,
+    -5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,
+    -5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,
+     5203,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,
+    -5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,-5122,
+
+    -5122,-5122,-5122,-5122,-5122
+    },
+
+    {
+       27,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123, 5204,
+    -5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,
+    -5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,
+    -5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123, 5205,
+    -5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,
+    -5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,-5123,
+    -5123,-5123,-5123,-5123,-5123
+    },
+
+    {
+       27,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,
+    -5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,
+
+    -5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,
+    -5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,
+    -5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,
+    -5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,-5124,
+    -5124,-5124,-5124,-5124,-5124
+    },
+
+    {
+       27,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,
+    -5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,
+    -5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125, 5206,-5125,
+    -5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,
+    -5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,-5125,
+
+    -5125,-5125,-5125, 5206,-5125,-5125,-5125,-5125,-5125,-5125,
+    -5125,-5125,-5125,-5125,-5125
+    },
+
+    {
+       27,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,
+    -5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,
+    -5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,
+    -5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,
+    -5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,
+    -5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,-5126,
+    -5126,-5126,-5126,-5126,-5126
+    },
+
+    {
+       27,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,
+
+    -5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,
+    -5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,
+    -5127,-5127,-5127, 5207,-5127,-5127,-5127,-5127,-5127,-5127,
+    -5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127,
+    -5127,-5127,-5127,-5127,-5127,-5127,-5127,-5127, 5207,-5127,
+    -5127,-5127,-5127,-5127,-5127
+    },
+
+    {
+       27,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,
+    -5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,
+    -5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,
+    -5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,
+
+    -5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,
+    -5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,-5128,
+    -5128,-5128,-5128,-5128,-5128
+    },
+
+    {
+       27,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,
+    -5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,
+    -5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,
+    -5129,-5129,-5129, 5208,-5129,-5129,-5129,-5129,-5129,-5129,
+    -5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129,
+    -5129,-5129,-5129,-5129,-5129,-5129,-5129,-5129, 5208,-5129,
+    -5129,-5129,-5129,-5129,-5129
+
+    },
+
+    {
+       27,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,
+    -5130,-5130,-5130,-5130, 5209,-5130,-5130,-5130,-5130,-5130,
+    -5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,
+    -5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,
+     5209,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,
+    -5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,-5130,
+    -5130,-5130,-5130,-5130,-5130
+    },
+
+    {
+       27,-5131, 5131, 5131,-5131,-5131,-5131,-5131,-5131,-5131,
+    -5131,-5131, 5132,-5131,-5131,-5131,-5131,-5131,-5131,-5131,
+    -5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,
+
+    -5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,
+    -5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,
+    -5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,-5131,
+    -5131,-5131,-5131,-5131,-5131
+    },
+
+    {
+       27,-5132,-5132,-5132,-5132,-5132,-5132,-5132,-5132,-5132,
+    -5132,-5132,-5132,-5132,-5132,-5132, 5210,-5132,-5132,-5132,
+    -5132,-5132,-5132,-5132,-5132,-5132,-5132,-5132,-5132, 5211,
+    -5132,-5132,-5132,-5132,-5132,-5132,-5132,-5132,-5132,-5132,
+    -5132,-5132, 5210,-5132,-5132,-5132,-5132,-5132,-5132,-5132,
+    -5132,-5132,-5132,-5132, 5211,-5132,-5132,-5132,-5132,-5132,
+
+    -5132,-5132,-5132,-5132,-5132
+    },
+
+    {
+       27,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,
+    -5133,-5133,-5133,-5133, 5212,-5133,-5133,-5133,-5133,-5133,
+    -5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,
+    -5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,
+     5212,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,
+    -5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,-5133,
+    -5133,-5133,-5133,-5133,-5133
+    },
+
+    {
+       27,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134, 5213,
+    -5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,
+
+    -5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,
+    -5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134, 5214,
+    -5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,
+    -5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,-5134,
+    -5134,-5134,-5134,-5134,-5134
+    },
+
+    {
+       27,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,
+    -5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,
+    -5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,
+    -5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,
+    -5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,
+
+    -5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,-5135,
+    -5135,-5135,-5135,-5135,-5135
+    },
+
+    {
+       27,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,
+    -5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,
+    -5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136, 5215,-5136,
+    -5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,
+    -5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,-5136,
+    -5136,-5136,-5136, 5215,-5136,-5136,-5136,-5136,-5136,-5136,
+    -5136,-5136,-5136,-5136,-5136
+    },
+
+    {
+       27,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,
+
+    -5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,
+    -5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,
+    -5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,
+    -5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,
+    -5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,-5137,
+    -5137,-5137,-5137,-5137,-5137
+    },
+
+    {
+       27,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,
+    -5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,
+    -5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,
+    -5138,-5138,-5138, 5216,-5138,-5138,-5138,-5138,-5138,-5138,
+
+    -5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138,
+    -5138,-5138,-5138,-5138,-5138,-5138,-5138,-5138, 5216,-5138,
+    -5138,-5138,-5138,-5138,-5138
+    },
+
+    {
+       27,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,
+    -5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,
+    -5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,
+    -5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,
+    -5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,
+    -5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,-5139,
+    -5139,-5139,-5139,-5139,-5139
+
+    },
+
+    {
+       27,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,
+    -5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,
+    -5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,
+    -5140,-5140,-5140, 5217,-5140,-5140,-5140,-5140,-5140,-5140,
+    -5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140,
+    -5140,-5140,-5140,-5140,-5140,-5140,-5140,-5140, 5217,-5140,
+    -5140,-5140,-5140,-5140,-5140
+    },
+
+    {
+       27,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,
+    -5141,-5141,-5141,-5141, 5218,-5141,-5141,-5141,-5141,-5141,
+    -5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,
+
+    -5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,
+     5218,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,
+    -5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,-5141,
+    -5141,-5141,-5141,-5141,-5141
+    },
+
+    {
+       27,-5142, 5142, 5142,-5142,-5142,-5142,-5142,-5142,-5142,
+    -5142,-5142, 5143,-5142,-5142,-5142,-5142,-5142,-5142,-5142,
+    -5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,
+    -5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,
+    -5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,
+    -5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,-5142,
+
+    -5142,-5142,-5142,-5142,-5142
+    },
+
+    {
+       27,-5143,-5143,-5143,-5143,-5143,-5143,-5143,-5143,-5143,
+    -5143,-5143,-5143,-5143,-5143,-5143, 5219,-5143,-5143,-5143,
+    -5143,-5143,-5143,-5143,-5143,-5143,-5143,-5143,-5143, 5220,
+    -5143,-5143,-5143,-5143,-5143,-5143,-5143,-5143,-5143,-5143,
+    -5143,-5143, 5219,-5143,-5143,-5143,-5143,-5143,-5143,-5143,
+    -5143,-5143,-5143,-5143, 5220,-5143,-5143,-5143,-5143,-5143,
+    -5143,-5143,-5143,-5143,-5143
+    },
+
+    {
+       27,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,
+    -5144,-5144,-5144,-5144, 5221,-5144,-5144,-5144,-5144,-5144,
+
+    -5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,
+    -5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,
+     5221,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,
+    -5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,-5144,
+    -5144,-5144,-5144,-5144,-5144
+    },
+
+    {
+       27,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145, 5222,
+    -5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,
+    -5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,
+    -5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145, 5223,
+    -5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,
+
+    -5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,-5145,
+    -5145,-5145,-5145,-5145,-5145
+    },
+
+    {
+       27,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,
+    -5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,
+    -5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,
+    -5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,
+    -5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,
+    -5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,-5146,
+    -5146,-5146,-5146,-5146,-5146
+    },
+
+    {
+       27,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,
+
+    -5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,
+    -5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147, 5224,-5147,
+    -5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,
+    -5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,-5147,
+    -5147,-5147,-5147, 5224,-5147,-5147,-5147,-5147,-5147,-5147,
+    -5147,-5147,-5147,-5147,-5147
+    },
+
+    {
+       27,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,
+    -5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,
+    -5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,
+    -5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,
+
+    -5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,
+    -5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,-5148,
+    -5148,-5148,-5148,-5148,-5148
+    },
+
+    {
+       27,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,
+    -5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,
+    -5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,
+    -5149,-5149,-5149, 5225,-5149,-5149,-5149,-5149,-5149,-5149,
+    -5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149,
+    -5149,-5149,-5149,-5149,-5149,-5149,-5149,-5149, 5225,-5149,
+    -5149,-5149,-5149,-5149,-5149
+
+    },
+
+    {
+       27,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,
+    -5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,
+    -5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,
+    -5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,
+    -5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,
+    -5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,-5150,
+    -5150,-5150,-5150,-5150,-5150
+    },
+
+    {
+       27,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,
+    -5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,
+    -5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,
+
+    -5151,-5151,-5151, 5226,-5151,-5151,-5151,-5151,-5151,-5151,
+    -5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151,
+    -5151,-5151,-5151,-5151,-5151,-5151,-5151,-5151, 5226,-5151,
+    -5151,-5151,-5151,-5151,-5151
+    },
+
+    {
+       27,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,
+    -5152,-5152,-5152,-5152, 5227,-5152,-5152,-5152,-5152,-5152,
+    -5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,
+    -5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,
+     5227,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,
+    -5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,-5152,
+
+    -5152,-5152,-5152,-5152,-5152
+    },
+
+    {
+       27,-5153, 5153, 5153,-5153,-5153,-5153,-5153,-5153,-5153,
+    -5153,-5153, 5154,-5153,-5153,-5153,-5153,-5153,-5153,-5153,
+    -5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,
+    -5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,
+    -5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,
+    -5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,-5153,
+    -5153,-5153,-5153,-5153,-5153
+    },
+
+    {
+       27,-5154,-5154,-5154,-5154,-5154,-5154,-5154,-5154,-5154,
+    -5154,-5154,-5154,-5154,-5154,-5154, 5228,-5154,-5154,-5154,
+
+    -5154,-5154,-5154,-5154,-5154,-5154,-5154,-5154,-5154, 5229,
+    -5154,-5154,-5154,-5154,-5154,-5154,-5154,-5154,-5154,-5154,
+    -5154,-5154, 5228,-5154,-5154,-5154,-5154,-5154,-5154,-5154,
+    -5154,-5154,-5154,-5154, 5229,-5154,-5154,-5154,-5154,-5154,
+    -5154,-5154,-5154,-5154,-5154
+    },
+
+    {
+       27,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,
+    -5155,-5155,-5155,-5155, 5230,-5155,-5155,-5155,-5155,-5155,
+    -5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,
+    -5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,
+     5230,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,
+
+    -5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,-5155,
+    -5155,-5155,-5155,-5155,-5155
+    },
+
+    {
+       27,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156, 5231,
+    -5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,
+    -5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,
+    -5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156, 5232,
+    -5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,
+    -5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,-5156,
+    -5156,-5156,-5156,-5156,-5156
+    },
+
+    {
+       27,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,
+
+    -5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,
+    -5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,
+    -5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,
+    -5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,
+    -5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,-5157,
+    -5157,-5157,-5157,-5157,-5157
+    },
+
+    {
+       27,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,
+    -5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,
+    -5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158, 5233,-5158,
+    -5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,
+
+    -5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,-5158,
+    -5158,-5158,-5158, 5233,-5158,-5158,-5158,-5158,-5158,-5158,
+    -5158,-5158,-5158,-5158,-5158
+    },
+
+    {
+       27,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,
+    -5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,
+    -5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,
+    -5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,
+    -5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,
+    -5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,-5159,
+    -5159,-5159,-5159,-5159,-5159
+
+    },
+
+    {
+       27,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,
+    -5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,
+    -5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,
+    -5160,-5160,-5160, 5234,-5160,-5160,-5160,-5160,-5160,-5160,
+    -5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160,
+    -5160,-5160,-5160,-5160,-5160,-5160,-5160,-5160, 5234,-5160,
+    -5160,-5160,-5160,-5160,-5160
+    },
+
+    {
+       27,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,
+    -5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,
+    -5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,
+
+    -5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,
+    -5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,
+    -5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,-5161,
+    -5161,-5161,-5161,-5161,-5161
+    },
+
+    {
+       27,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,
+    -5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,
+    -5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,
+    -5162,-5162,-5162, 5235,-5162,-5162,-5162,-5162,-5162,-5162,
+    -5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162,
+    -5162,-5162,-5162,-5162,-5162,-5162,-5162,-5162, 5235,-5162,
+
+    -5162,-5162,-5162,-5162,-5162
+    },
+
+    {
+       27,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,
+    -5163,-5163,-5163,-5163, 5236,-5163,-5163,-5163,-5163,-5163,
+    -5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,
+    -5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,
+     5236,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,
+    -5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,-5163,
+    -5163,-5163,-5163,-5163,-5163
+    },
+
+    {
+       27,-5164, 5164, 5164,-5164,-5164,-5164,-5164,-5164,-5164,
+    -5164,-5164, 5165,-5164,-5164,-5164,-5164,-5164,-5164,-5164,
+
+    -5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,
+    -5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,
+    -5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,
+    -5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,-5164,
+    -5164,-5164,-5164,-5164,-5164
+    },
+
+    {
+       27,-5165,-5165,-5165,-5165,-5165,-5165,-5165,-5165,-5165,
+    -5165,-5165,-5165,-5165,-5165,-5165, 5237,-5165,-5165,-5165,
+    -5165,-5165,-5165,-5165,-5165,-5165,-5165,-5165,-5165, 5238,
+    -5165,-5165,-5165,-5165,-5165,-5165,-5165,-5165,-5165,-5165,
+    -5165,-5165, 5237,-5165,-5165,-5165,-5165,-5165,-5165,-5165,
+
+    -5165,-5165,-5165,-5165, 5238,-5165,-5165,-5165,-5165,-5165,
+    -5165,-5165,-5165,-5165,-5165
+    },
+
+    {
+       27,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,
+    -5166,-5166,-5166,-5166, 5239,-5166,-5166,-5166,-5166,-5166,
+    -5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,
+    -5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,
+     5239,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,
+    -5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,-5166,
+    -5166,-5166,-5166,-5166,-5166
+    },
+
+    {
+       27,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167, 5240,
+
+    -5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,
+    -5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,
+    -5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167, 5241,
+    -5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,
+    -5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,-5167,
+    -5167,-5167,-5167,-5167,-5167
+    },
+
+    {
+       27,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,
+    -5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,
+    -5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,
+    -5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,
+
+    -5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,
+    -5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,-5168,
+    -5168,-5168,-5168,-5168,-5168
+    },
+
+    {
+       27,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,
+    -5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,
+    -5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169, 5242,-5169,
+    -5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,
+    -5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,-5169,
+    -5169,-5169,-5169, 5242,-5169,-5169,-5169,-5169,-5169,-5169,
+    -5169,-5169,-5169,-5169,-5169
+
+    },
+
+    {
+       27,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,
+    -5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,
+    -5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,
+    -5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,
+    -5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,
+    -5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,-5170,
+    -5170,-5170,-5170,-5170,-5170
+    },
+
+    {
+       27,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,
+    -5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,
+    -5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,
+
+    -5171,-5171,-5171, 5243,-5171,-5171,-5171,-5171,-5171,-5171,
+    -5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171,
+    -5171,-5171,-5171,-5171,-5171,-5171,-5171,-5171, 5243,-5171,
+    -5171,-5171,-5171,-5171,-5171
+    },
+
+    {
+       27,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,
+    -5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,
+    -5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,
+    -5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,
+    -5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,
+    -5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,-5172,
+
+    -5172,-5172,-5172,-5172,-5172
+    },
+
+    {
+       27,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,
+    -5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,
+    -5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,
+    -5173,-5173,-5173, 5244,-5173,-5173,-5173,-5173,-5173,-5173,
+    -5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173,
+    -5173,-5173,-5173,-5173,-5173,-5173,-5173,-5173, 5244,-5173,
+    -5173,-5173,-5173,-5173,-5173
+    },
+
+    {
+       27,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,
+    -5174,-5174,-5174,-5174, 5245,-5174,-5174,-5174,-5174,-5174,
+
+    -5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,
+    -5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,
+     5245,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,
+    -5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,-5174,
+    -5174,-5174,-5174,-5174,-5174
+    },
+
+    {
+       27,-5175, 5175, 5175,-5175,-5175,-5175,-5175,-5175,-5175,
+    -5175,-5175, 5176,-5175,-5175,-5175,-5175,-5175,-5175,-5175,
+    -5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,
+    -5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,
+    -5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,
+
+    -5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,-5175,
+    -5175,-5175,-5175,-5175,-5175
+    },
+
+    {
+       27,-5176,-5176,-5176,-5176,-5176,-5176,-5176,-5176,-5176,
+    -5176,-5176,-5176,-5176,-5176,-5176, 5246,-5176,-5176,-5176,
+    -5176,-5176,-5176,-5176,-5176,-5176,-5176,-5176,-5176, 5247,
+    -5176,-5176,-5176,-5176,-5176,-5176,-5176,-5176,-5176,-5176,
+    -5176,-5176, 5246,-5176,-5176,-5176,-5176,-5176,-5176,-5176,
+    -5176,-5176,-5176,-5176, 5247,-5176,-5176,-5176,-5176,-5176,
+    -5176,-5176,-5176,-5176,-5176
+    },
+
+    {
+       27,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,
+
+    -5177,-5177,-5177,-5177, 5248,-5177,-5177,-5177,-5177,-5177,
+    -5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,
+    -5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,
+     5248,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,
+    -5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,-5177,
+    -5177,-5177,-5177,-5177,-5177
+    },
+
+    {
+       27,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178, 5249,
+    -5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,
+    -5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,
+    -5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178, 5250,
+
+    -5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,
+    -5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,-5178,
+    -5178,-5178,-5178,-5178,-5178
+    },
+
+    {
+       27,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,
+    -5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,
+    -5179,-5179,-5179,-5179,-5179,-5179,-5179, 5251,-5179,-5179,
+    -5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,
+    -5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,-5179,
+    -5179,-5179, 5251,-5179,-5179,-5179,-5179,-5179,-5179,-5179,
+    -5179,-5179,-5179,-5179,-5179
+
+    },
+
+    {
+       27,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,
+    -5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,
+    -5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,
+    -5180,-5180, 5252,-5180,-5180,-5180,-5180,-5180,-5180,-5180,
+    -5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,-5180,
+    -5180,-5180,-5180,-5180,-5180,-5180,-5180, 5252,-5180,-5180,
+    -5180,-5180,-5180,-5180,-5180
+    },
+
+    {
+       27,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,
+    -5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181, 5253,-5181,
+    -5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,
+
+    -5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,
+    -5181,-5181,-5181,-5181, 5253,-5181,-5181,-5181,-5181,-5181,
+    -5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,-5181,
+    -5181,-5181,-5181,-5181,-5181
+    },
+
+    {
+       27,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,
+    -5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,
+    -5182,-5182,-5182,-5182,-5182,-5182, 5254,-5182,-5182,-5182,
+    -5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,
+    -5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,
+    -5182, 5254,-5182,-5182,-5182,-5182,-5182,-5182,-5182,-5182,
+
+    -5182,-5182,-5182,-5182,-5182
+    },
+
+    {
+       27,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,
+    -5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,
+    -5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183, 5255,-5183,
+    -5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,
+    -5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,-5183,
+    -5183,-5183,-5183, 5255,-5183,-5183,-5183,-5183,-5183,-5183,
+    -5183,-5183,-5183,-5183,-5183
+    },
+
+    {
+       27,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,
+    -5184,-5184,-5184,-5184, 5256,-5184,-5184,-5184,-5184,-5184,
+
+    -5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,
+    -5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,
+     5256,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,
+    -5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,-5184,
+    -5184,-5184,-5184,-5184,-5184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184, 5257,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184, 5257,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 5258,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184, 5259,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184, 5259,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,
+    -5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,
+    -5188,-5188,-5188,-5188,-5188,-5188,-5188, 5260,-5188,-5188,
+    -5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,
+
+    -5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,-5188,
+    -5188,-5188, 5260,-5188,-5188,-5188,-5188,-5188,-5188,-5188,
+    -5188,-5188,-5188,-5188,-5188
+    },
+
+    {
+       27,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,
+    -5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,
+    -5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,
+    -5189,-5189, 5261,-5189,-5189,-5189,-5189,-5189,-5189,-5189,
+    -5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,-5189,
+    -5189,-5189,-5189,-5189,-5189,-5189,-5189, 5261,-5189,-5189,
+    -5189,-5189,-5189,-5189,-5189
+
+    },
+
+    {
+       27,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,
+    -5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190, 5262,-5190,
+    -5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,
+    -5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,
+    -5190,-5190,-5190,-5190, 5262,-5190,-5190,-5190,-5190,-5190,
+    -5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,-5190,
+    -5190,-5190,-5190,-5190,-5190
+    },
+
+    {
+       27,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,
+    -5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,
+    -5191,-5191,-5191,-5191,-5191,-5191, 5263,-5191,-5191,-5191,
+
+    -5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,
+    -5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,
+    -5191, 5263,-5191,-5191,-5191,-5191,-5191,-5191,-5191,-5191,
+    -5191,-5191,-5191,-5191,-5191
+    },
+
+    {
+       27,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,
+    -5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,
+    -5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192, 5264,-5192,
+    -5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,
+    -5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,-5192,
+    -5192,-5192,-5192, 5264,-5192,-5192,-5192,-5192,-5192,-5192,
+
+    -5192,-5192,-5192,-5192,-5192
+    },
+
+    {
+       27,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,
+    -5193,-5193,-5193,-5193, 5265,-5193,-5193,-5193,-5193,-5193,
+    -5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,
+    -5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,
+     5265,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,
+    -5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,-5193,
+    -5193,-5193,-5193,-5193,-5193
+    },
+
+    {
+       27,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,
+    -5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,
+
+    -5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,
+    -5194, 5266,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,
+    -5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,-5194,
+    -5194,-5194,-5194,-5194,-5194,-5194, 5266,-5194,-5194,-5194,
+    -5194,-5194,-5194,-5194,-5194
+    },
+
+    {
+       27,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,
+    -5195,-5195,-5195, 5267,-5195,-5195,-5195,-5195,-5195,-5195,
+    -5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,
+    -5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,
+    -5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,
+
+    -5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,-5195,
+    -5195,-5195,-5195,-5195,-5195
+    },
+
+    {
+       27,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,
+    -5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,
+    -5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,
+    -5196,-5196, 5268,-5196,-5196,-5196,-5196,-5196,-5196,-5196,
+    -5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,-5196,
+    -5196,-5196,-5196,-5196,-5196,-5196,-5196, 5268,-5196,-5196,
+    -5196,-5196,-5196,-5196,-5196
+    },
+
+    {
+       27,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,
+
+    -5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,
+    -5197,-5197,-5197,-5197,-5197,-5197,-5197, 5269,-5197,-5197,
+    -5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,
+    -5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,-5197,
+    -5197,-5197, 5269,-5197,-5197,-5197,-5197,-5197,-5197,-5197,
+    -5197,-5197,-5197,-5197,-5197
+    },
+
+    {
+       27,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,
+    -5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,
+    -5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,
+    -5198,-5198, 5270,-5198,-5198,-5198,-5198,-5198,-5198,-5198,
+
+    -5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,-5198,
+    -5198,-5198,-5198,-5198,-5198,-5198,-5198, 5270,-5198,-5198,
+    -5198,-5198,-5198,-5198,-5198
+    },
+
+    {
+       27,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,
+    -5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199, 5271,-5199,
+    -5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,
+    -5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,
+    -5199,-5199,-5199,-5199, 5271,-5199,-5199,-5199,-5199,-5199,
+    -5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,-5199,
+    -5199,-5199,-5199,-5199,-5199
+
+    },
+
+    {
+       27,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,
+    -5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,
+    -5200,-5200,-5200,-5200,-5200,-5200, 5272,-5200,-5200,-5200,
+    -5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,
+    -5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,
+    -5200, 5272,-5200,-5200,-5200,-5200,-5200,-5200,-5200,-5200,
+    -5200,-5200,-5200,-5200,-5200
+    },
+
+    {
+       27,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,
+    -5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,
+    -5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201, 5273,-5201,
+
+    -5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,
+    -5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,-5201,
+    -5201,-5201,-5201, 5273,-5201,-5201,-5201,-5201,-5201,-5201,
+    -5201,-5201,-5201,-5201,-5201
+    },
+
+    {
+       27,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,
+    -5202,-5202,-5202,-5202, 5274,-5202,-5202,-5202,-5202,-5202,
+    -5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,
+    -5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,
+     5274,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,
+    -5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,-5202,
+
+    -5202,-5202,-5202,-5202,-5202
+    },
+
+    {
+       27,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,
+    -5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,
+    -5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,
+    -5203, 5275,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,
+    -5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,-5203,
+    -5203,-5203,-5203,-5203,-5203,-5203, 5275,-5203,-5203,-5203,
+    -5203,-5203,-5203,-5203,-5203
+    },
+
+    {
+       27,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,
+    -5204,-5204,-5204, 5276,-5204,-5204,-5204,-5204,-5204,-5204,
+
+    -5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,
+    -5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,
+    -5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,
+    -5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,-5204,
+    -5204,-5204,-5204,-5204,-5204
+    },
+
+    {
+       27,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,
+    -5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,
+    -5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,
+    -5205,-5205, 5277,-5205,-5205,-5205,-5205,-5205,-5205,-5205,
+    -5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,-5205,
+
+    -5205,-5205,-5205,-5205,-5205,-5205,-5205, 5277,-5205,-5205,
+    -5205,-5205,-5205,-5205,-5205
+    },
+
+    {
+       27,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,
+    -5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,
+    -5206,-5206,-5206,-5206,-5206,-5206,-5206, 5278,-5206,-5206,
+    -5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,
+    -5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,-5206,
+    -5206,-5206, 5278,-5206,-5206,-5206,-5206,-5206,-5206,-5206,
+    -5206,-5206,-5206,-5206,-5206
+    },
+
+    {
+       27,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,
+
+    -5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,
+    -5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,
+    -5207,-5207, 5279,-5207,-5207,-5207,-5207,-5207,-5207,-5207,
+    -5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,-5207,
+    -5207,-5207,-5207,-5207,-5207,-5207,-5207, 5279,-5207,-5207,
+    -5207,-5207,-5207,-5207,-5207
+    },
+
+    {
+       27,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,
+    -5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208, 5280,-5208,
+    -5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,
+    -5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,
+
+    -5208,-5208,-5208,-5208, 5280,-5208,-5208,-5208,-5208,-5208,
+    -5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,-5208,
+    -5208,-5208,-5208,-5208,-5208
+    },
+
+    {
+       27,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,
+    -5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,
+    -5209,-5209,-5209,-5209,-5209,-5209, 5281,-5209,-5209,-5209,
+    -5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,
+    -5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,
+    -5209, 5281,-5209,-5209,-5209,-5209,-5209,-5209,-5209,-5209,
+    -5209,-5209,-5209,-5209,-5209
+
+    },
+
+    {
+       27,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,
+    -5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,
+    -5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210, 5282,-5210,
+    -5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,
+    -5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,-5210,
+    -5210,-5210,-5210, 5282,-5210,-5210,-5210,-5210,-5210,-5210,
+    -5210,-5210,-5210,-5210,-5210
+    },
+
+    {
+       27,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,
+    -5211,-5211,-5211,-5211, 5283,-5211,-5211,-5211,-5211,-5211,
+    -5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,
+
+    -5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,
+     5283,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,
+    -5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,-5211,
+    -5211,-5211,-5211,-5211,-5211
+    },
+
+    {
+       27,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,
+    -5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,
+    -5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,
+    -5212, 5284,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,
+    -5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,-5212,
+    -5212,-5212,-5212,-5212,-5212,-5212, 5284,-5212,-5212,-5212,
+
+    -5212,-5212,-5212,-5212,-5212
+    },
+
+    {
+       27,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,
+    -5213,-5213,-5213, 5285,-5213,-5213,-5213,-5213,-5213,-5213,
+    -5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,
+    -5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,
+    -5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,
+    -5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,-5213,
+    -5213,-5213,-5213,-5213,-5213
+    },
+
+    {
+       27,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,
+    -5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,
+
+    -5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,
+    -5214,-5214, 5286,-5214,-5214,-5214,-5214,-5214,-5214,-5214,
+    -5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,-5214,
+    -5214,-5214,-5214,-5214,-5214,-5214,-5214, 5286,-5214,-5214,
+    -5214,-5214,-5214,-5214,-5214
+    },
+
+    {
+       27,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,
+    -5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,
+    -5215,-5215,-5215,-5215,-5215,-5215,-5215, 5287,-5215,-5215,
+    -5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,
+    -5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,-5215,
+
+    -5215,-5215, 5287,-5215,-5215,-5215,-5215,-5215,-5215,-5215,
+    -5215,-5215,-5215,-5215,-5215
+    },
+
+    {
+       27,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,
+    -5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,
+    -5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,
+    -5216,-5216, 5288,-5216,-5216,-5216,-5216,-5216,-5216,-5216,
+    -5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,-5216,
+    -5216,-5216,-5216,-5216,-5216,-5216,-5216, 5288,-5216,-5216,
+    -5216,-5216,-5216,-5216,-5216
+    },
+
+    {
+       27,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,
+
+    -5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217, 5289,-5217,
+    -5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,
+    -5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,
+    -5217,-5217,-5217,-5217, 5289,-5217,-5217,-5217,-5217,-5217,
+    -5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,-5217,
+    -5217,-5217,-5217,-5217,-5217
+    },
+
+    {
+       27,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,
+    -5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,
+    -5218,-5218,-5218,-5218,-5218,-5218, 5290,-5218,-5218,-5218,
+    -5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,
+
+    -5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,
+    -5218, 5290,-5218,-5218,-5218,-5218,-5218,-5218,-5218,-5218,
+    -5218,-5218,-5218,-5218,-5218
+    },
+
+    {
+       27,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,
+    -5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,
+    -5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219, 5291,-5219,
+    -5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,
+    -5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,-5219,
+    -5219,-5219,-5219, 5291,-5219,-5219,-5219,-5219,-5219,-5219,
+    -5219,-5219,-5219,-5219,-5219
+
+    },
+
+    {
+       27,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,
+    -5220,-5220,-5220,-5220, 5292,-5220,-5220,-5220,-5220,-5220,
+    -5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,
+    -5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,
+     5292,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,
+    -5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,-5220,
+    -5220,-5220,-5220,-5220,-5220
+    },
+
+    {
+       27,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,
+    -5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,
+    -5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,
+
+    -5221, 5293,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,
+    -5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,-5221,
+    -5221,-5221,-5221,-5221,-5221,-5221, 5293,-5221,-5221,-5221,
+    -5221,-5221,-5221,-5221,-5221
+    },
+
+    {
+       27,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,
+    -5222,-5222,-5222, 5294,-5222,-5222,-5222,-5222,-5222,-5222,
+    -5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,
+    -5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,
+    -5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,
+    -5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,-5222,
+
+    -5222,-5222,-5222,-5222,-5222
+    },
+
+    {
+       27,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,
+    -5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,
+    -5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,
+    -5223,-5223, 5295,-5223,-5223,-5223,-5223,-5223,-5223,-5223,
+    -5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,-5223,
+    -5223,-5223,-5223,-5223,-5223,-5223,-5223, 5295,-5223,-5223,
+    -5223,-5223,-5223,-5223,-5223
+    },
+
+    {
+       27,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,
+    -5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,
+
+    -5224,-5224,-5224,-5224,-5224,-5224,-5224, 5296,-5224,-5224,
+    -5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,
+    -5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,-5224,
+    -5224,-5224, 5296,-5224,-5224,-5224,-5224,-5224,-5224,-5224,
+    -5224,-5224,-5224,-5224,-5224
+    },
+
+    {
+       27,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,
+    -5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,
+    -5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,
+    -5225,-5225, 5297,-5225,-5225,-5225,-5225,-5225,-5225,-5225,
+    -5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,-5225,
+
+    -5225,-5225,-5225,-5225,-5225,-5225,-5225, 5297,-5225,-5225,
+    -5225,-5225,-5225,-5225,-5225
+    },
+
+    {
+       27,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,
+    -5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226, 5298,-5226,
+    -5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,
+    -5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,
+    -5226,-5226,-5226,-5226, 5298,-5226,-5226,-5226,-5226,-5226,
+    -5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,-5226,
+    -5226,-5226,-5226,-5226,-5226
+    },
+
+    {
+       27,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,
+
+    -5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,
+    -5227,-5227,-5227,-5227,-5227,-5227, 5299,-5227,-5227,-5227,
+    -5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,
+    -5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,
+    -5227, 5299,-5227,-5227,-5227,-5227,-5227,-5227,-5227,-5227,
+    -5227,-5227,-5227,-5227,-5227
+    },
+
+    {
+       27,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,
+    -5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,
+    -5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228, 5300,-5228,
+    -5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,
+
+    -5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,-5228,
+    -5228,-5228,-5228, 5300,-5228,-5228,-5228,-5228,-5228,-5228,
+    -5228,-5228,-5228,-5228,-5228
+    },
+
+    {
+       27,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,
+    -5229,-5229,-5229,-5229, 5301,-5229,-5229,-5229,-5229,-5229,
+    -5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,
+    -5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,
+     5301,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,
+    -5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,-5229,
+    -5229,-5229,-5229,-5229,-5229
+
+    },
+
+    {
+       27,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,
+    -5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,
+    -5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,
+    -5230, 5302,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,
+    -5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,-5230,
+    -5230,-5230,-5230,-5230,-5230,-5230, 5302,-5230,-5230,-5230,
+    -5230,-5230,-5230,-5230,-5230
+    },
+
+    {
+       27,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,
+    -5231,-5231,-5231, 5303,-5231,-5231,-5231,-5231,-5231,-5231,
+    -5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,
+
+    -5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,
+    -5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,
+    -5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,-5231,
+    -5231,-5231,-5231,-5231,-5231
+    },
+
+    {
+       27,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,
+    -5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,
+    -5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,
+    -5232,-5232, 5304,-5232,-5232,-5232,-5232,-5232,-5232,-5232,
+    -5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,-5232,
+    -5232,-5232,-5232,-5232,-5232,-5232,-5232, 5304,-5232,-5232,
+
+    -5232,-5232,-5232,-5232,-5232
+    },
+
+    {
+       27,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,
+    -5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,
+    -5233,-5233,-5233,-5233,-5233,-5233,-5233, 5305,-5233,-5233,
+    -5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,
+    -5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,-5233,
+    -5233,-5233, 5305,-5233,-5233,-5233,-5233,-5233,-5233,-5233,
+    -5233,-5233,-5233,-5233,-5233
+    },
+
+    {
+       27,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,
+    -5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,
+
+    -5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,
+    -5234,-5234, 5306,-5234,-5234,-5234,-5234,-5234,-5234,-5234,
+    -5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,-5234,
+    -5234,-5234,-5234,-5234,-5234,-5234,-5234, 5306,-5234,-5234,
+    -5234,-5234,-5234,-5234,-5234
+    },
+
+    {
+       27,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,
+    -5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235, 5307,-5235,
+    -5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,
+    -5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,
+    -5235,-5235,-5235,-5235, 5307,-5235,-5235,-5235,-5235,-5235,
+
+    -5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,-5235,
+    -5235,-5235,-5235,-5235,-5235
+    },
+
+    {
+       27,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,
+    -5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,
+    -5236,-5236,-5236,-5236,-5236,-5236, 5308,-5236,-5236,-5236,
+    -5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,
+    -5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,
+    -5236, 5308,-5236,-5236,-5236,-5236,-5236,-5236,-5236,-5236,
+    -5236,-5236,-5236,-5236,-5236
+    },
+
+    {
+       27,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,
+
+    -5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,
+    -5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237, 5309,-5237,
+    -5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,
+    -5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,-5237,
+    -5237,-5237,-5237, 5309,-5237,-5237,-5237,-5237,-5237,-5237,
+    -5237,-5237,-5237,-5237,-5237
+    },
+
+    {
+       27,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,
+    -5238,-5238,-5238,-5238, 5310,-5238,-5238,-5238,-5238,-5238,
+    -5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,
+    -5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,
+
+     5310,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,
+    -5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,-5238,
+    -5238,-5238,-5238,-5238,-5238
+    },
+
+    {
+       27,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,
+    -5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,
+    -5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,
+    -5239, 5311,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,
+    -5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,-5239,
+    -5239,-5239,-5239,-5239,-5239,-5239, 5311,-5239,-5239,-5239,
+    -5239,-5239,-5239,-5239,-5239
+
+    },
+
+    {
+       27,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,
+    -5240,-5240,-5240, 5312,-5240,-5240,-5240,-5240,-5240,-5240,
+    -5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,
+    -5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,
+    -5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,
+    -5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,-5240,
+    -5240,-5240,-5240,-5240,-5240
+    },
+
+    {
+       27,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,
+    -5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,
+    -5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,
+
+    -5241,-5241, 5313,-5241,-5241,-5241,-5241,-5241,-5241,-5241,
+    -5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,-5241,
+    -5241,-5241,-5241,-5241,-5241,-5241,-5241, 5313,-5241,-5241,
+    -5241,-5241,-5241,-5241,-5241
+    },
+
+    {
+       27,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,
+    -5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,
+    -5242,-5242,-5242,-5242,-5242,-5242,-5242, 5314,-5242,-5242,
+    -5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,
+    -5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,-5242,
+    -5242,-5242, 5314,-5242,-5242,-5242,-5242,-5242,-5242,-5242,
+
+    -5242,-5242,-5242,-5242,-5242
+    },
+
+    {
+       27,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,
+    -5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,
+    -5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,
+    -5243,-5243, 5315,-5243,-5243,-5243,-5243,-5243,-5243,-5243,
+    -5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,-5243,
+    -5243,-5243,-5243,-5243,-5243,-5243,-5243, 5315,-5243,-5243,
+    -5243,-5243,-5243,-5243,-5243
+    },
+
+    {
+       27,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,
+    -5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244, 5316,-5244,
+
+    -5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,
+    -5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,
+    -5244,-5244,-5244,-5244, 5316,-5244,-5244,-5244,-5244,-5244,
+    -5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,-5244,
+    -5244,-5244,-5244,-5244,-5244
+    },
+
+    {
+       27,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,
+    -5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,
+    -5245,-5245,-5245,-5245,-5245,-5245, 5317,-5245,-5245,-5245,
+    -5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,
+    -5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,
+
+    -5245, 5317,-5245,-5245,-5245,-5245,-5245,-5245,-5245,-5245,
+    -5245,-5245,-5245,-5245,-5245
+    },
+
+    {
+       27,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,
+    -5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,
+    -5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246, 5318,-5246,
+    -5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,
+    -5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,-5246,
+    -5246,-5246,-5246, 5318,-5246,-5246,-5246,-5246,-5246,-5246,
+    -5246,-5246,-5246,-5246,-5246
+    },
+
+    {
+       27,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,
+
+    -5247,-5247,-5247,-5247, 5319,-5247,-5247,-5247,-5247,-5247,
+    -5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,
+    -5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,
+     5319,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,
+    -5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,-5247,
+    -5247,-5247,-5247,-5247,-5247
+    },
+
+    {
+       27,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,
+    -5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,
+    -5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,
+    -5248, 5320,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,
+
+    -5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,-5248,
+    -5248,-5248,-5248,-5248,-5248,-5248, 5320,-5248,-5248,-5248,
+    -5248,-5248,-5248,-5248,-5248
+    },
+
+    {
+       27,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,
+    -5249,-5249,-5249, 5321,-5249,-5249,-5249,-5249,-5249,-5249,
+    -5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,
+    -5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,
+    -5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,
+    -5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,-5249,
+    -5249,-5249,-5249,-5249,-5249
+
+    },
+
+    {
+       27,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,
+    -5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,
+    -5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,
+    -5250,-5250, 5322,-5250,-5250,-5250,-5250,-5250,-5250,-5250,
+    -5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,-5250,
+    -5250,-5250,-5250,-5250,-5250,-5250,-5250, 5322,-5250,-5250,
+    -5250,-5250,-5250,-5250,-5250
+    },
+
+    {
+       27,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,
+    -5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,
+    -5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,
+
+    -5251,-5251,-5251, 5323,-5251,-5251,-5251,-5251,-5251,-5251,
+    -5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251,
+    -5251,-5251,-5251,-5251,-5251,-5251,-5251,-5251, 5323,-5251,
+    -5251,-5251,-5251,-5251,-5251
+    },
+
+    {
+       27,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,
+    -5252,-5252,-5252, 5324,-5252,-5252,-5252,-5252,-5252,-5252,
+    -5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,
+    -5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,
+    -5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,
+    -5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,-5252,
+
+    -5252,-5252,-5252,-5252,-5252
+    },
+
+    {
+       27,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,
+    -5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,
+    -5253,-5253,-5253,-5253,-5253,-5253,-5253, 5325,-5253,-5253,
+    -5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,
+    -5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,-5253,
+    -5253,-5253, 5325,-5253,-5253,-5253,-5253,-5253,-5253,-5253,
+    -5253,-5253,-5253,-5253,-5253
+    },
+
+    {
+       27,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,
+    -5254,-5254,-5254, 5326,-5254,-5254,-5254,-5254,-5254,-5254,
+
+    -5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,
+    -5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,
+    -5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,
+    -5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,-5254,
+    -5254,-5254,-5254,-5254,-5254
+    },
+
+    {
+       27,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,
+    -5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,
+    -5255,-5255,-5255,-5255,-5255,-5255,-5255, 5327,-5255,-5255,
+    -5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,
+    -5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,-5255,
+
+    -5255,-5255, 5327,-5255,-5255,-5255,-5255,-5255,-5255,-5255,
+    -5255,-5255,-5255,-5255,-5255
+    },
+
+    {
+       27,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,
+    -5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,
+    -5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,
+    -5256, 5328,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,
+    -5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,-5256,
+    -5256,-5256,-5256,-5256,-5256,-5256, 5328,-5256,-5256,-5256,
+    -5256,-5256,-5256,-5256,-5256
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 4891,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5258, 5329, 5329,-5258,-5258,-5258,-5258,-5258,-5258,
+    -5258,-5258, 5330,-5258,-5258,-5258,-5258,-5258,-5258,-5258,
+    -5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,
+    -5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,
+
+    -5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,
+    -5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,-5258,
+    -5258,-5258,-5258,-5258,-5258
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184, 5331,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184, 5331,  184,
+      184,  184,  184,  184,  184
+
+    },
+
+    {
+       27,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,
+    -5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,
+    -5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,
+    -5260,-5260,-5260, 5332,-5260,-5260,-5260,-5260,-5260,-5260,
+    -5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260,
+    -5260,-5260,-5260,-5260,-5260,-5260,-5260,-5260, 5332,-5260,
+    -5260,-5260,-5260,-5260,-5260
+    },
+
+    {
+       27,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,
+    -5261,-5261,-5261, 5333,-5261,-5261,-5261,-5261,-5261,-5261,
+    -5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,
+
+    -5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,
+    -5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,
+    -5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,-5261,
+    -5261,-5261,-5261,-5261,-5261
+    },
+
+    {
+       27,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,
+    -5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,
+    -5262,-5262,-5262,-5262,-5262,-5262,-5262, 5334,-5262,-5262,
+    -5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,
+    -5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,-5262,
+    -5262,-5262, 5334,-5262,-5262,-5262,-5262,-5262,-5262,-5262,
+
+    -5262,-5262,-5262,-5262,-5262
+    },
+
+    {
+       27,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,
+    -5263,-5263,-5263, 5335,-5263,-5263,-5263,-5263,-5263,-5263,
+    -5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,
+    -5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,
+    -5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,
+    -5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,-5263,
+    -5263,-5263,-5263,-5263,-5263
+    },
+
+    {
+       27,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,
+    -5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,
+
+    -5264,-5264,-5264,-5264,-5264,-5264,-5264, 5336,-5264,-5264,
+    -5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,
+    -5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,-5264,
+    -5264,-5264, 5336,-5264,-5264,-5264,-5264,-5264,-5264,-5264,
+    -5264,-5264,-5264,-5264,-5264
+    },
+
+    {
+       27,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,
+    -5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,
+    -5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,
+    -5265, 5337,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,
+    -5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,-5265,
+
+    -5265,-5265,-5265,-5265,-5265,-5265, 5337,-5265,-5265,-5265,
+    -5265,-5265,-5265,-5265,-5265
+    },
+
+    {
+       27,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266, 4906,
+    -5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,
+    -5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,
+    -5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,
+    -5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,
+    -5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,-5266,
+    -5266,-5266,-5266,-5266,-5266
+    },
+
+    {
+       27,-5267, 5338, 5338,-5267,-5267,-5267,-5267,-5267,-5267,
+
+    -5267,-5267, 5339,-5267,-5267,-5267,-5267,-5267,-5267,-5267,
+    -5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,
+    -5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,
+    -5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,
+    -5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,-5267,
+    -5267,-5267,-5267,-5267,-5267
+    },
+
+    {
+       27,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,
+    -5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,
+    -5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,
+    -5268,-5268,-5268, 5340,-5268,-5268,-5268,-5268,-5268,-5268,
+
+    -5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268,
+    -5268,-5268,-5268,-5268,-5268,-5268,-5268,-5268, 5340,-5268,
+    -5268,-5268,-5268,-5268,-5268
+    },
+
+    {
+       27,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,
+    -5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,
+    -5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,
+    -5269,-5269,-5269, 5341,-5269,-5269,-5269,-5269,-5269,-5269,
+    -5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269,
+    -5269,-5269,-5269,-5269,-5269,-5269,-5269,-5269, 5341,-5269,
+    -5269,-5269,-5269,-5269,-5269
+
+    },
+
+    {
+       27,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,
+    -5270,-5270,-5270, 5342,-5270,-5270,-5270,-5270,-5270,-5270,
+    -5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,
+    -5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,
+    -5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,
+    -5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,-5270,
+    -5270,-5270,-5270,-5270,-5270
+    },
+
+    {
+       27,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,
+    -5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,
+    -5271,-5271,-5271,-5271,-5271,-5271,-5271, 5343,-5271,-5271,
+
+    -5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,
+    -5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,-5271,
+    -5271,-5271, 5343,-5271,-5271,-5271,-5271,-5271,-5271,-5271,
+    -5271,-5271,-5271,-5271,-5271
+    },
+
+    {
+       27,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,
+    -5272,-5272,-5272, 5344,-5272,-5272,-5272,-5272,-5272,-5272,
+    -5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,
+    -5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,
+    -5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,
+    -5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,-5272,
+
+    -5272,-5272,-5272,-5272,-5272
+    },
+
+    {
+       27,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,
+    -5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,
+    -5273,-5273,-5273,-5273,-5273,-5273,-5273, 5345,-5273,-5273,
+    -5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,
+    -5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,-5273,
+    -5273,-5273, 5345,-5273,-5273,-5273,-5273,-5273,-5273,-5273,
+    -5273,-5273,-5273,-5273,-5273
+    },
+
+    {
+       27,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,
+    -5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,
+
+    -5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,
+    -5274, 5346,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,
+    -5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,-5274,
+    -5274,-5274,-5274,-5274,-5274,-5274, 5346,-5274,-5274,-5274,
+    -5274,-5274,-5274,-5274,-5274
+    },
+
+    {
+       27,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275, 4920,
+    -5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,
+    -5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,
+    -5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,
+    -5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,
+
+    -5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,-5275,
+    -5275,-5275,-5275,-5275,-5275
+    },
+
+    {
+       27,-5276, 5347, 5347,-5276,-5276,-5276,-5276,-5276,-5276,
+    -5276,-5276, 5348,-5276,-5276,-5276,-5276,-5276,-5276,-5276,
+    -5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,
+    -5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,
+    -5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,
+    -5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,-5276,
+    -5276,-5276,-5276,-5276,-5276
+    },
+
+    {
+       27,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,
+
+    -5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,
+    -5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,
+    -5277,-5277,-5277, 5349,-5277,-5277,-5277,-5277,-5277,-5277,
+    -5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277,
+    -5277,-5277,-5277,-5277,-5277,-5277,-5277,-5277, 5349,-5277,
+    -5277,-5277,-5277,-5277,-5277
+    },
+
+    {
+       27,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,
+    -5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,
+    -5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,
+    -5278,-5278,-5278, 5350,-5278,-5278,-5278,-5278,-5278,-5278,
+
+    -5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278,
+    -5278,-5278,-5278,-5278,-5278,-5278,-5278,-5278, 5350,-5278,
+    -5278,-5278,-5278,-5278,-5278
+    },
+
+    {
+       27,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,
+    -5279,-5279,-5279, 5351,-5279,-5279,-5279,-5279,-5279,-5279,
+    -5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,
+    -5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,
+    -5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,
+    -5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,-5279,
+    -5279,-5279,-5279,-5279,-5279
+
+    },
+
+    {
+       27,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,
+    -5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,
+    -5280,-5280,-5280,-5280,-5280,-5280,-5280, 5352,-5280,-5280,
+    -5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,
+    -5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,-5280,
+    -5280,-5280, 5352,-5280,-5280,-5280,-5280,-5280,-5280,-5280,
+    -5280,-5280,-5280,-5280,-5280
+    },
+
+    {
+       27,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,
+    -5281,-5281,-5281, 5353,-5281,-5281,-5281,-5281,-5281,-5281,
+    -5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,
+
+    -5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,
+    -5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,
+    -5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,-5281,
+    -5281,-5281,-5281,-5281,-5281
+    },
+
+    {
+       27,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,
+    -5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,
+    -5282,-5282,-5282,-5282,-5282,-5282,-5282, 5354,-5282,-5282,
+    -5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,
+    -5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,-5282,
+    -5282,-5282, 5354,-5282,-5282,-5282,-5282,-5282,-5282,-5282,
+
+    -5282,-5282,-5282,-5282,-5282
+    },
+
+    {
+       27,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,
+    -5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,
+    -5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,
+    -5283, 5355,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,
+    -5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,-5283,
+    -5283,-5283,-5283,-5283,-5283,-5283, 5355,-5283,-5283,-5283,
+    -5283,-5283,-5283,-5283,-5283
+    },
+
+    {
+       27,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284, 4934,
+    -5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,
+
+    -5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,
+    -5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,
+    -5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,
+    -5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,-5284,
+    -5284,-5284,-5284,-5284,-5284
+    },
+
+    {
+       27,-5285, 5356, 5356,-5285,-5285,-5285,-5285,-5285,-5285,
+    -5285,-5285, 5357,-5285,-5285,-5285,-5285,-5285,-5285,-5285,
+    -5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,
+    -5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,
+    -5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,
+
+    -5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,-5285,
+    -5285,-5285,-5285,-5285,-5285
+    },
+
+    {
+       27,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,
+    -5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,
+    -5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,
+    -5286,-5286,-5286, 5358,-5286,-5286,-5286,-5286,-5286,-5286,
+    -5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286,
+    -5286,-5286,-5286,-5286,-5286,-5286,-5286,-5286, 5358,-5286,
+    -5286,-5286,-5286,-5286,-5286
+    },
+
+    {
+       27,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,
+
+    -5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,
+    -5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,
+    -5287,-5287,-5287, 5359,-5287,-5287,-5287,-5287,-5287,-5287,
+    -5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287,
+    -5287,-5287,-5287,-5287,-5287,-5287,-5287,-5287, 5359,-5287,
+    -5287,-5287,-5287,-5287,-5287
+    },
+
+    {
+       27,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,
+    -5288,-5288,-5288, 5360,-5288,-5288,-5288,-5288,-5288,-5288,
+    -5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,
+    -5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,
+
+    -5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,
+    -5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,-5288,
+    -5288,-5288,-5288,-5288,-5288
+    },
+
+    {
+       27,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,
+    -5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,
+    -5289,-5289,-5289,-5289,-5289,-5289,-5289, 5361,-5289,-5289,
+    -5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,
+    -5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,-5289,
+    -5289,-5289, 5361,-5289,-5289,-5289,-5289,-5289,-5289,-5289,
+    -5289,-5289,-5289,-5289,-5289
+
+    },
+
+    {
+       27,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,
+    -5290,-5290,-5290, 5362,-5290,-5290,-5290,-5290,-5290,-5290,
+    -5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,
+    -5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,
+    -5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,
+    -5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,-5290,
+    -5290,-5290,-5290,-5290,-5290
+    },
+
+    {
+       27,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,
+    -5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,
+    -5291,-5291,-5291,-5291,-5291,-5291,-5291, 5363,-5291,-5291,
+
+    -5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,
+    -5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,-5291,
+    -5291,-5291, 5363,-5291,-5291,-5291,-5291,-5291,-5291,-5291,
+    -5291,-5291,-5291,-5291,-5291
+    },
+
+    {
+       27,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,
+    -5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,
+    -5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,
+    -5292, 5364,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,
+    -5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,-5292,
+    -5292,-5292,-5292,-5292,-5292,-5292, 5364,-5292,-5292,-5292,
+
+    -5292,-5292,-5292,-5292,-5292
+    },
+
+    {
+       27,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293, 4948,
+    -5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,
+    -5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,
+    -5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,
+    -5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,
+    -5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,-5293,
+    -5293,-5293,-5293,-5293,-5293
+    },
+
+    {
+       27,-5294, 5365, 5365,-5294,-5294,-5294,-5294,-5294,-5294,
+    -5294,-5294, 5366,-5294,-5294,-5294,-5294,-5294,-5294,-5294,
+
+    -5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,
+    -5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,
+    -5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,
+    -5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,-5294,
+    -5294,-5294,-5294,-5294,-5294
+    },
+
+    {
+       27,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,
+    -5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,
+    -5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,
+    -5295,-5295,-5295, 5367,-5295,-5295,-5295,-5295,-5295,-5295,
+    -5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295,
+
+    -5295,-5295,-5295,-5295,-5295,-5295,-5295,-5295, 5367,-5295,
+    -5295,-5295,-5295,-5295,-5295
+    },
+
+    {
+       27,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,
+    -5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,
+    -5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,
+    -5296,-5296,-5296, 5368,-5296,-5296,-5296,-5296,-5296,-5296,
+    -5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296,
+    -5296,-5296,-5296,-5296,-5296,-5296,-5296,-5296, 5368,-5296,
+    -5296,-5296,-5296,-5296,-5296
+    },
+
+    {
+       27,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,
+
+    -5297,-5297,-5297, 5369,-5297,-5297,-5297,-5297,-5297,-5297,
+    -5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,
+    -5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,
+    -5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,
+    -5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,-5297,
+    -5297,-5297,-5297,-5297,-5297
+    },
+
+    {
+       27,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,
+    -5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,
+    -5298,-5298,-5298,-5298,-5298,-5298,-5298, 5370,-5298,-5298,
+    -5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,
+
+    -5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,-5298,
+    -5298,-5298, 5370,-5298,-5298,-5298,-5298,-5298,-5298,-5298,
+    -5298,-5298,-5298,-5298,-5298
+    },
+
+    {
+       27,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,
+    -5299,-5299,-5299, 5371,-5299,-5299,-5299,-5299,-5299,-5299,
+    -5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,
+    -5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,
+    -5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,
+    -5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,-5299,
+    -5299,-5299,-5299,-5299,-5299
+
+    },
+
+    {
+       27,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,
+    -5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,
+    -5300,-5300,-5300,-5300,-5300,-5300,-5300, 5372,-5300,-5300,
+    -5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,
+    -5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,-5300,
+    -5300,-5300, 5372,-5300,-5300,-5300,-5300,-5300,-5300,-5300,
+    -5300,-5300,-5300,-5300,-5300
+    },
+
+    {
+       27,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,
+    -5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,
+    -5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,
+
+    -5301, 5373,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,
+    -5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,-5301,
+    -5301,-5301,-5301,-5301,-5301,-5301, 5373,-5301,-5301,-5301,
+    -5301,-5301,-5301,-5301,-5301
+    },
+
+    {
+       27,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302, 4962,
+    -5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,
+    -5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,
+    -5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,
+    -5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,
+    -5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,-5302,
+
+    -5302,-5302,-5302,-5302,-5302
+    },
+
+    {
+       27,-5303, 5374, 5374,-5303,-5303,-5303,-5303,-5303,-5303,
+    -5303,-5303, 5375,-5303,-5303,-5303,-5303,-5303,-5303,-5303,
+    -5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,
+    -5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,
+    -5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,
+    -5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,-5303,
+    -5303,-5303,-5303,-5303,-5303
+    },
+
+    {
+       27,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,
+    -5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,
+
+    -5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,
+    -5304,-5304,-5304, 5376,-5304,-5304,-5304,-5304,-5304,-5304,
+    -5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304,
+    -5304,-5304,-5304,-5304,-5304,-5304,-5304,-5304, 5376,-5304,
+    -5304,-5304,-5304,-5304,-5304
+    },
+
+    {
+       27,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,
+    -5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,
+    -5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,
+    -5305,-5305,-5305, 5377,-5305,-5305,-5305,-5305,-5305,-5305,
+    -5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305,
+
+    -5305,-5305,-5305,-5305,-5305,-5305,-5305,-5305, 5377,-5305,
+    -5305,-5305,-5305,-5305,-5305
+    },
+
+    {
+       27,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,
+    -5306,-5306,-5306, 5378,-5306,-5306,-5306,-5306,-5306,-5306,
+    -5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,
+    -5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,
+    -5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,
+    -5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,-5306,
+    -5306,-5306,-5306,-5306,-5306
+    },
+
+    {
+       27,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,
+
+    -5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,
+    -5307,-5307,-5307,-5307,-5307,-5307,-5307, 5379,-5307,-5307,
+    -5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,
+    -5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,-5307,
+    -5307,-5307, 5379,-5307,-5307,-5307,-5307,-5307,-5307,-5307,
+    -5307,-5307,-5307,-5307,-5307
+    },
+
+    {
+       27,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,
+    -5308,-5308,-5308, 5380,-5308,-5308,-5308,-5308,-5308,-5308,
+    -5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,
+    -5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,
+
+    -5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,
+    -5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,-5308,
+    -5308,-5308,-5308,-5308,-5308
+    },
+
+    {
+       27,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,
+    -5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,
+    -5309,-5309,-5309,-5309,-5309,-5309,-5309, 5381,-5309,-5309,
+    -5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,
+    -5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,-5309,
+    -5309,-5309, 5381,-5309,-5309,-5309,-5309,-5309,-5309,-5309,
+    -5309,-5309,-5309,-5309,-5309
+
+    },
+
+    {
+       27,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,
+    -5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,
+    -5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,
+    -5310, 5382,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,
+    -5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,-5310,
+    -5310,-5310,-5310,-5310,-5310,-5310, 5382,-5310,-5310,-5310,
+    -5310,-5310,-5310,-5310,-5310
+    },
+
+    {
+       27,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311, 4977,
+    -5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,
+    -5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,
+
+    -5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,
+    -5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,
+    -5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,-5311,
+    -5311,-5311,-5311,-5311,-5311
+    },
+
+    {
+       27,-5312, 5383, 5383,-5312,-5312,-5312,-5312,-5312,-5312,
+    -5312,-5312, 5384,-5312,-5312,-5312,-5312,-5312,-5312,-5312,
+    -5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,
+    -5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,
+    -5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,
+    -5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,-5312,
+
+    -5312,-5312,-5312,-5312,-5312
+    },
+
+    {
+       27,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,
+    -5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,
+    -5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,
+    -5313,-5313,-5313, 5385,-5313,-5313,-5313,-5313,-5313,-5313,
+    -5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313,
+    -5313,-5313,-5313,-5313,-5313,-5313,-5313,-5313, 5385,-5313,
+    -5313,-5313,-5313,-5313,-5313
+    },
+
+    {
+       27,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,
+    -5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,
+
+    -5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,
+    -5314,-5314,-5314, 5386,-5314,-5314,-5314,-5314,-5314,-5314,
+    -5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314,
+    -5314,-5314,-5314,-5314,-5314,-5314,-5314,-5314, 5386,-5314,
+    -5314,-5314,-5314,-5314,-5314
+    },
+
+    {
+       27,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,
+    -5315,-5315,-5315, 5387,-5315,-5315,-5315,-5315,-5315,-5315,
+    -5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,
+    -5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,
+    -5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,
+
+    -5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,-5315,
+    -5315,-5315,-5315,-5315,-5315
+    },
+
+    {
+       27,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,
+    -5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,
+    -5316,-5316,-5316,-5316,-5316,-5316,-5316, 5388,-5316,-5316,
+    -5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,
+    -5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,-5316,
+    -5316,-5316, 5388,-5316,-5316,-5316,-5316,-5316,-5316,-5316,
+    -5316,-5316,-5316,-5316,-5316
+    },
+
+    {
+       27,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,
+
+    -5317,-5317,-5317, 5389,-5317,-5317,-5317,-5317,-5317,-5317,
+    -5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,
+    -5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,
+    -5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,
+    -5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,-5317,
+    -5317,-5317,-5317,-5317,-5317
+    },
+
+    {
+       27,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,
+    -5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,
+    -5318,-5318,-5318,-5318,-5318,-5318,-5318, 5390,-5318,-5318,
+    -5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,
+
+    -5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,-5318,
+    -5318,-5318, 5390,-5318,-5318,-5318,-5318,-5318,-5318,-5318,
+    -5318,-5318,-5318,-5318,-5318
+    },
+
+    {
+       27,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,
+    -5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,
+    -5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,
+    -5319, 5391,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,
+    -5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,-5319,
+    -5319,-5319,-5319,-5319,-5319,-5319, 5391,-5319,-5319,-5319,
+    -5319,-5319,-5319,-5319,-5319
+
+    },
+
+    {
+       27,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320, 4991,
+    -5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,
+    -5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,
+    -5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,
+    -5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,
+    -5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,-5320,
+    -5320,-5320,-5320,-5320,-5320
+    },
+
+    {
+       27,-5321, 5392, 5392,-5321,-5321,-5321,-5321,-5321,-5321,
+    -5321,-5321, 5393,-5321,-5321,-5321,-5321,-5321,-5321,-5321,
+    -5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,
+
+    -5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,
+    -5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,
+    -5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,-5321,
+    -5321,-5321,-5321,-5321,-5321
+    },
+
+    {
+       27,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,
+    -5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,
+    -5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,
+    -5322,-5322,-5322, 5394,-5322,-5322,-5322,-5322,-5322,-5322,
+    -5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322,
+    -5322,-5322,-5322,-5322,-5322,-5322,-5322,-5322, 5394,-5322,
+
+    -5322,-5322,-5322,-5322,-5322
+    },
+
+    {
+       27,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,
+    -5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323, 5395,-5323,
+    -5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,
+    -5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,
+    -5323,-5323,-5323,-5323, 5395,-5323,-5323,-5323,-5323,-5323,
+    -5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,-5323,
+    -5323,-5323,-5323,-5323,-5323
+    },
+
+    {
+       27,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,
+    -5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,
+
+    -5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,
+    -5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,
+    -5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,
+    -5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,-5324,
+    -5324,-5324,-5324,-5324,-5324
+    },
+
+    {
+       27,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,
+    -5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,
+    -5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,
+    -5325,-5325,-5325, 5396,-5325,-5325,-5325,-5325,-5325,-5325,
+    -5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325,
+
+    -5325,-5325,-5325,-5325,-5325,-5325,-5325,-5325, 5396,-5325,
+    -5325,-5325,-5325,-5325,-5325
+    },
+
+    {
+       27,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,
+    -5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,
+    -5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,
+    -5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,
+    -5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,
+    -5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,-5326,
+    -5326,-5326,-5326,-5326,-5326
+    },
+
+    {
+       27,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,
+
+    -5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,
+    -5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,
+    -5327,-5327,-5327, 5397,-5327,-5327,-5327,-5327,-5327,-5327,
+    -5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327,
+    -5327,-5327,-5327,-5327,-5327,-5327,-5327,-5327, 5397,-5327,
+    -5327,-5327,-5327,-5327,-5327
+    },
+
+    {
+       27,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,
+    -5328,-5328,-5328,-5328, 5398,-5328,-5328,-5328,-5328,-5328,
+    -5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,
+    -5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,
+
+     5398,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,
+    -5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,-5328,
+    -5328,-5328,-5328,-5328,-5328
+    },
+
+    {
+       27,-5329, 5329, 5329,-5329,-5329,-5329,-5329,-5329,-5329,
+    -5329,-5329, 5330,-5329,-5329,-5329,-5329,-5329,-5329,-5329,
+    -5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,
+    -5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,
+    -5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,
+    -5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,-5329,
+    -5329,-5329,-5329,-5329,-5329
+
+    },
+
+    {
+       27,-5330,-5330,-5330,-5330,-5330,-5330,-5330,-5330,-5330,
+    -5330,-5330,-5330,-5330,-5330,-5330, 5399,-5330,-5330,-5330,
+    -5330,-5330,-5330,-5330,-5330,-5330,-5330,-5330,-5330, 5400,
+    -5330,-5330,-5330,-5330,-5330,-5330,-5330,-5330,-5330,-5330,
+    -5330,-5330, 5399,-5330,-5330,-5330,-5330,-5330,-5330,-5330,
+    -5330,-5330,-5330,-5330, 5400,-5330,-5330,-5330,-5330,-5330,
+    -5330,-5330,-5330,-5330,-5330
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185, 5401,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+     5401,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,
+    -5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332, 5402,-5332,
+    -5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,
+    -5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,
+    -5332,-5332,-5332,-5332, 5402,-5332,-5332,-5332,-5332,-5332,
+    -5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,-5332,
+
+    -5332,-5332,-5332,-5332,-5332
+    },
+
+    {
+       27,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,
+    -5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,
+    -5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,
+    -5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,
+    -5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,
+    -5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,-5333,
+    -5333,-5333,-5333,-5333,-5333
+    },
+
+    {
+       27,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,
+    -5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,
+
+    -5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,
+    -5334,-5334,-5334, 5403,-5334,-5334,-5334,-5334,-5334,-5334,
+    -5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334,
+    -5334,-5334,-5334,-5334,-5334,-5334,-5334,-5334, 5403,-5334,
+    -5334,-5334,-5334,-5334,-5334
+    },
+
+    {
+       27,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,
+    -5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,
+    -5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,
+    -5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,
+    -5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,
+
+    -5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,-5335,
+    -5335,-5335,-5335,-5335,-5335
+    },
+
+    {
+       27,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,
+    -5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,
+    -5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,
+    -5336,-5336,-5336, 5404,-5336,-5336,-5336,-5336,-5336,-5336,
+    -5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336,
+    -5336,-5336,-5336,-5336,-5336,-5336,-5336,-5336, 5404,-5336,
+    -5336,-5336,-5336,-5336,-5336
+    },
+
+    {
+       27,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,
+
+    -5337,-5337,-5337,-5337, 5405,-5337,-5337,-5337,-5337,-5337,
+    -5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,
+    -5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,
+     5405,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,
+    -5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,-5337,
+    -5337,-5337,-5337,-5337,-5337
+    },
+
+    {
+       27,-5338, 5338, 5338,-5338,-5338,-5338,-5338,-5338,-5338,
+    -5338,-5338, 5339,-5338,-5338,-5338,-5338,-5338,-5338,-5338,
+    -5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,
+    -5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,
+
+    -5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,
+    -5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,-5338,
+    -5338,-5338,-5338,-5338,-5338
+    },
+
+    {
+       27,-5339,-5339,-5339,-5339,-5339,-5339,-5339,-5339,-5339,
+    -5339,-5339,-5339,-5339,-5339,-5339, 5406,-5339,-5339,-5339,
+    -5339,-5339,-5339,-5339,-5339,-5339,-5339,-5339,-5339, 5407,
+    -5339,-5339,-5339,-5339,-5339,-5339,-5339,-5339,-5339,-5339,
+    -5339,-5339, 5406,-5339,-5339,-5339,-5339,-5339,-5339,-5339,
+    -5339,-5339,-5339,-5339, 5407,-5339,-5339,-5339,-5339,-5339,
+    -5339,-5339,-5339,-5339,-5339
+
+    },
+
+    {
+       27,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,
+    -5340,-5340,-5340,-5340, 5408,-5340,-5340,-5340,-5340,-5340,
+    -5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,
+    -5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,
+     5408,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,
+    -5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,-5340,
+    -5340,-5340,-5340,-5340,-5340
+    },
+
+    {
+       27,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,
+    -5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341, 5409,-5341,
+    -5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,
+
+    -5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,
+    -5341,-5341,-5341,-5341, 5409,-5341,-5341,-5341,-5341,-5341,
+    -5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,-5341,
+    -5341,-5341,-5341,-5341,-5341
+    },
+
+    {
+       27,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,
+    -5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,
+    -5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,
+    -5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,
+    -5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,
+    -5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,-5342,
+
+    -5342,-5342,-5342,-5342,-5342
+    },
+
+    {
+       27,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,
+    -5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,
+    -5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,
+    -5343,-5343,-5343, 5410,-5343,-5343,-5343,-5343,-5343,-5343,
+    -5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343,
+    -5343,-5343,-5343,-5343,-5343,-5343,-5343,-5343, 5410,-5343,
+    -5343,-5343,-5343,-5343,-5343
+    },
+
+    {
+       27,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,
+    -5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,
+
+    -5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,
+    -5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,
+    -5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,
+    -5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,-5344,
+    -5344,-5344,-5344,-5344,-5344
+    },
+
+    {
+       27,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,
+    -5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,
+    -5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,
+    -5345,-5345,-5345, 5411,-5345,-5345,-5345,-5345,-5345,-5345,
+    -5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345,
+
+    -5345,-5345,-5345,-5345,-5345,-5345,-5345,-5345, 5411,-5345,
+    -5345,-5345,-5345,-5345,-5345
+    },
+
+    {
+       27,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,
+    -5346,-5346,-5346,-5346, 5412,-5346,-5346,-5346,-5346,-5346,
+    -5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,
+    -5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,
+     5412,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,
+    -5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,-5346,
+    -5346,-5346,-5346,-5346,-5346
+    },
+
+    {
+       27,-5347, 5347, 5347,-5347,-5347,-5347,-5347,-5347,-5347,
+
+    -5347,-5347, 5348,-5347,-5347,-5347,-5347,-5347,-5347,-5347,
+    -5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,
+    -5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,
+    -5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,
+    -5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,-5347,
+    -5347,-5347,-5347,-5347,-5347
+    },
+
+    {
+       27,-5348,-5348,-5348,-5348,-5348,-5348,-5348,-5348,-5348,
+    -5348,-5348,-5348,-5348,-5348,-5348, 5413,-5348,-5348,-5348,
+    -5348,-5348,-5348,-5348,-5348,-5348,-5348,-5348,-5348, 5414,
+    -5348,-5348,-5348,-5348,-5348,-5348,-5348,-5348,-5348,-5348,
+
+    -5348,-5348, 5413,-5348,-5348,-5348,-5348,-5348,-5348,-5348,
+    -5348,-5348,-5348,-5348, 5414,-5348,-5348,-5348,-5348,-5348,
+    -5348,-5348,-5348,-5348,-5348
+    },
+
+    {
+       27,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,
+    -5349,-5349,-5349,-5349, 5415,-5349,-5349,-5349,-5349,-5349,
+    -5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,
+    -5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,
+     5415,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,
+    -5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,-5349,
+    -5349,-5349,-5349,-5349,-5349
+
+    },
+
+    {
+       27,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,
+    -5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350, 5416,-5350,
+    -5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,
+    -5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,
+    -5350,-5350,-5350,-5350, 5416,-5350,-5350,-5350,-5350,-5350,
+    -5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,-5350,
+    -5350,-5350,-5350,-5350,-5350
+    },
+
+    {
+       27,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,
+    -5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,
+    -5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,
+
+    -5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,
+    -5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,
+    -5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,-5351,
+    -5351,-5351,-5351,-5351,-5351
+    },
+
+    {
+       27,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,
+    -5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,
+    -5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,
+    -5352,-5352,-5352, 5417,-5352,-5352,-5352,-5352,-5352,-5352,
+    -5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352,
+    -5352,-5352,-5352,-5352,-5352,-5352,-5352,-5352, 5417,-5352,
+
+    -5352,-5352,-5352,-5352,-5352
+    },
+
+    {
+       27,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,
+    -5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,
+    -5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,
+    -5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,
+    -5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,
+    -5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,-5353,
+    -5353,-5353,-5353,-5353,-5353
+    },
+
+    {
+       27,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,
+    -5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,
+
+    -5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,
+    -5354,-5354,-5354, 5418,-5354,-5354,-5354,-5354,-5354,-5354,
+    -5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354,
+    -5354,-5354,-5354,-5354,-5354,-5354,-5354,-5354, 5418,-5354,
+    -5354,-5354,-5354,-5354,-5354
+    },
+
+    {
+       27,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,
+    -5355,-5355,-5355,-5355, 5419,-5355,-5355,-5355,-5355,-5355,
+    -5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,
+    -5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,
+     5419,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,
+
+    -5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,-5355,
+    -5355,-5355,-5355,-5355,-5355
+    },
+
+    {
+       27,-5356, 5356, 5356,-5356,-5356,-5356,-5356,-5356,-5356,
+    -5356,-5356, 5357,-5356,-5356,-5356,-5356,-5356,-5356,-5356,
+    -5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,
+    -5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,
+    -5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,
+    -5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,-5356,
+    -5356,-5356,-5356,-5356,-5356
+    },
+
+    {
+       27,-5357,-5357,-5357,-5357,-5357,-5357,-5357,-5357,-5357,
+
+    -5357,-5357,-5357,-5357,-5357,-5357, 5420,-5357,-5357,-5357,
+    -5357,-5357,-5357,-5357,-5357,-5357,-5357,-5357,-5357, 5421,
+    -5357,-5357,-5357,-5357,-5357,-5357,-5357,-5357,-5357,-5357,
+    -5357,-5357, 5420,-5357,-5357,-5357,-5357,-5357,-5357,-5357,
+    -5357,-5357,-5357,-5357, 5421,-5357,-5357,-5357,-5357,-5357,
+    -5357,-5357,-5357,-5357,-5357
+    },
+
+    {
+       27,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,
+    -5358,-5358,-5358,-5358, 5422,-5358,-5358,-5358,-5358,-5358,
+    -5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,
+    -5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,
+
+     5422,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,
+    -5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,-5358,
+    -5358,-5358,-5358,-5358,-5358
+    },
+
+    {
+       27,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,
+    -5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359, 5423,-5359,
+    -5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,
+    -5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,
+    -5359,-5359,-5359,-5359, 5423,-5359,-5359,-5359,-5359,-5359,
+    -5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,-5359,
+    -5359,-5359,-5359,-5359,-5359
+
+    },
+
+    {
+       27,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,
+    -5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,
+    -5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,
+    -5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,
+    -5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,
+    -5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,-5360,
+    -5360,-5360,-5360,-5360,-5360
+    },
+
+    {
+       27,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,
+    -5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,
+    -5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,
+
+    -5361,-5361,-5361, 5424,-5361,-5361,-5361,-5361,-5361,-5361,
+    -5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361,
+    -5361,-5361,-5361,-5361,-5361,-5361,-5361,-5361, 5424,-5361,
+    -5361,-5361,-5361,-5361,-5361
+    },
+
+    {
+       27,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,
+    -5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,
+    -5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,
+    -5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,
+    -5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,
+    -5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,-5362,
+
+    -5362,-5362,-5362,-5362,-5362
+    },
+
+    {
+       27,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,
+    -5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,
+    -5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,
+    -5363,-5363,-5363, 5425,-5363,-5363,-5363,-5363,-5363,-5363,
+    -5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363,
+    -5363,-5363,-5363,-5363,-5363,-5363,-5363,-5363, 5425,-5363,
+    -5363,-5363,-5363,-5363,-5363
+    },
+
+    {
+       27,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,
+    -5364,-5364,-5364,-5364, 5426,-5364,-5364,-5364,-5364,-5364,
+
+    -5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,
+    -5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,
+     5426,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,
+    -5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,-5364,
+    -5364,-5364,-5364,-5364,-5364
+    },
+
+    {
+       27,-5365, 5365, 5365,-5365,-5365,-5365,-5365,-5365,-5365,
+    -5365,-5365, 5366,-5365,-5365,-5365,-5365,-5365,-5365,-5365,
+    -5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,
+    -5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,
+    -5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,
+
+    -5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,-5365,
+    -5365,-5365,-5365,-5365,-5365
+    },
+
+    {
+       27,-5366,-5366,-5366,-5366,-5366,-5366,-5366,-5366,-5366,
+    -5366,-5366,-5366,-5366,-5366,-5366, 5427,-5366,-5366,-5366,
+    -5366,-5366,-5366,-5366,-5366,-5366,-5366,-5366,-5366, 5428,
+    -5366,-5366,-5366,-5366,-5366,-5366,-5366,-5366,-5366,-5366,
+    -5366,-5366, 5427,-5366,-5366,-5366,-5366,-5366,-5366,-5366,
+    -5366,-5366,-5366,-5366, 5428,-5366,-5366,-5366,-5366,-5366,
+    -5366,-5366,-5366,-5366,-5366
+    },
+
+    {
+       27,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,
+
+    -5367,-5367,-5367,-5367, 5429,-5367,-5367,-5367,-5367,-5367,
+    -5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,
+    -5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,
+     5429,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,
+    -5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,-5367,
+    -5367,-5367,-5367,-5367,-5367
+    },
+
+    {
+       27,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,
+    -5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368, 5430,-5368,
+    -5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,
+    -5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,
+
+    -5368,-5368,-5368,-5368, 5430,-5368,-5368,-5368,-5368,-5368,
+    -5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,-5368,
+    -5368,-5368,-5368,-5368,-5368
+    },
+
+    {
+       27,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,
+    -5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,
+    -5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,
+    -5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,
+    -5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,
+    -5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,-5369,
+    -5369,-5369,-5369,-5369,-5369
+
+    },
+
+    {
+       27,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,
+    -5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,
+    -5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,
+    -5370,-5370,-5370, 5431,-5370,-5370,-5370,-5370,-5370,-5370,
+    -5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370,
+    -5370,-5370,-5370,-5370,-5370,-5370,-5370,-5370, 5431,-5370,
+    -5370,-5370,-5370,-5370,-5370
+    },
+
+    {
+       27,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,
+    -5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,
+    -5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,
+
+    -5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,
+    -5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,
+    -5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,-5371,
+    -5371,-5371,-5371,-5371,-5371
+    },
+
+    {
+       27,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,
+    -5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,
+    -5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,
+    -5372,-5372,-5372, 5432,-5372,-5372,-5372,-5372,-5372,-5372,
+    -5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372,
+    -5372,-5372,-5372,-5372,-5372,-5372,-5372,-5372, 5432,-5372,
+
+    -5372,-5372,-5372,-5372,-5372
+    },
+
+    {
+       27,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,
+    -5373,-5373,-5373,-5373, 5433,-5373,-5373,-5373,-5373,-5373,
+    -5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,
+    -5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,
+     5433,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,
+    -5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,-5373,
+    -5373,-5373,-5373,-5373,-5373
+    },
+
+    {
+       27,-5374, 5374, 5374,-5374,-5374,-5374,-5374,-5374,-5374,
+    -5374,-5374, 5375,-5374,-5374,-5374,-5374,-5374,-5374,-5374,
+
+    -5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,
+    -5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,
+    -5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,
+    -5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,-5374,
+    -5374,-5374,-5374,-5374,-5374
+    },
+
+    {
+       27,-5375,-5375,-5375,-5375,-5375,-5375,-5375,-5375,-5375,
+    -5375,-5375,-5375,-5375,-5375,-5375, 5434,-5375,-5375,-5375,
+    -5375,-5375,-5375,-5375,-5375,-5375,-5375,-5375,-5375, 5435,
+    -5375,-5375,-5375,-5375,-5375,-5375,-5375,-5375,-5375,-5375,
+    -5375,-5375, 5434,-5375,-5375,-5375,-5375,-5375,-5375,-5375,
+
+    -5375,-5375,-5375,-5375, 5435,-5375,-5375,-5375,-5375,-5375,
+    -5375,-5375,-5375,-5375,-5375
+    },
+
+    {
+       27,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,
+    -5376,-5376,-5376,-5376, 5436,-5376,-5376,-5376,-5376,-5376,
+    -5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,
+    -5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,
+     5436,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,
+    -5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,-5376,
+    -5376,-5376,-5376,-5376,-5376
+    },
+
+    {
+       27,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,
+
+    -5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377, 5437,-5377,
+    -5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,
+    -5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,
+    -5377,-5377,-5377,-5377, 5437,-5377,-5377,-5377,-5377,-5377,
+    -5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,-5377,
+    -5377,-5377,-5377,-5377,-5377
+    },
+
+    {
+       27,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,
+    -5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,
+    -5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,
+    -5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,
+
+    -5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,
+    -5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,-5378,
+    -5378,-5378,-5378,-5378,-5378
+    },
+
+    {
+       27,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,
+    -5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,
+    -5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,
+    -5379,-5379,-5379, 5438,-5379,-5379,-5379,-5379,-5379,-5379,
+    -5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379,
+    -5379,-5379,-5379,-5379,-5379,-5379,-5379,-5379, 5438,-5379,
+    -5379,-5379,-5379,-5379,-5379
+
+    },
+
+    {
+       27,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,
+    -5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,
+    -5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,
+    -5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,
+    -5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,
+    -5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,-5380,
+    -5380,-5380,-5380,-5380,-5380
+    },
+
+    {
+       27,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,
+    -5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,
+    -5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,
+
+    -5381,-5381,-5381, 5439,-5381,-5381,-5381,-5381,-5381,-5381,
+    -5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381,
+    -5381,-5381,-5381,-5381,-5381,-5381,-5381,-5381, 5439,-5381,
+    -5381,-5381,-5381,-5381,-5381
+    },
+
+    {
+       27,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,
+    -5382,-5382,-5382,-5382, 5440,-5382,-5382,-5382,-5382,-5382,
+    -5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,
+    -5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,
+     5440,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,
+    -5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,-5382,
+
+    -5382,-5382,-5382,-5382,-5382
+    },
+
+    {
+       27,-5383, 5383, 5383,-5383,-5383,-5383,-5383,-5383,-5383,
+    -5383,-5383, 5384,-5383,-5383,-5383,-5383,-5383,-5383,-5383,
+    -5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,
+    -5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,
+    -5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,
+    -5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,-5383,
+    -5383,-5383,-5383,-5383,-5383
+    },
+
+    {
+       27,-5384,-5384,-5384,-5384,-5384,-5384,-5384,-5384,-5384,
+    -5384,-5384,-5384,-5384,-5384,-5384, 5441,-5384,-5384,-5384,
+
+    -5384,-5384,-5384,-5384,-5384,-5384,-5384,-5384,-5384, 5442,
+    -5384,-5384,-5384,-5384,-5384,-5384,-5384,-5384,-5384,-5384,
+    -5384,-5384, 5441,-5384,-5384,-5384,-5384,-5384,-5384,-5384,
+    -5384,-5384,-5384,-5384, 5442,-5384,-5384,-5384,-5384,-5384,
+    -5384,-5384,-5384,-5384,-5384
+    },
+
+    {
+       27,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,
+    -5385,-5385,-5385,-5385, 5443,-5385,-5385,-5385,-5385,-5385,
+    -5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,
+    -5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,
+     5443,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,
+
+    -5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,-5385,
+    -5385,-5385,-5385,-5385,-5385
+    },
+
+    {
+       27,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,
+    -5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386, 5444,-5386,
+    -5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,
+    -5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,
+    -5386,-5386,-5386,-5386, 5444,-5386,-5386,-5386,-5386,-5386,
+    -5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,-5386,
+    -5386,-5386,-5386,-5386,-5386
+    },
+
+    {
+       27,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,
+
+    -5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,
+    -5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,
+    -5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,
+    -5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,
+    -5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,-5387,
+    -5387,-5387,-5387,-5387,-5387
+    },
+
+    {
+       27,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,
+    -5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,
+    -5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,
+    -5388,-5388,-5388, 5445,-5388,-5388,-5388,-5388,-5388,-5388,
+
+    -5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388,
+    -5388,-5388,-5388,-5388,-5388,-5388,-5388,-5388, 5445,-5388,
+    -5388,-5388,-5388,-5388,-5388
+    },
+
+    {
+       27,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,
+    -5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,
+    -5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,
+    -5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,
+    -5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,
+    -5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,-5389,
+    -5389,-5389,-5389,-5389,-5389
+
+    },
+
+    {
+       27,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,
+    -5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,
+    -5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,
+    -5390,-5390,-5390, 5446,-5390,-5390,-5390,-5390,-5390,-5390,
+    -5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390,
+    -5390,-5390,-5390,-5390,-5390,-5390,-5390,-5390, 5446,-5390,
+    -5390,-5390,-5390,-5390,-5390
+    },
+
+    {
+       27,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,
+    -5391,-5391,-5391,-5391, 5447,-5391,-5391,-5391,-5391,-5391,
+    -5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,
+
+    -5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,
+     5447,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,
+    -5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,-5391,
+    -5391,-5391,-5391,-5391,-5391
+    },
+
+    {
+       27,-5392, 5392, 5392,-5392,-5392,-5392,-5392,-5392,-5392,
+    -5392,-5392, 5393,-5392,-5392,-5392,-5392,-5392,-5392,-5392,
+    -5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,
+    -5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,
+    -5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,
+    -5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,-5392,
+
+    -5392,-5392,-5392,-5392,-5392
+    },
+
+    {
+       27,-5393,-5393,-5393,-5393,-5393,-5393,-5393,-5393,-5393,
+    -5393,-5393,-5393,-5393,-5393,-5393, 5448,-5393,-5393,-5393,
+    -5393,-5393,-5393,-5393,-5393,-5393,-5393,-5393,-5393, 5449,
+    -5393,-5393,-5393,-5393,-5393,-5393,-5393,-5393,-5393,-5393,
+    -5393,-5393, 5448,-5393,-5393,-5393,-5393,-5393,-5393,-5393,
+    -5393,-5393,-5393,-5393, 5449,-5393,-5393,-5393,-5393,-5393,
+    -5393,-5393,-5393,-5393,-5393
+    },
+
+    {
+       27,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,
+    -5394,-5394,-5394,-5394, 5450,-5394,-5394,-5394,-5394,-5394,
+
+    -5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,
+    -5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,
+     5450,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,
+    -5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,-5394,
+    -5394,-5394,-5394,-5394,-5394
+    },
+
+    {
+       27,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,
+    -5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,
+    -5395,-5395,-5395,-5395,-5395,-5395,-5395, 5451,-5395,-5395,
+    -5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,
+    -5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,-5395,
+
+    -5395,-5395, 5451,-5395,-5395,-5395,-5395,-5395,-5395,-5395,
+    -5395,-5395,-5395,-5395,-5395
+    },
+
+    {
+       27,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,
+    -5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,
+    -5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,
+    -5396,-5396, 5452,-5396,-5396,-5396,-5396,-5396,-5396,-5396,
+    -5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,-5396,
+    -5396,-5396,-5396,-5396,-5396,-5396,-5396, 5452,-5396,-5396,
+    -5396,-5396,-5396,-5396,-5396
+    },
+
+    {
+       27,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,
+
+    -5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397, 5453,-5397,
+    -5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,
+    -5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,
+    -5397,-5397,-5397,-5397, 5453,-5397,-5397,-5397,-5397,-5397,
+    -5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,-5397,
+    -5397,-5397,-5397,-5397,-5397
+    },
+
+    {
+       27,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,
+    -5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,
+    -5398,-5398,-5398,-5398,-5398,-5398, 5454,-5398,-5398,-5398,
+    -5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,
+
+    -5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,
+    -5398, 5454,-5398,-5398,-5398,-5398,-5398,-5398,-5398,-5398,
+    -5398,-5398,-5398,-5398,-5398
+    },
+
+    {
+       27,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,
+    -5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,
+    -5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399, 5455,-5399,
+    -5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,
+    -5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,-5399,
+    -5399,-5399,-5399, 5455,-5399,-5399,-5399,-5399,-5399,-5399,
+    -5399,-5399,-5399,-5399,-5399
+
+    },
+
+    {
+       27,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,
+    -5400,-5400,-5400,-5400, 5456,-5400,-5400,-5400,-5400,-5400,
+    -5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,
+    -5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,
+     5456,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,
+    -5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,-5400,
+    -5400,-5400,-5400,-5400,-5400
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+
+      184, 5457,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184, 5457,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,
+    -5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,
+    -5402,-5402,-5402,-5402,-5402,-5402,-5402, 5458,-5402,-5402,
+    -5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,
+    -5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,-5402,
+    -5402,-5402, 5458,-5402,-5402,-5402,-5402,-5402,-5402,-5402,
+
+    -5402,-5402,-5402,-5402,-5402
+    },
+
+    {
+       27,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,
+    -5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,
+    -5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,
+    -5403,-5403, 5459,-5403,-5403,-5403,-5403,-5403,-5403,-5403,
+    -5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,-5403,
+    -5403,-5403,-5403,-5403,-5403,-5403,-5403, 5459,-5403,-5403,
+    -5403,-5403,-5403,-5403,-5403
+    },
+
+    {
+       27,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,
+    -5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404, 5460,-5404,
+
+    -5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,
+    -5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,
+    -5404,-5404,-5404,-5404, 5460,-5404,-5404,-5404,-5404,-5404,
+    -5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,-5404,
+    -5404,-5404,-5404,-5404,-5404
+    },
+
+    {
+       27,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,
+    -5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,
+    -5405,-5405,-5405,-5405,-5405,-5405, 5461,-5405,-5405,-5405,
+    -5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,
+    -5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,
+
+    -5405, 5461,-5405,-5405,-5405,-5405,-5405,-5405,-5405,-5405,
+    -5405,-5405,-5405,-5405,-5405
+    },
+
+    {
+       27,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,
+    -5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,
+    -5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406, 5462,-5406,
+    -5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,
+    -5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,-5406,
+    -5406,-5406,-5406, 5462,-5406,-5406,-5406,-5406,-5406,-5406,
+    -5406,-5406,-5406,-5406,-5406
+    },
+
+    {
+       27,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,
+
+    -5407,-5407,-5407,-5407, 5463,-5407,-5407,-5407,-5407,-5407,
+    -5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,
+    -5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,
+     5463,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,
+    -5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,-5407,
+    -5407,-5407,-5407,-5407,-5407
+    },
+
+    {
+       27,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,
+    -5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,
+    -5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,
+    -5408, 5464,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,
+
+    -5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,-5408,
+    -5408,-5408,-5408,-5408,-5408,-5408, 5464,-5408,-5408,-5408,
+    -5408,-5408,-5408,-5408,-5408
+    },
+
+    {
+       27,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,
+    -5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,
+    -5409,-5409,-5409,-5409,-5409,-5409,-5409, 5465,-5409,-5409,
+    -5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,
+    -5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,-5409,
+    -5409,-5409, 5465,-5409,-5409,-5409,-5409,-5409,-5409,-5409,
+    -5409,-5409,-5409,-5409,-5409
+
+    },
+
+    {
+       27,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,
+    -5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,
+    -5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,
+    -5410,-5410, 5466,-5410,-5410,-5410,-5410,-5410,-5410,-5410,
+    -5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,-5410,
+    -5410,-5410,-5410,-5410,-5410,-5410,-5410, 5466,-5410,-5410,
+    -5410,-5410,-5410,-5410,-5410
+    },
+
+    {
+       27,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,
+    -5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411, 5467,-5411,
+    -5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,
+
+    -5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,
+    -5411,-5411,-5411,-5411, 5467,-5411,-5411,-5411,-5411,-5411,
+    -5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,-5411,
+    -5411,-5411,-5411,-5411,-5411
+    },
+
+    {
+       27,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,
+    -5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,
+    -5412,-5412,-5412,-5412,-5412,-5412, 5468,-5412,-5412,-5412,
+    -5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,
+    -5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,
+    -5412, 5468,-5412,-5412,-5412,-5412,-5412,-5412,-5412,-5412,
+
+    -5412,-5412,-5412,-5412,-5412
+    },
+
+    {
+       27,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,
+    -5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,
+    -5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413, 5469,-5413,
+    -5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,
+    -5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,-5413,
+    -5413,-5413,-5413, 5469,-5413,-5413,-5413,-5413,-5413,-5413,
+    -5413,-5413,-5413,-5413,-5413
+    },
+
+    {
+       27,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,
+    -5414,-5414,-5414,-5414, 5470,-5414,-5414,-5414,-5414,-5414,
+
+    -5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,
+    -5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,
+     5470,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,
+    -5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,-5414,
+    -5414,-5414,-5414,-5414,-5414
+    },
+
+    {
+       27,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,
+    -5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,
+    -5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,
+    -5415, 5471,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,
+    -5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,-5415,
+
+    -5415,-5415,-5415,-5415,-5415,-5415, 5471,-5415,-5415,-5415,
+    -5415,-5415,-5415,-5415,-5415
+    },
+
+    {
+       27,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,
+    -5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,
+    -5416,-5416,-5416,-5416,-5416,-5416,-5416, 5472,-5416,-5416,
+    -5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,
+    -5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,-5416,
+    -5416,-5416, 5472,-5416,-5416,-5416,-5416,-5416,-5416,-5416,
+    -5416,-5416,-5416,-5416,-5416
+    },
+
+    {
+       27,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,
+
+    -5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,
+    -5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,
+    -5417,-5417, 5473,-5417,-5417,-5417,-5417,-5417,-5417,-5417,
+    -5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,-5417,
+    -5417,-5417,-5417,-5417,-5417,-5417,-5417, 5473,-5417,-5417,
+    -5417,-5417,-5417,-5417,-5417
+    },
+
+    {
+       27,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,
+    -5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418, 5474,-5418,
+    -5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,
+    -5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,
+
+    -5418,-5418,-5418,-5418, 5474,-5418,-5418,-5418,-5418,-5418,
+    -5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,-5418,
+    -5418,-5418,-5418,-5418,-5418
+    },
+
+    {
+       27,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,
+    -5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,
+    -5419,-5419,-5419,-5419,-5419,-5419, 5475,-5419,-5419,-5419,
+    -5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,
+    -5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,
+    -5419, 5475,-5419,-5419,-5419,-5419,-5419,-5419,-5419,-5419,
+    -5419,-5419,-5419,-5419,-5419
+
+    },
+
+    {
+       27,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,
+    -5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,
+    -5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420, 5476,-5420,
+    -5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,
+    -5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,-5420,
+    -5420,-5420,-5420, 5476,-5420,-5420,-5420,-5420,-5420,-5420,
+    -5420,-5420,-5420,-5420,-5420
+    },
+
+    {
+       27,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,
+    -5421,-5421,-5421,-5421, 5477,-5421,-5421,-5421,-5421,-5421,
+    -5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,
+
+    -5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,
+     5477,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,
+    -5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,-5421,
+    -5421,-5421,-5421,-5421,-5421
+    },
+
+    {
+       27,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,
+    -5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,
+    -5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,
+    -5422, 5478,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,
+    -5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,-5422,
+    -5422,-5422,-5422,-5422,-5422,-5422, 5478,-5422,-5422,-5422,
+
+    -5422,-5422,-5422,-5422,-5422
+    },
+
+    {
+       27,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,
+    -5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,
+    -5423,-5423,-5423,-5423,-5423,-5423,-5423, 5479,-5423,-5423,
+    -5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,
+    -5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,-5423,
+    -5423,-5423, 5479,-5423,-5423,-5423,-5423,-5423,-5423,-5423,
+    -5423,-5423,-5423,-5423,-5423
+    },
+
+    {
+       27,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,
+    -5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,
+
+    -5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,
+    -5424,-5424, 5480,-5424,-5424,-5424,-5424,-5424,-5424,-5424,
+    -5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,-5424,
+    -5424,-5424,-5424,-5424,-5424,-5424,-5424, 5480,-5424,-5424,
+    -5424,-5424,-5424,-5424,-5424
+    },
+
+    {
+       27,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,
+    -5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425, 5481,-5425,
+    -5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,
+    -5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,
+    -5425,-5425,-5425,-5425, 5481,-5425,-5425,-5425,-5425,-5425,
+
+    -5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,-5425,
+    -5425,-5425,-5425,-5425,-5425
+    },
+
+    {
+       27,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,
+    -5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,
+    -5426,-5426,-5426,-5426,-5426,-5426, 5482,-5426,-5426,-5426,
+    -5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,
+    -5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,
+    -5426, 5482,-5426,-5426,-5426,-5426,-5426,-5426,-5426,-5426,
+    -5426,-5426,-5426,-5426,-5426
+    },
+
+    {
+       27,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,
+
+    -5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,
+    -5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427, 5483,-5427,
+    -5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,
+    -5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,-5427,
+    -5427,-5427,-5427, 5483,-5427,-5427,-5427,-5427,-5427,-5427,
+    -5427,-5427,-5427,-5427,-5427
+    },
+
+    {
+       27,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,
+    -5428,-5428,-5428,-5428, 5484,-5428,-5428,-5428,-5428,-5428,
+    -5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,
+    -5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,
+
+     5484,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,
+    -5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,-5428,
+    -5428,-5428,-5428,-5428,-5428
+    },
+
+    {
+       27,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,
+    -5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,
+    -5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,
+    -5429, 5485,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,
+    -5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,-5429,
+    -5429,-5429,-5429,-5429,-5429,-5429, 5485,-5429,-5429,-5429,
+    -5429,-5429,-5429,-5429,-5429
+
+    },
+
+    {
+       27,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,
+    -5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,
+    -5430,-5430,-5430,-5430,-5430,-5430,-5430, 5486,-5430,-5430,
+    -5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,
+    -5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,-5430,
+    -5430,-5430, 5486,-5430,-5430,-5430,-5430,-5430,-5430,-5430,
+    -5430,-5430,-5430,-5430,-5430
+    },
+
+    {
+       27,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,
+    -5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,
+    -5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,
+
+    -5431,-5431, 5487,-5431,-5431,-5431,-5431,-5431,-5431,-5431,
+    -5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,-5431,
+    -5431,-5431,-5431,-5431,-5431,-5431,-5431, 5487,-5431,-5431,
+    -5431,-5431,-5431,-5431,-5431
+    },
+
+    {
+       27,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,
+    -5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432, 5488,-5432,
+    -5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,
+    -5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,
+    -5432,-5432,-5432,-5432, 5488,-5432,-5432,-5432,-5432,-5432,
+    -5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,-5432,
+
+    -5432,-5432,-5432,-5432,-5432
+    },
+
+    {
+       27,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,
+    -5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,
+    -5433,-5433,-5433,-5433,-5433,-5433, 5489,-5433,-5433,-5433,
+    -5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,
+    -5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,
+    -5433, 5489,-5433,-5433,-5433,-5433,-5433,-5433,-5433,-5433,
+    -5433,-5433,-5433,-5433,-5433
+    },
+
+    {
+       27,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,
+    -5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,
+
+    -5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434, 5490,-5434,
+    -5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,
+    -5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,-5434,
+    -5434,-5434,-5434, 5490,-5434,-5434,-5434,-5434,-5434,-5434,
+    -5434,-5434,-5434,-5434,-5434
+    },
+
+    {
+       27,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,
+    -5435,-5435,-5435,-5435, 5491,-5435,-5435,-5435,-5435,-5435,
+    -5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,
+    -5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,
+     5491,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,
+
+    -5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,-5435,
+    -5435,-5435,-5435,-5435,-5435
+    },
+
+    {
+       27,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,
+    -5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,
+    -5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,
+    -5436, 5492,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,
+    -5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,-5436,
+    -5436,-5436,-5436,-5436,-5436,-5436, 5492,-5436,-5436,-5436,
+    -5436,-5436,-5436,-5436,-5436
+    },
+
+    {
+       27,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,
+
+    -5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,
+    -5437,-5437,-5437,-5437,-5437,-5437,-5437, 5493,-5437,-5437,
+    -5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,
+    -5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,-5437,
+    -5437,-5437, 5493,-5437,-5437,-5437,-5437,-5437,-5437,-5437,
+    -5437,-5437,-5437,-5437,-5437
+    },
+
+    {
+       27,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,
+    -5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,
+    -5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,
+    -5438,-5438, 5494,-5438,-5438,-5438,-5438,-5438,-5438,-5438,
+
+    -5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,-5438,
+    -5438,-5438,-5438,-5438,-5438,-5438,-5438, 5494,-5438,-5438,
+    -5438,-5438,-5438,-5438,-5438
+    },
+
+    {
+       27,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,
+    -5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439, 5495,-5439,
+    -5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,
+    -5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,
+    -5439,-5439,-5439,-5439, 5495,-5439,-5439,-5439,-5439,-5439,
+    -5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,-5439,
+    -5439,-5439,-5439,-5439,-5439
+
+    },
+
+    {
+       27,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,
+    -5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,
+    -5440,-5440,-5440,-5440,-5440,-5440, 5496,-5440,-5440,-5440,
+    -5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,
+    -5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,
+    -5440, 5496,-5440,-5440,-5440,-5440,-5440,-5440,-5440,-5440,
+    -5440,-5440,-5440,-5440,-5440
+    },
+
+    {
+       27,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,
+    -5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,
+    -5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441, 5497,-5441,
+
+    -5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,
+    -5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,-5441,
+    -5441,-5441,-5441, 5497,-5441,-5441,-5441,-5441,-5441,-5441,
+    -5441,-5441,-5441,-5441,-5441
+    },
+
+    {
+       27,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,
+    -5442,-5442,-5442,-5442, 5498,-5442,-5442,-5442,-5442,-5442,
+    -5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,
+    -5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,
+     5498,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,
+    -5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,-5442,
+
+    -5442,-5442,-5442,-5442,-5442
+    },
+
+    {
+       27,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,
+    -5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,
+    -5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,
+    -5443, 5499,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,
+    -5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,-5443,
+    -5443,-5443,-5443,-5443,-5443,-5443, 5499,-5443,-5443,-5443,
+    -5443,-5443,-5443,-5443,-5443
+    },
+
+    {
+       27,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,
+    -5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,
+
+    -5444,-5444,-5444,-5444,-5444,-5444,-5444, 5500,-5444,-5444,
+    -5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,
+    -5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,-5444,
+    -5444,-5444, 5500,-5444,-5444,-5444,-5444,-5444,-5444,-5444,
+    -5444,-5444,-5444,-5444,-5444
+    },
+
+    {
+       27,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,
+    -5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,
+    -5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,
+    -5445,-5445, 5501,-5445,-5445,-5445,-5445,-5445,-5445,-5445,
+    -5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,-5445,
+
+    -5445,-5445,-5445,-5445,-5445,-5445,-5445, 5501,-5445,-5445,
+    -5445,-5445,-5445,-5445,-5445
+    },
+
+    {
+       27,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,
+    -5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446, 5502,-5446,
+    -5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,
+    -5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,
+    -5446,-5446,-5446,-5446, 5502,-5446,-5446,-5446,-5446,-5446,
+    -5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,-5446,
+    -5446,-5446,-5446,-5446,-5446
+    },
+
+    {
+       27,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,
+
+    -5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,
+    -5447,-5447,-5447,-5447,-5447,-5447, 5503,-5447,-5447,-5447,
+    -5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,
+    -5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,
+    -5447, 5503,-5447,-5447,-5447,-5447,-5447,-5447,-5447,-5447,
+    -5447,-5447,-5447,-5447,-5447
+    },
+
+    {
+       27,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,
+    -5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,
+    -5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448, 5504,-5448,
+    -5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,
+
+    -5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,-5448,
+    -5448,-5448,-5448, 5504,-5448,-5448,-5448,-5448,-5448,-5448,
+    -5448,-5448,-5448,-5448,-5448
+    },
+
+    {
+       27,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,
+    -5449,-5449,-5449,-5449, 5505,-5449,-5449,-5449,-5449,-5449,
+    -5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,
+    -5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,
+     5505,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,
+    -5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,-5449,
+    -5449,-5449,-5449,-5449,-5449
+
+    },
+
+    {
+       27,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,
+    -5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,
+    -5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,
+    -5450, 5506,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,
+    -5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,-5450,
+    -5450,-5450,-5450,-5450,-5450,-5450, 5506,-5450,-5450,-5450,
+    -5450,-5450,-5450,-5450,-5450
+    },
+
+    {
+       27,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,
+    -5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,
+    -5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,
+
+    -5451,-5451,-5451, 5507,-5451,-5451,-5451,-5451,-5451,-5451,
+    -5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451,
+    -5451,-5451,-5451,-5451,-5451,-5451,-5451,-5451, 5507,-5451,
+    -5451,-5451,-5451,-5451,-5451
+    },
+
+    {
+       27,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,
+    -5452,-5452,-5452, 5508,-5452,-5452,-5452,-5452,-5452,-5452,
+    -5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,
+    -5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,
+    -5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,
+    -5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,-5452,
+
+    -5452,-5452,-5452,-5452,-5452
+    },
+
+    {
+       27,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,
+    -5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,
+    -5453,-5453,-5453,-5453,-5453,-5453,-5453, 5509,-5453,-5453,
+    -5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,
+    -5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,-5453,
+    -5453,-5453, 5509,-5453,-5453,-5453,-5453,-5453,-5453,-5453,
+    -5453,-5453,-5453,-5453,-5453
+    },
+
+    {
+       27,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,
+    -5454,-5454,-5454, 5510,-5454,-5454,-5454,-5454,-5454,-5454,
+
+    -5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,
+    -5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,
+    -5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,
+    -5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,-5454,
+    -5454,-5454,-5454,-5454,-5454
+    },
+
+    {
+       27,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,
+    -5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,
+    -5455,-5455,-5455,-5455,-5455,-5455,-5455, 5511,-5455,-5455,
+    -5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,
+    -5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,-5455,
+
+    -5455,-5455, 5511,-5455,-5455,-5455,-5455,-5455,-5455,-5455,
+    -5455,-5455,-5455,-5455,-5455
+    },
+
+    {
+       27,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,
+    -5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,
+    -5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,
+    -5456, 5512,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,
+    -5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,-5456,
+    -5456,-5456,-5456,-5456,-5456,-5456, 5512,-5456,-5456,-5456,
+    -5456,-5456,-5456,-5456,-5456
+    },
+
+    {
+       27,  184,  184,  184,  184,  184,  184,  184,  184, 5186,
+
+      184,  184,  184,  185,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
+      184,  184,  184,  184,  184
+    },
+
+    {
+       27,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,
+    -5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,
+    -5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,
+    -5458,-5458,-5458, 5513,-5458,-5458,-5458,-5458,-5458,-5458,
+
+    -5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458,
+    -5458,-5458,-5458,-5458,-5458,-5458,-5458,-5458, 5513,-5458,
+    -5458,-5458,-5458,-5458,-5458
+    },
+
+    {
+       27,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,
+    -5459,-5459,-5459, 5514,-5459,-5459,-5459,-5459,-5459,-5459,
+    -5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,
+    -5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,
+    -5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,
+    -5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,-5459,
+    -5459,-5459,-5459,-5459,-5459
+
+    },
+
+    {
+       27,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,
+    -5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,
+    -5460,-5460,-5460,-5460,-5460,-5460,-5460, 5515,-5460,-5460,
+    -5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,
+    -5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,-5460,
+    -5460,-5460, 5515,-5460,-5460,-5460,-5460,-5460,-5460,-5460,
+    -5460,-5460,-5460,-5460,-5460
+    },
+
+    {
+       27,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,
+    -5461,-5461,-5461, 5516,-5461,-5461,-5461,-5461,-5461,-5461,
+    -5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,
+
+    -5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,
+    -5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,
+    -5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,-5461,
+    -5461,-5461,-5461,-5461,-5461
+    },
+
+    {
+       27,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,
+    -5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,
+    -5462,-5462,-5462,-5462,-5462,-5462,-5462, 5517,-5462,-5462,
+    -5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,
+    -5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,-5462,
+    -5462,-5462, 5517,-5462,-5462,-5462,-5462,-5462,-5462,-5462,
+
+    -5462,-5462,-5462,-5462,-5462
+    },
+
+    {
+       27,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,
+    -5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,
+    -5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,
+    -5463, 5518,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,
+    -5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,-5463,
+    -5463,-5463,-5463,-5463,-5463,-5463, 5518,-5463,-5463,-5463,
+    -5463,-5463,-5463,-5463,-5463
+    },
+
+    {
+       27,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464, 5195,
+    -5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,
+
+    -5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,
+    -5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,
+    -5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,
+    -5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,-5464,
+    -5464,-5464,-5464,-5464,-5464
+    },
+
+    {
+       27,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,
+    -5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,
+    -5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,
+    -5465,-5465,-5465, 5519,-5465,-5465,-5465,-5465,-5465,-5465,
+    -5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465,
+
+    -5465,-5465,-5465,-5465,-5465,-5465,-5465,-5465, 5519,-5465,
+    -5465,-5465,-5465,-5465,-5465
+    },
+
+    {
+       27,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,
+    -5466,-5466,-5466, 5520,-5466,-5466,-5466,-5466,-5466,-5466,
+    -5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,
+    -5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,
+    -5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,
+    -5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,-5466,
+    -5466,-5466,-5466,-5466,-5466
+    },
+
+    {
+       27,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,
+
+    -5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,
+    -5467,-5467,-5467,-5467,-5467,-5467,-5467, 5521,-5467,-5467,
+    -5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,
+    -5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,-5467,
+    -5467,-5467, 5521,-5467,-5467,-5467,-5467,-5467,-5467,-5467,
+    -5467,-5467,-5467,-5467,-5467
+    },
+
+    {
+       27,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,
+    -5468,-5468,-5468, 5522,-5468,-5468,-5468,-5468,-5468,-5468,
+    -5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,
+    -5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,
+
+    -5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,
+    -5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,-5468,
+    -5468,-5468,-5468,-5468,-5468
+    },
+
+    {
+       27,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,
+    -5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,
+    -5469,-5469,-5469,-5469,-5469,-5469,-5469, 5523,-5469,-5469,
+    -5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,
+    -5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,-5469,
+    -5469,-5469, 5523,-5469,-5469,-5469,-5469,-5469,-5469,-5469,
+    -5469,-5469,-5469,-5469,-5469
+
+    },
+
+    {
+       27,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,
+    -5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,
+    -5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,
+    -5470, 5524,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,
+    -5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,-5470,
+    -5470,-5470,-5470,-5470,-5470,-5470, 5524,-5470,-5470,-5470,
+    -5470,-5470,-5470,-5470,-5470
+    },
+
+    {
+       27,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471, 5204,
+    -5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,
+    -5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,
+
+    -5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,
+    -5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,
+    -5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,-5471,
+    -5471,-5471,-5471,-5471,-5471
+    },
+
+    {
+       27,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,
+    -5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,
+    -5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,
+    -5472,-5472,-5472, 5525,-5472,-5472,-5472,-5472,-5472,-5472,
+    -5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472,
+    -5472,-5472,-5472,-5472,-5472,-5472,-5472,-5472, 5525,-5472,
+
+    -5472,-5472,-5472,-5472,-5472
+    },
+
+    {
+       27,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,
+    -5473,-5473,-5473, 5526,-5473,-5473,-5473,-5473,-5473,-5473,
+    -5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,
+    -5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,
+    -5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,
+    -5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,-5473,
+    -5473,-5473,-5473,-5473,-5473
+    },
+
+    {
+       27,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,
+    -5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,
+
+    -5474,-5474,-5474,-5474,-5474,-5474,-5474, 5527,-5474,-5474,
+    -5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,
+    -5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,-5474,
+    -5474,-5474, 5527,-5474,-5474,-5474,-5474,-5474,-5474,-5474,
+    -5474,-5474,-5474,-5474,-5474
+    },
+
+    {
+       27,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,
+    -5475,-5475,-5475, 5528,-5475,-5475,-5475,-5475,-5475,-5475,
+    -5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,
+    -5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,
+    -5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,
+
+    -5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,-5475,
+    -5475,-5475,-5475,-5475,-5475
+    },
+
+    {
+       27,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,
+    -5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,
+    -5476,-5476,-5476,-5476,-5476,-5476,-5476, 5529,-5476,-5476,
+    -5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,
+    -5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,-5476,
+    -5476,-5476, 5529,-5476,-5476,-5476,-5476,-5476,-5476,-5476,
+    -5476,-5476,-5476,-5476,-5476
+    },
+
+    {
+       27,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,
+
+    -5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,
+    -5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,
+    -5477, 5530,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,
+    -5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,-5477,
+    -5477,-5477,-5477,-5477,-5477,-5477, 5530,-5477,-5477,-5477,
+    -5477,-5477,-5477,-5477,-5477
+    },
+
+    {
+       27,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478, 5213,
+    -5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,
+    -5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,
+    -5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,
+
+    -5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,
+    -5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,-5478,
+    -5478,-5478,-5478,-5478,-5478
+    },
+
+    {
+       27,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,
+    -5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,
+    -5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,
+    -5479,-5479,-5479, 5531,-5479,-5479,-5479,-5479,-5479,-5479,
+    -5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479,
+    -5479,-5479,-5479,-5479,-5479,-5479,-5479,-5479, 5531,-5479,
+    -5479,-5479,-5479,-5479,-5479
+
+    },
+
+    {
+       27,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,
+    -5480,-5480,-5480, 5532,-5480,-5480,-5480,-5480,-5480,-5480,
+    -5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,
+    -5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,
+    -5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,
+    -5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,-5480,
+    -5480,-5480,-5480,-5480,-5480
+    },
+
+    {
+       27,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,
+    -5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,
+    -5481,-5481,-5481,-5481,-5481,-5481,-5481, 5533,-5481,-5481,
+
+    -5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,
+    -5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,-5481,
+    -5481,-5481, 5533,-5481,-5481,-5481,-5481,-5481,-5481,-5481,
+    -5481,-5481,-5481,-5481,-5481
+    },
+
+    {
+       27,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,
+    -5482,-5482,-5482, 5534,-5482,-5482,-5482,-5482,-5482,-5482,
+    -5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,
+    -5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,
+    -5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,
+    -5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,-5482,
+
+    -5482,-5482,-5482,-5482,-5482
+    },
+
+    {
+       27,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,
+    -5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,
+    -5483,-5483,-5483,-5483,-5483,-5483,-5483, 5535,-5483,-5483,
+    -5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,
+    -5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,-5483,
+    -5483,-5483, 5535,-5483,-5483,-5483,-5483,-5483,-5483,-5483,
+    -5483,-5483,-5483,-5483,-5483
+    },
+
+    {
+       27,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,
+    -5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,
+
+    -5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,
+    -5484, 5536,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,
+    -5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,-5484,
+    -5484,-5484,-5484,-5484,-5484,-5484, 5536,-5484,-5484,-5484,
+    -5484,-5484,-5484,-5484,-5484
+    },
+
+    {
+       27,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485, 5222,
+    -5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,
+    -5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,
+    -5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,
+    -5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,
+
+    -5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,-5485,
+    -5485,-5485,-5485,-5485,-5485
+    },
+
+    {
+       27,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,
+    -5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,
+    -5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,
+    -5486,-5486,-5486, 5537,-5486,-5486,-5486,-5486,-5486,-5486,
+    -5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486,
+    -5486,-5486,-5486,-5486,-5486,-5486,-5486,-5486, 5537,-5486,
+    -5486,-5486,-5486,-5486,-5486
+    },
+
+    {
+       27,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,
+
+    -5487,-5487,-5487, 5538,-5487,-5487,-5487,-5487,-5487,-5487,
+    -5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,
+    -5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,
+    -5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,
+    -5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,-5487,
+    -5487,-5487,-5487,-5487,-5487
+    },
+
+    {
+       27,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,
+    -5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,
+    -5488,-5488,-5488,-5488,-5488,-5488,-5488, 5539,-5488,-5488,
+    -5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,
+
+    -5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,-5488,
+    -5488,-5488, 5539,-5488,-5488,-5488,-5488,-5488,-5488,-5488,
+    -5488,-5488,-5488,-5488,-5488
+    },
+
+    {
+       27,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,
+    -5489,-5489,-5489, 5540,-5489,-5489,-5489,-5489,-5489,-5489,
+    -5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,
+    -5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,
+    -5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,
+    -5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,-5489,
+    -5489,-5489,-5489,-5489,-5489
+
+    },
+
+    {
+       27,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,
+    -5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,
+    -5490,-5490,-5490,-5490,-5490,-5490,-5490, 5541,-5490,-5490,
+    -5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,
+    -5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,-5490,
+    -5490,-5490, 5541,-5490,-5490,-5490,-5490,-5490,-5490,-5490,
+    -5490,-5490,-5490,-5490,-5490
+    },
+
+    {
+       27,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,
+    -5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,
+    -5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,
+
+    -5491, 5542,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,
+    -5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,-5491,
+    -5491,-5491,-5491,-5491,-5491,-5491, 5542,-5491,-5491,-5491,
+    -5491,-5491,-5491,-5491,-5491
+    },
+
+    {
+       27,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492, 5231,
+    -5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,
+    -5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,
+    -5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,
+    -5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,
+    -5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,-5492,
+
+    -5492,-5492,-5492,-5492,-5492
+    },
+
+    {
+       27,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,
+    -5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,
+    -5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,
+    -5493,-5493,-5493, 5543,-5493,-5493,-5493,-5493,-5493,-5493,
+    -5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493,
+    -5493,-5493,-5493,-5493,-5493,-5493,-5493,-5493, 5543,-5493,
+    -5493,-5493,-5493,-5493,-5493
+    },
+
+    {
+       27,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,
+    -5494,-5494,-5494, 5544,-5494,-5494,-5494,-5494,-5494,-5494,
+
+    -5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,
+    -5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,
+    -5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,
+    -5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,-5494,
+    -5494,-5494,-5494,-5494,-5494
+    },
+
+    {
+       27,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,
+    -5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,
+    -5495,-5495,-5495,-5495,-5495,-5495,-5495, 5545,-5495,-5495,
+    -5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,
+    -5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,-5495,
+
+    -5495,-5495, 5545,-5495,-5495,-5495,-5495,-5495,-5495,-5495,
+    -5495,-5495,-5495,-5495,-5495
+    },
+
+    {
+       27,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,
+    -5496,-5496,-5496, 5546,-5496,-5496,-5496,-5496,-5496,-5496,
+    -5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,
+    -5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,
+    -5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,
+    -5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,-5496,
+    -5496,-5496,-5496,-5496,-5496
+    },
+
+    {
+       27,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,
+
+    -5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,
+    -5497,-5497,-5497,-5497,-5497,-5497,-5497, 5547,-5497,-5497,
+    -5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,
+    -5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,-5497,
+    -5497,-5497, 5547,-5497,-5497,-5497,-5497,-5497,-5497,-5497,
+    -5497,-5497,-5497,-5497,-5497
+    },
+
+    {
+       27,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,
+    -5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,
+    -5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,
+    -5498, 5548,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,
+
+    -5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,-5498,
+    -5498,-5498,-5498,-5498,-5498,-5498, 5548,-5498,-5498,-5498,
+    -5498,-5498,-5498,-5498,-5498
+    },
+
+    {
+       27,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499, 5240,
+    -5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,
+    -5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,
+    -5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,
+    -5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,
+    -5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,-5499,
+    -5499,-5499,-5499,-5499,-5499
+
+    },
+
+    {
+       27,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,
+    -5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,
+    -5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,
+    -5500,-5500,-5500, 5549,-5500,-5500,-5500,-5500,-5500,-5500,
+    -5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500,
+    -5500,-5500,-5500,-5500,-5500,-5500,-5500,-5500, 5549,-5500,
+    -5500,-5500,-5500,-5500,-5500
+    },
+
+    {
+       27,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,
+    -5501,-5501,-5501, 5550,-5501,-5501,-5501,-5501,-5501,-5501,
+    -5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,
+
+    -5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,
+    -5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,
+    -5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,-5501,
+    -5501,-5501,-5501,-5501,-5501
+    },
+
+    {
+       27,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,
+    -5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,
+    -5502,-5502,-5502,-5502,-5502,-5502,-5502, 5551,-5502,-5502,
+    -5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,
+    -5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,-5502,
+    -5502,-5502, 5551,-5502,-5502,-5502,-5502,-5502,-5502,-5502,
+
+    -5502,-5502,-5502,-5502,-5502
+    },
+
+    {
+       27,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,
+    -5503,-5503,-5503, 5552,-5503,-5503,-5503,-5503,-5503,-5503,
+    -5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,
+    -5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,
+    -5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,
+    -5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,-5503,
+    -5503,-5503,-5503,-5503,-5503
+    },
+
+    {
+       27,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,
+    -5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,
+
+    -5504,-5504,-5504,-5504,-5504,-5504,-5504, 5553,-5504,-5504,
+    -5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,
+    -5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,-5504,
+    -5504,-5504, 5553,-5504,-5504,-5504,-5504,-5504,-5504,-5504,
+    -5504,-5504,-5504,-5504,-5504
+    },
+
+    {
+       27,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,
+    -5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,
+    -5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,
+    -5505, 5554,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,
+    -5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,-5505,
+
+    -5505,-5505,-5505,-5505,-5505,-5505, 5554,-5505,-5505,-5505,
+    -5505,-5505,-5505,-5505,-5505
+    },
+
+    {
+       27,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506, 5249,
+    -5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,
+    -5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,
+    -5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,
+    -5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,
+    -5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,-5506,
+    -5506,-5506,-5506,-5506,-5506
+    },
+
+    {
+       27,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,
+
+    -5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,
+    -5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,
+    -5507,-5507, 5555,-5507,-5507,-5507,-5507,-5507,-5507,-5507,
+    -5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,-5507,
+    -5507,-5507,-5507,-5507,-5507,-5507,-5507, 5555,-5507,-5507,
+    -5507,-5507,-5507,-5507,-5507
+    },
+
+    {
+       27,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,
+    -5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,
+    -5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,
+    -5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,
+
+    -5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,
+    -5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,-5508,
+    -5508,-5508,-5508,-5508,-5508
+    },
+
+    {
+       27,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,
+    -5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,
+    -5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,
+    -5509,-5509,-5509, 5556,-5509,-5509,-5509,-5509,-5509,-5509,
+    -5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509,
+    -5509,-5509,-5509,-5509,-5509,-5509,-5509,-5509, 5556,-5509,
+    -5509,-5509,-5509,-5509,-5509
+
+    },
+
+    {
+       27,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,
+    -5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,
+    -5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,
+    -5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,
+    -5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,
+    -5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,-5510,
+    -5510,-5510,-5510,-5510,-5510
+    },
+
+    {
+       27,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,
+    -5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,
+    -5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,
+
+    -5511,-5511,-5511, 5557,-5511,-5511,-5511,-5511,-5511,-5511,
+    -5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511,
+    -5511,-5511,-5511,-5511,-5511,-5511,-5511,-5511, 5557,-5511,
+    -5511,-5511,-5511,-5511,-5511
+    },
+
+    {
+       27,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,
+    -5512,-5512,-5512,-5512, 5558,-5512,-5512,-5512,-5512,-5512,
+    -5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,
+    -5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,
+     5558,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,
+    -5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,-5512,
+
+    -5512,-5512,-5512,-5512,-5512
+    },
+
+    {
+       27,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,
+    -5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,
+    -5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,
+    -5513,-5513, 5559,-5513,-5513,-5513,-5513,-5513,-5513,-5513,
+    -5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,-5513,
+    -5513,-5513,-5513,-5513,-5513,-5513,-5513, 5559,-5513,-5513,
+    -5513,-5513,-5513,-5513,-5513
+    },
+
+    {
+       27,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,
+    -5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,
+
+    -5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,
+    -5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,
+    -5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,
+    -5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,-5514,
+    -5514,-5514,-5514,-5514,-5514
+    },
+
+    {
+       27,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,
+    -5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,
+    -5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,
+    -5515,-5515,-5515, 5560,-5515,-5515,-5515,-5515,-5515,-5515,
+    -5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515,
+
+    -5515,-5515,-5515,-5515,-5515,-5515,-5515,-5515, 5560,-5515,
+    -5515,-5515,-5515,-5515,-5515
+    },
+
+    {
+       27,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,
+    -5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,
+    -5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,
+    -5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,
+    -5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,
+    -5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,-5516,
+    -5516,-5516,-5516,-5516,-5516
+    },
+
+    {
+       27,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,
+
+    -5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,
+    -5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,
+    -5517,-5517,-5517, 5561,-5517,-5517,-5517,-5517,-5517,-5517,
+    -5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517,
+    -5517,-5517,-5517,-5517,-5517,-5517,-5517,-5517, 5561,-5517,
+    -5517,-5517,-5517,-5517,-5517
+    },
+
+    {
+       27,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,
+    -5518,-5518,-5518,-5518, 5562,-5518,-5518,-5518,-5518,-5518,
+    -5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,
+    -5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,
+
+     5562,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,
+    -5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,-5518,
+    -5518,-5518,-5518,-5518,-5518
+    },
+
+    {
+       27,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,
+    -5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,
+    -5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,
+    -5519,-5519, 5563,-5519,-5519,-5519,-5519,-5519,-5519,-5519,
+    -5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,-5519,
+    -5519,-5519,-5519,-5519,-5519,-5519,-5519, 5563,-5519,-5519,
+    -5519,-5519,-5519,-5519,-5519
+
+    },
+
+    {
+       27,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,
+    -5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,
+    -5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,
+    -5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,
+    -5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,
+    -5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,-5520,
+    -5520,-5520,-5520,-5520,-5520
+    },
+
+    {
+       27,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,
+    -5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,
+    -5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,
+
+    -5521,-5521,-5521, 5564,-5521,-5521,-5521,-5521,-5521,-5521,
+    -5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521,
+    -5521,-5521,-5521,-5521,-5521,-5521,-5521,-5521, 5564,-5521,
+    -5521,-5521,-5521,-5521,-5521
+    },
+
+    {
+       27,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,
+    -5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,
+    -5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,
+    -5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,
+    -5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,
+    -5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,-5522,
+
+    -5522,-5522,-5522,-5522,-5522
+    },
+
+    {
+       27,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,
+    -5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,
+    -5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,
+    -5523,-5523,-5523, 5565,-5523,-5523,-5523,-5523,-5523,-5523,
+    -5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523,
+    -5523,-5523,-5523,-5523,-5523,-5523,-5523,-5523, 5565,-5523,
+    -5523,-5523,-5523,-5523,-5523
+    },
+
+    {
+       27,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,
+    -5524,-5524,-5524,-5524, 5566,-5524,-5524,-5524,-5524,-5524,
+
+    -5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,
+    -5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,
+     5566,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,
+    -5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,-5524,
+    -5524,-5524,-5524,-5524,-5524
+    },
+
+    {
+       27,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,
+    -5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,
+    -5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,
+    -5525,-5525, 5567,-5525,-5525,-5525,-5525,-5525,-5525,-5525,
+    -5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,-5525,
+
+    -5525,-5525,-5525,-5525,-5525,-5525,-5525, 5567,-5525,-5525,
+    -5525,-5525,-5525,-5525,-5525
+    },
+
+    {
+       27,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,
+    -5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,
+    -5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,
+    -5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,
+    -5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,
+    -5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,-5526,
+    -5526,-5526,-5526,-5526,-5526
+    },
+
+    {
+       27,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,
+
+    -5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,
+    -5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,
+    -5527,-5527,-5527, 5568,-5527,-5527,-5527,-5527,-5527,-5527,
+    -5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527,
+    -5527,-5527,-5527,-5527,-5527,-5527,-5527,-5527, 5568,-5527,
+    -5527,-5527,-5527,-5527,-5527
+    },
+
+    {
+       27,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,
+    -5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,
+    -5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,
+    -5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,
+
+    -5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,
+    -5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,-5528,
+    -5528,-5528,-5528,-5528,-5528
+    },
+
+    {
+       27,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,
+    -5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,
+    -5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,
+    -5529,-5529,-5529, 5569,-5529,-5529,-5529,-5529,-5529,-5529,
+    -5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529,
+    -5529,-5529,-5529,-5529,-5529,-5529,-5529,-5529, 5569,-5529,
+    -5529,-5529,-5529,-5529,-5529
+
+    },
+
+    {
+       27,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,
+    -5530,-5530,-5530,-5530, 5570,-5530,-5530,-5530,-5530,-5530,
+    -5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,
+    -5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,
+     5570,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,
+    -5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,-5530,
+    -5530,-5530,-5530,-5530,-5530
+    },
+
+    {
+       27,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,
+    -5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,
+    -5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,
+
+    -5531,-5531, 5571,-5531,-5531,-5531,-5531,-5531,-5531,-5531,
+    -5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,-5531,
+    -5531,-5531,-5531,-5531,-5531,-5531,-5531, 5571,-5531,-5531,
+    -5531,-5531,-5531,-5531,-5531
+    },
+
+    {
+       27,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,
+    -5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,
+    -5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,
+    -5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,
+    -5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,
+    -5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,-5532,
+
+    -5532,-5532,-5532,-5532,-5532
+    },
+
+    {
+       27,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,
+    -5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,
+    -5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,
+    -5533,-5533,-5533, 5572,-5533,-5533,-5533,-5533,-5533,-5533,
+    -5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533,
+    -5533,-5533,-5533,-5533,-5533,-5533,-5533,-5533, 5572,-5533,
+    -5533,-5533,-5533,-5533,-5533
+    },
+
+    {
+       27,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,
+    -5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,
+
+    -5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,
+    -5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,
+    -5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,
+    -5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,-5534,
+    -5534,-5534,-5534,-5534,-5534
+    },
+
+    {
+       27,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,
+    -5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,
+    -5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,
+    -5535,-5535,-5535, 5573,-5535,-5535,-5535,-5535,-5535,-5535,
+    -5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535,
+
+    -5535,-5535,-5535,-5535,-5535,-5535,-5535,-5535, 5573,-5535,
+    -5535,-5535,-5535,-5535,-5535
+    },
+
+    {
+       27,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,
+    -5536,-5536,-5536,-5536, 5574,-5536,-5536,-5536,-5536,-5536,
+    -5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,
+    -5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,
+     5574,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,
+    -5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,-5536,
+    -5536,-5536,-5536,-5536,-5536
+    },
+
+    {
+       27,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,
+
+    -5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,
+    -5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,
+    -5537,-5537, 5575,-5537,-5537,-5537,-5537,-5537,-5537,-5537,
+    -5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,-5537,
+    -5537,-5537,-5537,-5537,-5537,-5537,-5537, 5575,-5537,-5537,
+    -5537,-5537,-5537,-5537,-5537
+    },
+
+    {
+       27,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,
+    -5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,
+    -5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,
+    -5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,
+
+    -5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,
+    -5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,-5538,
+    -5538,-5538,-5538,-5538,-5538
+    },
+
+    {
+       27,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,
+    -5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,
+    -5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,
+    -5539,-5539,-5539, 5576,-5539,-5539,-5539,-5539,-5539,-5539,
+    -5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539,
+    -5539,-5539,-5539,-5539,-5539,-5539,-5539,-5539, 5576,-5539,
+    -5539,-5539,-5539,-5539,-5539
+
+    },
+
+    {
+       27,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,
+    -5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,
+    -5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,
+    -5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,
+    -5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,
+    -5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,-5540,
+    -5540,-5540,-5540,-5540,-5540
+    },
+
+    {
+       27,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,
+    -5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,
+    -5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,
+
+    -5541,-5541,-5541, 5577,-5541,-5541,-5541,-5541,-5541,-5541,
+    -5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541,
+    -5541,-5541,-5541,-5541,-5541,-5541,-5541,-5541, 5577,-5541,
+    -5541,-5541,-5541,-5541,-5541
+    },
+
+    {
+       27,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,
+    -5542,-5542,-5542,-5542, 5578,-5542,-5542,-5542,-5542,-5542,
+    -5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,
+    -5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,
+     5578,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,
+    -5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,-5542,
+
+    -5542,-5542,-5542,-5542,-5542
+    },
+
+    {
+       27,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,
+    -5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,
+    -5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,
+    -5543,-5543, 5579,-5543,-5543,-5543,-5543,-5543,-5543,-5543,
+    -5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,-5543,
+    -5543,-5543,-5543,-5543,-5543,-5543,-5543, 5579,-5543,-5543,
+    -5543,-5543,-5543,-5543,-5543
+    },
+
+    {
+       27,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,
+    -5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,
+
+    -5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,
+    -5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,
+    -5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,
+    -5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,-5544,
+    -5544,-5544,-5544,-5544,-5544
+    },
+
+    {
+       27,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,
+    -5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,
+    -5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,
+    -5545,-5545,-5545, 5580,-5545,-5545,-5545,-5545,-5545,-5545,
+    -5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545,
+
+    -5545,-5545,-5545,-5545,-5545,-5545,-5545,-5545, 5580,-5545,
+    -5545,-5545,-5545,-5545,-5545
+    },
+
+    {
+       27,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,
+    -5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,
+    -5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,
+    -5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,
+    -5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,
+    -5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,-5546,
+    -5546,-5546,-5546,-5546,-5546
+    },
+
+    {
+       27,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,
+
+    -5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,
+    -5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,
+    -5547,-5547,-5547, 5581,-5547,-5547,-5547,-5547,-5547,-5547,
+    -5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547,
+    -5547,-5547,-5547,-5547,-5547,-5547,-5547,-5547, 5581,-5547,
+    -5547,-5547,-5547,-5547,-5547
+    },
+
+    {
+       27,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,
+    -5548,-5548,-5548,-5548, 5582,-5548,-5548,-5548,-5548,-5548,
+    -5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,
+    -5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,
+
+     5582,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,
+    -5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,-5548,
+    -5548,-5548,-5548,-5548,-5548
+    },
+
+    {
+       27,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,
+    -5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,
+    -5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,
+    -5549,-5549, 5583,-5549,-5549,-5549,-5549,-5549,-5549,-5549,
+    -5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,-5549,
+    -5549,-5549,-5549,-5549,-5549,-5549,-5549, 5583,-5549,-5549,
+    -5549,-5549,-5549,-5549,-5549
+
+    },
+
+    {
+       27,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,
+    -5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,
+    -5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,
+    -5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,
+    -5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,
+    -5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,-5550,
+    -5550,-5550,-5550,-5550,-5550
+    },
+
+    {
+       27,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,
+    -5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,
+    -5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,
+
+    -5551,-5551,-5551, 5584,-5551,-5551,-5551,-5551,-5551,-5551,
+    -5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551,
+    -5551,-5551,-5551,-5551,-5551,-5551,-5551,-5551, 5584,-5551,
+    -5551,-5551,-5551,-5551,-5551
+    },
+
+    {
+       27,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,
+    -5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,
+    -5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,
+    -5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,
+    -5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,
+    -5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,-5552,
+
+    -5552,-5552,-5552,-5552,-5552
+    },
+
+    {
+       27,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,
+    -5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,
+    -5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,
+    -5553,-5553,-5553, 5585,-5553,-5553,-5553,-5553,-5553,-5553,
+    -5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553,
+    -5553,-5553,-5553,-5553,-5553,-5553,-5553,-5553, 5585,-5553,
+    -5553,-5553,-5553,-5553,-5553
+    },
+
+    {
+       27,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,
+    -5554,-5554,-5554,-5554, 5586,-5554,-5554,-5554,-5554,-5554,
+
+    -5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,
+    -5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,
+     5586,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,
+    -5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,-5554,
+    -5554,-5554,-5554,-5554,-5554
+    },
+
+    {
+       27,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,
+    -5555,-5555,-5555, 5587,-5555,-5555,-5555,-5555,-5555,-5555,
+    -5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,
+    -5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,
+    -5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,
+
+    -5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,-5555,
+    -5555,-5555,-5555,-5555,-5555
+    },
+
+    {
+       27,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,
+    -5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,
+    -5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,
+    -5556,-5556, 5588,-5556,-5556,-5556,-5556,-5556,-5556,-5556,
+    -5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,-5556,
+    -5556,-5556,-5556,-5556,-5556,-5556,-5556, 5588,-5556,-5556,
+    -5556,-5556,-5556,-5556,-5556
+    },
+
+    {
+       27,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,
+
+    -5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557, 5589,-5557,
+    -5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,
+    -5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,
+    -5557,-5557,-5557,-5557, 5589,-5557,-5557,-5557,-5557,-5557,
+    -5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,-5557,
+    -5557,-5557,-5557,-5557,-5557
+    },
+
+    {
+       27,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,
+    -5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,
+    -5558,-5558,-5558,-5558,-5558,-5558, 5590,-5558,-5558,-5558,
+    -5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,
+
+    -5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,
+    -5558, 5590,-5558,-5558,-5558,-5558,-5558,-5558,-5558,-5558,
+    -5558,-5558,-5558,-5558,-5558
+    },
+
+    {
+       27,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,
+    -5559,-5559,-5559, 5591,-5559,-5559,-5559,-5559,-5559,-5559,
+    -5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,
+    -5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,
+    -5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,
+    -5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,-5559,
+    -5559,-5559,-5559,-5559,-5559
+
+    },
+
+    {
+       27,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,
+    -5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,
+    -5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,
+    -5560,-5560, 5592,-5560,-5560,-5560,-5560,-5560,-5560,-5560,
+    -5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,-5560,
+    -5560,-5560,-5560,-5560,-5560,-5560,-5560, 5592,-5560,-5560,
+    -5560,-5560,-5560,-5560,-5560
+    },
+
+    {
+       27,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,
+    -5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561, 5593,-5561,
+    -5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,
+
+    -5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,
+    -5561,-5561,-5561,-5561, 5593,-5561,-5561,-5561,-5561,-5561,
+    -5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,-5561,
+    -5561,-5561,-5561,-5561,-5561
+    },
+
+    {
+       27,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,
+    -5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,
+    -5562,-5562,-5562,-5562,-5562,-5562, 5594,-5562,-5562,-5562,
+    -5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,
+    -5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,
+    -5562, 5594,-5562,-5562,-5562,-5562,-5562,-5562,-5562,-5562,
+
+    -5562,-5562,-5562,-5562,-5562
+    },
+
+    {
+       27,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,
+    -5563,-5563,-5563, 5595,-5563,-5563,-5563,-5563,-5563,-5563,
+    -5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,
+    -5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,
+    -5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,
+    -5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,-5563,
+    -5563,-5563,-5563,-5563,-5563
+    },
+
+    {
+       27,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,
+    -5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,
+
+    -5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,
+    -5564,-5564, 5596,-5564,-5564,-5564,-5564,-5564,-5564,-5564,
+    -5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,-5564,
+    -5564,-5564,-5564,-5564,-5564,-5564,-5564, 5596,-5564,-5564,
+    -5564,-5564,-5564,-5564,-5564
+    },
+
+    {
+       27,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,
+    -5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565, 5597,-5565,
+    -5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,
+    -5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,
+    -5565,-5565,-5565,-5565, 5597,-5565,-5565,-5565,-5565,-5565,
+
+    -5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,-5565,
+    -5565,-5565,-5565,-5565,-5565
+    },
+
+    {
+       27,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,
+    -5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,
+    -5566,-5566,-5566,-5566,-5566,-5566, 5598,-5566,-5566,-5566,
+    -5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,
+    -5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,
+    -5566, 5598,-5566,-5566,-5566,-5566,-5566,-5566,-5566,-5566,
+    -5566,-5566,-5566,-5566,-5566
+    },
+
+    {
+       27,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,
+
+    -5567,-5567,-5567, 5599,-5567,-5567,-5567,-5567,-5567,-5567,
+    -5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,
+    -5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,
+    -5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,
+    -5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,-5567,
+    -5567,-5567,-5567,-5567,-5567
+    },
+
+    {
+       27,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,
+    -5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,
+    -5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,
+    -5568,-5568, 5600,-5568,-5568,-5568,-5568,-5568,-5568,-5568,
+
+    -5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,-5568,
+    -5568,-5568,-5568,-5568,-5568,-5568,-5568, 5600,-5568,-5568,
+    -5568,-5568,-5568,-5568,-5568
+    },
+
+    {
+       27,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,
+    -5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569, 5601,-5569,
+    -5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,
+    -5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,
+    -5569,-5569,-5569,-5569, 5601,-5569,-5569,-5569,-5569,-5569,
+    -5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,-5569,
+    -5569,-5569,-5569,-5569,-5569
+
+    },
+
+    {
+       27,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,
+    -5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,
+    -5570,-5570,-5570,-5570,-5570,-5570, 5602,-5570,-5570,-5570,
+    -5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,
+    -5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,
+    -5570, 5602,-5570,-5570,-5570,-5570,-5570,-5570,-5570,-5570,
+    -5570,-5570,-5570,-5570,-5570
+    },
+
+    {
+       27,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,
+    -5571,-5571,-5571, 5603,-5571,-5571,-5571,-5571,-5571,-5571,
+    -5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,
+
+    -5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,
+    -5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,
+    -5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,-5571,
+    -5571,-5571,-5571,-5571,-5571
+    },
+
+    {
+       27,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,
+    -5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,
+    -5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,
+    -5572,-5572, 5604,-5572,-5572,-5572,-5572,-5572,-5572,-5572,
+    -5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,-5572,
+    -5572,-5572,-5572,-5572,-5572,-5572,-5572, 5604,-5572,-5572,
+
+    -5572,-5572,-5572,-5572,-5572
+    },
+
+    {
+       27,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,
+    -5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573, 5605,-5573,
+    -5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,
+    -5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,
+    -5573,-5573,-5573,-5573, 5605,-5573,-5573,-5573,-5573,-5573,
+    -5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,-5573,
+    -5573,-5573,-5573,-5573,-5573
+    },
+
+    {
+       27,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,
+    -5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,
+
+    -5574,-5574,-5574,-5574,-5574,-5574, 5606,-5574,-5574,-5574,
+    -5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,
+    -5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,
+    -5574, 5606,-5574,-5574,-5574,-5574,-5574,-5574,-5574,-5574,
+    -5574,-5574,-5574,-5574,-5574
+    },
+
+    {
+       27,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,
+    -5575,-5575,-5575, 5607,-5575,-5575,-5575,-5575,-5575,-5575,
+    -5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,
+    -5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,
+    -5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,
+
+    -5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,-5575,
+    -5575,-5575,-5575,-5575,-5575
+    },
+
+    {
+       27,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,
+    -5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,
+    -5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,
+    -5576,-5576, 5608,-5576,-5576,-5576,-5576,-5576,-5576,-5576,
+    -5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,-5576,
+    -5576,-5576,-5576,-5576,-5576,-5576,-5576, 5608,-5576,-5576,
+    -5576,-5576,-5576,-5576,-5576
+    },
+
+    {
+       27,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,
+
+    -5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577, 5609,-5577,
+    -5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,
+    -5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,
+    -5577,-5577,-5577,-5577, 5609,-5577,-5577,-5577,-5577,-5577,
+    -5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,-5577,
+    -5577,-5577,-5577,-5577,-5577
+    },
+
+    {
+       27,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,
+    -5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,
+    -5578,-5578,-5578,-5578,-5578,-5578, 5610,-5578,-5578,-5578,
+    -5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,
+
+    -5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,
+    -5578, 5610,-5578,-5578,-5578,-5578,-5578,-5578,-5578,-5578,
+    -5578,-5578,-5578,-5578,-5578
+    },
+
+    {
+       27,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,
+    -5579,-5579,-5579, 5611,-5579,-5579,-5579,-5579,-5579,-5579,
+    -5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,
+    -5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,
+    -5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,
+    -5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,-5579,
+    -5579,-5579,-5579,-5579,-5579
+
+    },
+
+    {
+       27,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,
+    -5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,
+    -5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,
+    -5580,-5580, 5612,-5580,-5580,-5580,-5580,-5580,-5580,-5580,
+    -5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,-5580,
+    -5580,-5580,-5580,-5580,-5580,-5580,-5580, 5612,-5580,-5580,
+    -5580,-5580,-5580,-5580,-5580
+    },
+
+    {
+       27,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,
+    -5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581, 5613,-5581,
+    -5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,
+
+    -5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,
+    -5581,-5581,-5581,-5581, 5613,-5581,-5581,-5581,-5581,-5581,
+    -5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,-5581,
+    -5581,-5581,-5581,-5581,-5581
+    },
+
+    {
+       27,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,
+    -5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,
+    -5582,-5582,-5582,-5582,-5582,-5582, 5614,-5582,-5582,-5582,
+    -5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,
+    -5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,
+    -5582, 5614,-5582,-5582,-5582,-5582,-5582,-5582,-5582,-5582,
+
+    -5582,-5582,-5582,-5582,-5582
+    },
+
+    {
+       27,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,
+    -5583,-5583,-5583, 5615,-5583,-5583,-5583,-5583,-5583,-5583,
+    -5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,
+    -5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,
+    -5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,
+    -5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,-5583,
+    -5583,-5583,-5583,-5583,-5583
+    },
+
+    {
+       27,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,
+    -5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,
+
+    -5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,
+    -5584,-5584, 5616,-5584,-5584,-5584,-5584,-5584,-5584,-5584,
+    -5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,-5584,
+    -5584,-5584,-5584,-5584,-5584,-5584,-5584, 5616,-5584,-5584,
+    -5584,-5584,-5584,-5584,-5584
+    },
+
+    {
+       27,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,
+    -5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585, 5617,-5585,
+    -5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,
+    -5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,
+    -5585,-5585,-5585,-5585, 5617,-5585,-5585,-5585,-5585,-5585,
+
+    -5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,-5585,
+    -5585,-5585,-5585,-5585,-5585
+    },
+
+    {
+       27,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,
+    -5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,
+    -5586,-5586,-5586,-5586,-5586,-5586, 5618,-5586,-5586,-5586,
+    -5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,
+    -5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,
+    -5586, 5618,-5586,-5586,-5586,-5586,-5586,-5586,-5586,-5586,
+    -5586,-5586,-5586,-5586,-5586
+    },
+
+    {
+       27,-5587, 5619, 5619,-5587,-5587,-5587,-5587,-5587,-5587,
+
+    -5587,-5587, 5620,-5587,-5587,-5587,-5587,-5587,-5587,-5587,
+    -5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,
+    -5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,
+    -5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,
+    -5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,-5587,
+    -5587,-5587,-5587,-5587,-5587
+    },
+
+    {
+       27,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,
+    -5588,-5588,-5588, 5621,-5588,-5588,-5588,-5588,-5588,-5588,
+    -5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,
+    -5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,
+
+    -5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,
+    -5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,-5588,
+    -5588,-5588,-5588,-5588,-5588
+    },
+
+    {
+       27,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,
+    -5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,
+    -5589,-5589,-5589,-5589,-5589,-5589,-5589, 5622,-5589,-5589,
+    -5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,
+    -5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,-5589,
+    -5589,-5589, 5622,-5589,-5589,-5589,-5589,-5589,-5589,-5589,
+    -5589,-5589,-5589,-5589,-5589
+
+    },
+
+    {
+       27,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,
+    -5590,-5590,-5590, 5623,-5590,-5590,-5590,-5590,-5590,-5590,
+    -5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,
+    -5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,
+    -5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,
+    -5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,-5590,
+    -5590,-5590,-5590,-5590,-5590
+    },
+
+    {
+       27,-5591, 5624, 5624,-5591,-5591,-5591,-5591,-5591,-5591,
+    -5591,-5591, 5625,-5591,-5591,-5591,-5591,-5591,-5591,-5591,
+    -5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,
+
+    -5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,
+    -5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,
+    -5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,-5591,
+    -5591,-5591,-5591,-5591,-5591
+    },
+
+    {
+       27,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,
+    -5592,-5592,-5592, 5626,-5592,-5592,-5592,-5592,-5592,-5592,
+    -5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,
+    -5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,
+    -5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,
+    -5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,-5592,
+
+    -5592,-5592,-5592,-5592,-5592
+    },
+
+    {
+       27,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,
+    -5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,
+    -5593,-5593,-5593,-5593,-5593,-5593,-5593, 5627,-5593,-5593,
+    -5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,
+    -5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,-5593,
+    -5593,-5593, 5627,-5593,-5593,-5593,-5593,-5593,-5593,-5593,
+    -5593,-5593,-5593,-5593,-5593
+    },
+
+    {
+       27,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,
+    -5594,-5594,-5594, 5628,-5594,-5594,-5594,-5594,-5594,-5594,
+
+    -5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,
+    -5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,
+    -5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,
+    -5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,-5594,
+    -5594,-5594,-5594,-5594,-5594
+    },
+
+    {
+       27,-5595, 5629, 5629,-5595,-5595,-5595,-5595,-5595,-5595,
+    -5595,-5595, 5630,-5595,-5595,-5595,-5595,-5595,-5595,-5595,
+    -5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,
+    -5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,
+    -5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,
+
+    -5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,-5595,
+    -5595,-5595,-5595,-5595,-5595
+    },
+
+    {
+       27,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,
+    -5596,-5596,-5596, 5631,-5596,-5596,-5596,-5596,-5596,-5596,
+    -5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,
+    -5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,
+    -5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,
+    -5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,-5596,
+    -5596,-5596,-5596,-5596,-5596
+    },
+
+    {
+       27,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,
+
+    -5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,
+    -5597,-5597,-5597,-5597,-5597,-5597,-5597, 5632,-5597,-5597,
+    -5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,
+    -5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,-5597,
+    -5597,-5597, 5632,-5597,-5597,-5597,-5597,-5597,-5597,-5597,
+    -5597,-5597,-5597,-5597,-5597
+    },
+
+    {
+       27,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,
+    -5598,-5598,-5598, 5633,-5598,-5598,-5598,-5598,-5598,-5598,
+    -5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,
+    -5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,
+
+    -5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,
+    -5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,-5598,
+    -5598,-5598,-5598,-5598,-5598
+    },
+
+    {
+       27,-5599, 5634, 5634,-5599,-5599,-5599,-5599,-5599,-5599,
+    -5599,-5599, 5635,-5599,-5599,-5599,-5599,-5599,-5599,-5599,
+    -5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,
+    -5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,
+    -5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,
+    -5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,-5599,
+    -5599,-5599,-5599,-5599,-5599
+
+    },
+
+    {
+       27,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,
+    -5600,-5600,-5600, 5636,-5600,-5600,-5600,-5600,-5600,-5600,
+    -5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,
+    -5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,
+    -5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,
+    -5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,-5600,
+    -5600,-5600,-5600,-5600,-5600
+    },
+
+    {
+       27,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,
+    -5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,
+    -5601,-5601,-5601,-5601,-5601,-5601,-5601, 5637,-5601,-5601,
+
+    -5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,
+    -5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,-5601,
+    -5601,-5601, 5637,-5601,-5601,-5601,-5601,-5601,-5601,-5601,
+    -5601,-5601,-5601,-5601,-5601
+    },
+
+    {
+       27,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,
+    -5602,-5602,-5602, 5638,-5602,-5602,-5602,-5602,-5602,-5602,
+    -5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,
+    -5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,
+    -5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,
+    -5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,-5602,
+
+    -5602,-5602,-5602,-5602,-5602
+    },
+
+    {
+       27,-5603, 5639, 5639,-5603,-5603,-5603,-5603,-5603,-5603,
+    -5603,-5603, 5640,-5603,-5603,-5603,-5603,-5603,-5603,-5603,
+    -5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,
+    -5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,
+    -5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,
+    -5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,-5603,
+    -5603,-5603,-5603,-5603,-5603
+    },
+
+    {
+       27,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,
+    -5604,-5604,-5604, 5641,-5604,-5604,-5604,-5604,-5604,-5604,
+
+    -5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,
+    -5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,
+    -5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,
+    -5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,-5604,
+    -5604,-5604,-5604,-5604,-5604
+    },
+
+    {
+       27,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,
+    -5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,
+    -5605,-5605,-5605,-5605,-5605,-5605,-5605, 5642,-5605,-5605,
+    -5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,
+    -5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,-5605,
+
+    -5605,-5605, 5642,-5605,-5605,-5605,-5605,-5605,-5605,-5605,
+    -5605,-5605,-5605,-5605,-5605
+    },
+
+    {
+       27,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,
+    -5606,-5606,-5606, 5643,-5606,-5606,-5606,-5606,-5606,-5606,
+    -5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,
+    -5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,
+    -5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,
+    -5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,-5606,
+    -5606,-5606,-5606,-5606,-5606
+    },
+
+    {
+       27,-5607, 5644, 5644,-5607,-5607,-5607,-5607,-5607,-5607,
+
+    -5607,-5607, 5645,-5607,-5607,-5607,-5607,-5607,-5607,-5607,
+    -5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,
+    -5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,
+    -5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,
+    -5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,-5607,
+    -5607,-5607,-5607,-5607,-5607
+    },
+
+    {
+       27,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,
+    -5608,-5608,-5608, 5646,-5608,-5608,-5608,-5608,-5608,-5608,
+    -5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,
+    -5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,
+
+    -5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,
+    -5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,-5608,
+    -5608,-5608,-5608,-5608,-5608
+    },
+
+    {
+       27,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,
+    -5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,
+    -5609,-5609,-5609,-5609,-5609,-5609,-5609, 5647,-5609,-5609,
+    -5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,
+    -5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,-5609,
+    -5609,-5609, 5647,-5609,-5609,-5609,-5609,-5609,-5609,-5609,
+    -5609,-5609,-5609,-5609,-5609
+
+    },
+
+    {
+       27,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,
+    -5610,-5610,-5610, 5648,-5610,-5610,-5610,-5610,-5610,-5610,
+    -5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,
+    -5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,
+    -5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,
+    -5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,-5610,
+    -5610,-5610,-5610,-5610,-5610
+    },
+
+    {
+       27,-5611, 5649, 5649,-5611,-5611,-5611,-5611,-5611,-5611,
+    -5611,-5611, 5650,-5611,-5611,-5611,-5611,-5611,-5611,-5611,
+    -5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,
+
+    -5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,
+    -5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,
+    -5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,-5611,
+    -5611,-5611,-5611,-5611,-5611
+    },
+
+    {
+       27,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,
+    -5612,-5612,-5612, 5651,-5612,-5612,-5612,-5612,-5612,-5612,
+    -5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,
+    -5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,
+    -5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,
+    -5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,-5612,
+
+    -5612,-5612,-5612,-5612,-5612
+    },
+
+    {
+       27,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,
+    -5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,
+    -5613,-5613,-5613,-5613,-5613,-5613,-5613, 5652,-5613,-5613,
+    -5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,
+    -5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,-5613,
+    -5613,-5613, 5652,-5613,-5613,-5613,-5613,-5613,-5613,-5613,
+    -5613,-5613,-5613,-5613,-5613
+    },
+
+    {
+       27,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,
+    -5614,-5614,-5614, 5653,-5614,-5614,-5614,-5614,-5614,-5614,
+
+    -5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,
+    -5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,
+    -5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,
+    -5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,-5614,
+    -5614,-5614,-5614,-5614,-5614
+    },
+
+    {
+       27,-5615, 5654, 5654,-5615,-5615,-5615,-5615,-5615,-5615,
+    -5615,-5615, 5655,-5615,-5615,-5615,-5615,-5615,-5615,-5615,
+    -5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,
+    -5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,
+    -5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,
+
+    -5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,-5615,
+    -5615,-5615,-5615,-5615,-5615
+    },
+
+    {
+       27,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,
+    -5616,-5616,-5616, 5656,-5616,-5616,-5616,-5616,-5616,-5616,
+    -5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,
+    -5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,
+    -5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,
+    -5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,-5616,
+    -5616,-5616,-5616,-5616,-5616
+    },
+
+    {
+       27,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,
+
+    -5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,
+    -5617,-5617,-5617,-5617,-5617,-5617,-5617, 5657,-5617,-5617,
+    -5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,
+    -5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,-5617,
+    -5617,-5617, 5657,-5617,-5617,-5617,-5617,-5617,-5617,-5617,
+    -5617,-5617,-5617,-5617,-5617
+    },
+
+    {
+       27,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,
+    -5618,-5618,-5618, 5658,-5618,-5618,-5618,-5618,-5618,-5618,
+    -5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,
+    -5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,
+
+    -5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,
+    -5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,-5618,
+    -5618,-5618,-5618,-5618,-5618
+    },
+
+    {
+       27,-5619, 5619, 5619,-5619,-5619,-5619,-5619,-5619,-5619,
+    -5619,-5619, 5620,-5619,-5619,-5619,-5619,-5619,-5619,-5619,
+    -5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,
+    -5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,
+    -5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,
+    -5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,-5619,
+    -5619,-5619,-5619,-5619,-5619
+
+    },
+
+    {
+       27,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,
+    -5620,-5620,-5620,-5620,-5620,-5620, 5659,-5620,-5620,-5620,
+    -5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,
+    -5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,
+    -5620,-5620, 5659,-5620,-5620,-5620,-5620,-5620,-5620,-5620,
+    -5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,-5620,
+    -5620,-5620,-5620,-5620,-5620
+    },
+
+    {
+       27,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,
+    -5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,
+    -5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,
+
+    -5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,
+    -5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,
+    -5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,-5621,
+    -5621,-5621,-5621,-5621,-5621
+    },
+
+    {
+       27,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,
+    -5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,
+    -5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,
+    -5622,-5622,-5622, 5660,-5622,-5622,-5622,-5622,-5622,-5622,
+    -5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622,
+    -5622,-5622,-5622,-5622,-5622,-5622,-5622,-5622, 5660,-5622,
+
+    -5622,-5622,-5622,-5622,-5622
+    },
+
+    {
+       27,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,
+    -5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,
+    -5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,
+    -5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,
+    -5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,
+    -5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,-5623,
+    -5623,-5623,-5623,-5623,-5623
+    },
+
+    {
+       27,-5624, 5624, 5624,-5624,-5624,-5624,-5624,-5624,-5624,
+    -5624,-5624, 5625,-5624,-5624,-5624,-5624,-5624,-5624,-5624,
+
+    -5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,
+    -5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,
+    -5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,
+    -5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,-5624,
+    -5624,-5624,-5624,-5624,-5624
+    },
+
+    {
+       27,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,
+    -5625,-5625,-5625,-5625,-5625,-5625, 5661,-5625,-5625,-5625,
+    -5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,
+    -5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,
+    -5625,-5625, 5661,-5625,-5625,-5625,-5625,-5625,-5625,-5625,
+
+    -5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,-5625,
+    -5625,-5625,-5625,-5625,-5625
+    },
+
+    {
+       27,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,
+    -5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,
+    -5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,
+    -5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,
+    -5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,
+    -5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,-5626,
+    -5626,-5626,-5626,-5626,-5626
+    },
+
+    {
+       27,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,
+
+    -5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,
+    -5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,
+    -5627,-5627,-5627, 5662,-5627,-5627,-5627,-5627,-5627,-5627,
+    -5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627,
+    -5627,-5627,-5627,-5627,-5627,-5627,-5627,-5627, 5662,-5627,
+    -5627,-5627,-5627,-5627,-5627
+    },
+
+    {
+       27,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,
+    -5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,
+    -5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,
+    -5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,
+
+    -5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,
+    -5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,-5628,
+    -5628,-5628,-5628,-5628,-5628
+    },
+
+    {
+       27,-5629, 5629, 5629,-5629,-5629,-5629,-5629,-5629,-5629,
+    -5629,-5629, 5630,-5629,-5629,-5629,-5629,-5629,-5629,-5629,
+    -5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,
+    -5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,
+    -5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,
+    -5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,-5629,
+    -5629,-5629,-5629,-5629,-5629
+
+    },
+
+    {
+       27,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,
+    -5630,-5630,-5630,-5630,-5630,-5630, 5663,-5630,-5630,-5630,
+    -5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,
+    -5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,
+    -5630,-5630, 5663,-5630,-5630,-5630,-5630,-5630,-5630,-5630,
+    -5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,-5630,
+    -5630,-5630,-5630,-5630,-5630
+    },
+
+    {
+       27,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,
+    -5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,
+    -5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,
+
+    -5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,
+    -5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,
+    -5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,-5631,
+    -5631,-5631,-5631,-5631,-5631
+    },
+
+    {
+       27,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,
+    -5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,
+    -5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,
+    -5632,-5632,-5632, 5664,-5632,-5632,-5632,-5632,-5632,-5632,
+    -5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632,
+    -5632,-5632,-5632,-5632,-5632,-5632,-5632,-5632, 5664,-5632,
+
+    -5632,-5632,-5632,-5632,-5632
+    },
+
+    {
+       27,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,
+    -5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,
+    -5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,
+    -5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,
+    -5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,
+    -5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,-5633,
+    -5633,-5633,-5633,-5633,-5633
+    },
+
+    {
+       27,-5634, 5634, 5634,-5634,-5634,-5634,-5634,-5634,-5634,
+    -5634,-5634, 5635,-5634,-5634,-5634,-5634,-5634,-5634,-5634,
+
+    -5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,
+    -5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,
+    -5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,
+    -5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,-5634,
+    -5634,-5634,-5634,-5634,-5634
+    },
+
+    {
+       27,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,
+    -5635,-5635,-5635,-5635,-5635,-5635, 5665,-5635,-5635,-5635,
+    -5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,
+    -5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,
+    -5635,-5635, 5665,-5635,-5635,-5635,-5635,-5635,-5635,-5635,
+
+    -5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,-5635,
+    -5635,-5635,-5635,-5635,-5635
+    },
+
+    {
+       27,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,
+    -5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,
+    -5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,
+    -5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,
+    -5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,
+    -5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,-5636,
+    -5636,-5636,-5636,-5636,-5636
+    },
+
+    {
+       27,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,
+
+    -5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,
+    -5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,
+    -5637,-5637,-5637, 5666,-5637,-5637,-5637,-5637,-5637,-5637,
+    -5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637,
+    -5637,-5637,-5637,-5637,-5637,-5637,-5637,-5637, 5666,-5637,
+    -5637,-5637,-5637,-5637,-5637
+    },
+
+    {
+       27,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,
+    -5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,
+    -5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,
+    -5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,
+
+    -5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,
+    -5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,-5638,
+    -5638,-5638,-5638,-5638,-5638
+    },
+
+    {
+       27,-5639, 5639, 5639,-5639,-5639,-5639,-5639,-5639,-5639,
+    -5639,-5639, 5640,-5639,-5639,-5639,-5639,-5639,-5639,-5639,
+    -5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,
+    -5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,
+    -5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,
+    -5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,-5639,
+    -5639,-5639,-5639,-5639,-5639
+
+    },
+
+    {
+       27,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,
+    -5640,-5640,-5640,-5640,-5640,-5640, 5667,-5640,-5640,-5640,
+    -5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,
+    -5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,
+    -5640,-5640, 5667,-5640,-5640,-5640,-5640,-5640,-5640,-5640,
+    -5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,-5640,
+    -5640,-5640,-5640,-5640,-5640
+    },
+
+    {
+       27,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,
+    -5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,
+    -5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,
+
+    -5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,
+    -5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,
+    -5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,-5641,
+    -5641,-5641,-5641,-5641,-5641
+    },
+
+    {
+       27,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,
+    -5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,
+    -5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,
+    -5642,-5642,-5642, 5668,-5642,-5642,-5642,-5642,-5642,-5642,
+    -5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642,
+    -5642,-5642,-5642,-5642,-5642,-5642,-5642,-5642, 5668,-5642,
+
+    -5642,-5642,-5642,-5642,-5642
+    },
+
+    {
+       27,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,
+    -5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,
+    -5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,
+    -5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,
+    -5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,
+    -5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,-5643,
+    -5643,-5643,-5643,-5643,-5643
+    },
+
+    {
+       27,-5644, 5644, 5644,-5644,-5644,-5644,-5644,-5644,-5644,
+    -5644,-5644, 5645,-5644,-5644,-5644,-5644,-5644,-5644,-5644,
+
+    -5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,
+    -5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,
+    -5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,
+    -5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,-5644,
+    -5644,-5644,-5644,-5644,-5644
+    },
+
+    {
+       27,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,
+    -5645,-5645,-5645,-5645,-5645,-5645, 5669,-5645,-5645,-5645,
+    -5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,
+    -5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,
+    -5645,-5645, 5669,-5645,-5645,-5645,-5645,-5645,-5645,-5645,
+
+    -5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,-5645,
+    -5645,-5645,-5645,-5645,-5645
+    },
+
+    {
+       27,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,
+    -5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,
+    -5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,
+    -5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,
+    -5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,
+    -5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,-5646,
+    -5646,-5646,-5646,-5646,-5646
+    },
+
+    {
+       27,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,
+
+    -5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,
+    -5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,
+    -5647,-5647,-5647, 5670,-5647,-5647,-5647,-5647,-5647,-5647,
+    -5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647,
+    -5647,-5647,-5647,-5647,-5647,-5647,-5647,-5647, 5670,-5647,
+    -5647,-5647,-5647,-5647,-5647
+    },
+
+    {
+       27,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,
+    -5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,
+    -5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,
+    -5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,
+
+    -5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,
+    -5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,-5648,
+    -5648,-5648,-5648,-5648,-5648
+    },
+
+    {
+       27,-5649, 5649, 5649,-5649,-5649,-5649,-5649,-5649,-5649,
+    -5649,-5649, 5650,-5649,-5649,-5649,-5649,-5649,-5649,-5649,
+    -5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,
+    -5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,
+    -5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,
+    -5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,-5649,
+    -5649,-5649,-5649,-5649,-5649
+
+    },
+
+    {
+       27,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,
+    -5650,-5650,-5650,-5650,-5650,-5650, 5671,-5650,-5650,-5650,
+    -5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,
+    -5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,
+    -5650,-5650, 5671,-5650,-5650,-5650,-5650,-5650,-5650,-5650,
+    -5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,-5650,
+    -5650,-5650,-5650,-5650,-5650
+    },
+
+    {
+       27,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,
+    -5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,
+    -5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,
+
+    -5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,
+    -5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,
+    -5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,-5651,
+    -5651,-5651,-5651,-5651,-5651
+    },
+
+    {
+       27,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,
+    -5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,
+    -5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,
+    -5652,-5652,-5652, 5672,-5652,-5652,-5652,-5652,-5652,-5652,
+    -5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652,
+    -5652,-5652,-5652,-5652,-5652,-5652,-5652,-5652, 5672,-5652,
+
+    -5652,-5652,-5652,-5652,-5652
+    },
+
+    {
+       27,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,
+    -5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,
+    -5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,
+    -5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,
+    -5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,
+    -5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,-5653,
+    -5653,-5653,-5653,-5653,-5653
+    },
+
+    {
+       27,-5654, 5654, 5654,-5654,-5654,-5654,-5654,-5654,-5654,
+    -5654,-5654, 5655,-5654,-5654,-5654,-5654,-5654,-5654,-5654,
+
+    -5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,
+    -5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,
+    -5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,
+    -5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,-5654,
+    -5654,-5654,-5654,-5654,-5654
+    },
+
+    {
+       27,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,
+    -5655,-5655,-5655,-5655,-5655,-5655, 5673,-5655,-5655,-5655,
+    -5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,
+    -5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,
+    -5655,-5655, 5673,-5655,-5655,-5655,-5655,-5655,-5655,-5655,
+
+    -5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,-5655,
+    -5655,-5655,-5655,-5655,-5655
+    },
+
+    {
+       27,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,
+    -5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,
+    -5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,
+    -5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,
+    -5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,
+    -5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,-5656,
+    -5656,-5656,-5656,-5656,-5656
+    },
+
+    {
+       27,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,
+
+    -5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,
+    -5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,
+    -5657,-5657,-5657, 5674,-5657,-5657,-5657,-5657,-5657,-5657,
+    -5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657,
+    -5657,-5657,-5657,-5657,-5657,-5657,-5657,-5657, 5674,-5657,
+    -5657,-5657,-5657,-5657,-5657
+    },
+
+    {
+       27,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,
+    -5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,
+    -5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,
+    -5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,
+
+    -5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,
+    -5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,-5658,
+    -5658,-5658,-5658,-5658,-5658
+    },
+
+    {
+       27,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,
+    -5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,
+    -5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659, 5675,-5659,
+    -5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,
+    -5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,-5659,
+    -5659,-5659,-5659, 5675,-5659,-5659,-5659,-5659,-5659,-5659,
+    -5659,-5659,-5659,-5659,-5659
+
+    },
+
+    {
+       27,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,
+    -5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,
+    -5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,
+    -5660,-5660, 5676,-5660,-5660,-5660,-5660,-5660,-5660,-5660,
+    -5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,-5660,
+    -5660,-5660,-5660,-5660,-5660,-5660,-5660, 5676,-5660,-5660,
+    -5660,-5660,-5660,-5660,-5660
+    },
+
+    {
+       27,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,
+    -5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,
+    -5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661, 5677,-5661,
+
+    -5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,
+    -5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,-5661,
+    -5661,-5661,-5661, 5677,-5661,-5661,-5661,-5661,-5661,-5661,
+    -5661,-5661,-5661,-5661,-5661
+    },
+
+    {
+       27,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,
+    -5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,
+    -5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,
+    -5662,-5662, 5678,-5662,-5662,-5662,-5662,-5662,-5662,-5662,
+    -5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,-5662,
+    -5662,-5662,-5662,-5662,-5662,-5662,-5662, 5678,-5662,-5662,
+
+    -5662,-5662,-5662,-5662,-5662
+    },
+
+    {
+       27,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,
+    -5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,
+    -5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663, 5679,-5663,
+    -5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,
+    -5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,-5663,
+    -5663,-5663,-5663, 5679,-5663,-5663,-5663,-5663,-5663,-5663,
+    -5663,-5663,-5663,-5663,-5663
+    },
+
+    {
+       27,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,
+    -5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,
+
+    -5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,
+    -5664,-5664, 5680,-5664,-5664,-5664,-5664,-5664,-5664,-5664,
+    -5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,-5664,
+    -5664,-5664,-5664,-5664,-5664,-5664,-5664, 5680,-5664,-5664,
+    -5664,-5664,-5664,-5664,-5664
+    },
+
+    {
+       27,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,
+    -5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,
+    -5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665, 5681,-5665,
+    -5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,
+    -5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,-5665,
+
+    -5665,-5665,-5665, 5681,-5665,-5665,-5665,-5665,-5665,-5665,
+    -5665,-5665,-5665,-5665,-5665
+    },
+
+    {
+       27,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,
+    -5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,
+    -5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,
+    -5666,-5666, 5682,-5666,-5666,-5666,-5666,-5666,-5666,-5666,
+    -5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,-5666,
+    -5666,-5666,-5666,-5666,-5666,-5666,-5666, 5682,-5666,-5666,
+    -5666,-5666,-5666,-5666,-5666
+    },
+
+    {
+       27,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,
+
+    -5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,
+    -5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667, 5683,-5667,
+    -5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,
+    -5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,-5667,
+    -5667,-5667,-5667, 5683,-5667,-5667,-5667,-5667,-5667,-5667,
+    -5667,-5667,-5667,-5667,-5667
+    },
+
+    {
+       27,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,
+    -5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,
+    -5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,
+    -5668,-5668, 5684,-5668,-5668,-5668,-5668,-5668,-5668,-5668,
+
+    -5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,-5668,
+    -5668,-5668,-5668,-5668,-5668,-5668,-5668, 5684,-5668,-5668,
+    -5668,-5668,-5668,-5668,-5668
+    },
+
+    {
+       27,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,
+    -5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,
+    -5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669, 5685,-5669,
+    -5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,
+    -5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,-5669,
+    -5669,-5669,-5669, 5685,-5669,-5669,-5669,-5669,-5669,-5669,
+    -5669,-5669,-5669,-5669,-5669
+
+    },
+
+    {
+       27,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,
+    -5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,
+    -5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,
+    -5670,-5670, 5686,-5670,-5670,-5670,-5670,-5670,-5670,-5670,
+    -5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,-5670,
+    -5670,-5670,-5670,-5670,-5670,-5670,-5670, 5686,-5670,-5670,
+    -5670,-5670,-5670,-5670,-5670
+    },
+
+    {
+       27,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,
+    -5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,
+    -5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671, 5687,-5671,
+
+    -5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,
+    -5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,-5671,
+    -5671,-5671,-5671, 5687,-5671,-5671,-5671,-5671,-5671,-5671,
+    -5671,-5671,-5671,-5671,-5671
+    },
+
+    {
+       27,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,
+    -5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,
+    -5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,
+    -5672,-5672, 5688,-5672,-5672,-5672,-5672,-5672,-5672,-5672,
+    -5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,-5672,
+    -5672,-5672,-5672,-5672,-5672,-5672,-5672, 5688,-5672,-5672,
+
+    -5672,-5672,-5672,-5672,-5672
+    },
+
+    {
+       27,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,
+    -5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,
+    -5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673, 5689,-5673,
+    -5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,
+    -5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,-5673,
+    -5673,-5673,-5673, 5689,-5673,-5673,-5673,-5673,-5673,-5673,
+    -5673,-5673,-5673,-5673,-5673
+    },
+
+    {
+       27,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,
+    -5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,
+
+    -5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,
+    -5674,-5674, 5690,-5674,-5674,-5674,-5674,-5674,-5674,-5674,
+    -5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,-5674,
+    -5674,-5674,-5674,-5674,-5674,-5674,-5674, 5690,-5674,-5674,
+    -5674,-5674,-5674,-5674,-5674
+    },
+
+    {
+       27,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,
+    -5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,
+    -5675,-5675,-5675,-5675,-5675,-5675,-5675, 5691,-5675,-5675,
+    -5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,
+    -5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,-5675,
+
+    -5675,-5675, 5691,-5675,-5675,-5675,-5675,-5675,-5675,-5675,
+    -5675,-5675,-5675,-5675,-5675
+    },
+
+    {
+       27,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,
+    -5676,-5676,-5676, 5692,-5676,-5676,-5676,-5676,-5676,-5676,
+    -5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,
+    -5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,
+    -5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,
+    -5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,-5676,
+    -5676,-5676,-5676,-5676,-5676
+    },
+
+    {
+       27,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,
+
+    -5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,
+    -5677,-5677,-5677,-5677,-5677,-5677,-5677, 5693,-5677,-5677,
+    -5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,
+    -5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,-5677,
+    -5677,-5677, 5693,-5677,-5677,-5677,-5677,-5677,-5677,-5677,
+    -5677,-5677,-5677,-5677,-5677
+    },
+
+    {
+       27,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,
+    -5678,-5678,-5678, 5694,-5678,-5678,-5678,-5678,-5678,-5678,
+    -5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,
+    -5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,
+
+    -5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,
+    -5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,-5678,
+    -5678,-5678,-5678,-5678,-5678
+    },
+
+    {
+       27,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,
+    -5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,
+    -5679,-5679,-5679,-5679,-5679,-5679,-5679, 5695,-5679,-5679,
+    -5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,
+    -5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,-5679,
+    -5679,-5679, 5695,-5679,-5679,-5679,-5679,-5679,-5679,-5679,
+    -5679,-5679,-5679,-5679,-5679
+
+    },
+
+    {
+       27,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,
+    -5680,-5680,-5680, 5696,-5680,-5680,-5680,-5680,-5680,-5680,
+    -5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,
+    -5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,
+    -5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,
+    -5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,-5680,
+    -5680,-5680,-5680,-5680,-5680
+    },
+
+    {
+       27,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,
+    -5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,
+    -5681,-5681,-5681,-5681,-5681,-5681,-5681, 5697,-5681,-5681,
+
+    -5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,
+    -5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,-5681,
+    -5681,-5681, 5697,-5681,-5681,-5681,-5681,-5681,-5681,-5681,
+    -5681,-5681,-5681,-5681,-5681
+    },
+
+    {
+       27,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,
+    -5682,-5682,-5682, 5698,-5682,-5682,-5682,-5682,-5682,-5682,
+    -5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,
+    -5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,
+    -5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,
+    -5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,-5682,
+
+    -5682,-5682,-5682,-5682,-5682
+    },
+
+    {
+       27,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,
+    -5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,
+    -5683,-5683,-5683,-5683,-5683,-5683,-5683, 5699,-5683,-5683,
+    -5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,
+    -5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,-5683,
+    -5683,-5683, 5699,-5683,-5683,-5683,-5683,-5683,-5683,-5683,
+    -5683,-5683,-5683,-5683,-5683
+    },
+
+    {
+       27,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,
+    -5684,-5684,-5684, 5700,-5684,-5684,-5684,-5684,-5684,-5684,
+
+    -5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,
+    -5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,
+    -5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,
+    -5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,-5684,
+    -5684,-5684,-5684,-5684,-5684
+    },
+
+    {
+       27,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,
+    -5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,
+    -5685,-5685,-5685,-5685,-5685,-5685,-5685, 5701,-5685,-5685,
+    -5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,
+    -5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,-5685,
+
+    -5685,-5685, 5701,-5685,-5685,-5685,-5685,-5685,-5685,-5685,
+    -5685,-5685,-5685,-5685,-5685
+    },
+
+    {
+       27,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,
+    -5686,-5686,-5686, 5702,-5686,-5686,-5686,-5686,-5686,-5686,
+    -5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,
+    -5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,
+    -5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,
+    -5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,-5686,
+    -5686,-5686,-5686,-5686,-5686
+    },
+
+    {
+       27,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,
+
+    -5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,
+    -5687,-5687,-5687,-5687,-5687,-5687,-5687, 5703,-5687,-5687,
+    -5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,
+    -5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,-5687,
+    -5687,-5687, 5703,-5687,-5687,-5687,-5687,-5687,-5687,-5687,
+    -5687,-5687,-5687,-5687,-5687
+    },
+
+    {
+       27,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,
+    -5688,-5688,-5688, 5704,-5688,-5688,-5688,-5688,-5688,-5688,
+    -5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,
+    -5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,
+
+    -5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,
+    -5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,-5688,
+    -5688,-5688,-5688,-5688,-5688
+    },
+
+    {
+       27,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,
+    -5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,
+    -5689,-5689,-5689,-5689,-5689,-5689,-5689, 5705,-5689,-5689,
+    -5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,
+    -5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,-5689,
+    -5689,-5689, 5705,-5689,-5689,-5689,-5689,-5689,-5689,-5689,
+    -5689,-5689,-5689,-5689,-5689
+
+    },
+
+    {
+       27,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,
+    -5690,-5690,-5690, 5706,-5690,-5690,-5690,-5690,-5690,-5690,
+    -5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,
+    -5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,
+    -5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,
+    -5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,-5690,
+    -5690,-5690,-5690,-5690,-5690
+    },
+
+    {
+       27,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,
+    -5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,
+    -5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,
+
+    -5691,-5691,-5691, 5707,-5691,-5691,-5691,-5691,-5691,-5691,
+    -5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691,
+    -5691,-5691,-5691,-5691,-5691,-5691,-5691,-5691, 5707,-5691,
+    -5691,-5691,-5691,-5691,-5691
+    },
+
+    {
+       27,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,
+    -5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,
+    -5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,
+    -5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,
+    -5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,
+    -5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,-5692,
+
+    -5692,-5692,-5692,-5692,-5692
+    },
+
+    {
+       27,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,
+    -5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,
+    -5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,
+    -5693,-5693,-5693, 5708,-5693,-5693,-5693,-5693,-5693,-5693,
+    -5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693,
+    -5693,-5693,-5693,-5693,-5693,-5693,-5693,-5693, 5708,-5693,
+    -5693,-5693,-5693,-5693,-5693
+    },
+
+    {
+       27,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,
+    -5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,
+
+    -5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,
+    -5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,
+    -5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,
+    -5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,-5694,
+    -5694,-5694,-5694,-5694,-5694
+    },
+
+    {
+       27,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,
+    -5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,
+    -5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,
+    -5695,-5695,-5695, 5709,-5695,-5695,-5695,-5695,-5695,-5695,
+    -5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695,
+
+    -5695,-5695,-5695,-5695,-5695,-5695,-5695,-5695, 5709,-5695,
+    -5695,-5695,-5695,-5695,-5695
+    },
+
+    {
+       27,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,
+    -5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,
+    -5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,
+    -5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,
+    -5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,
+    -5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,-5696,
+    -5696,-5696,-5696,-5696,-5696
+    },
+
+    {
+       27,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,
+
+    -5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,
+    -5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,
+    -5697,-5697,-5697, 5710,-5697,-5697,-5697,-5697,-5697,-5697,
+    -5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697,
+    -5697,-5697,-5697,-5697,-5697,-5697,-5697,-5697, 5710,-5697,
+    -5697,-5697,-5697,-5697,-5697
+    },
+
+    {
+       27,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,
+    -5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,
+    -5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,
+    -5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,
+
+    -5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,
+    -5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,-5698,
+    -5698,-5698,-5698,-5698,-5698
+    },
+
+    {
+       27,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,
+    -5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,
+    -5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,
+    -5699,-5699,-5699, 5711,-5699,-5699,-5699,-5699,-5699,-5699,
+    -5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699,
+    -5699,-5699,-5699,-5699,-5699,-5699,-5699,-5699, 5711,-5699,
+    -5699,-5699,-5699,-5699,-5699
+
+    },
+
+    {
+       27,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,
+    -5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,
+    -5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,
+    -5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,
+    -5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,
+    -5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,-5700,
+    -5700,-5700,-5700,-5700,-5700
+    },
+
+    {
+       27,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,
+    -5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,
+    -5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,
+
+    -5701,-5701,-5701, 5712,-5701,-5701,-5701,-5701,-5701,-5701,
+    -5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701,
+    -5701,-5701,-5701,-5701,-5701,-5701,-5701,-5701, 5712,-5701,
+    -5701,-5701,-5701,-5701,-5701
+    },
+
+    {
+       27,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,
+    -5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,
+    -5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,
+    -5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,
+    -5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,
+    -5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,-5702,
+
+    -5702,-5702,-5702,-5702,-5702
+    },
+
+    {
+       27,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,
+    -5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,
+    -5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,
+    -5703,-5703,-5703, 5713,-5703,-5703,-5703,-5703,-5703,-5703,
+    -5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703,
+    -5703,-5703,-5703,-5703,-5703,-5703,-5703,-5703, 5713,-5703,
+    -5703,-5703,-5703,-5703,-5703
+    },
+
+    {
+       27,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,
+    -5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,
+
+    -5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,
+    -5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,
+    -5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,
+    -5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,-5704,
+    -5704,-5704,-5704,-5704,-5704
+    },
+
+    {
+       27,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,
+    -5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,
+    -5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,
+    -5705,-5705,-5705, 5714,-5705,-5705,-5705,-5705,-5705,-5705,
+    -5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705,
+
+    -5705,-5705,-5705,-5705,-5705,-5705,-5705,-5705, 5714,-5705,
+    -5705,-5705,-5705,-5705,-5705
+    },
+
+    {
+       27,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,
+    -5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,
+    -5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,
+    -5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,
+    -5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,
+    -5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,-5706,
+    -5706,-5706,-5706,-5706,-5706
+    },
+
+    {
+       27,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,
+
+    -5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707, 5715,-5707,
+    -5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,
+    -5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,
+    -5707,-5707,-5707,-5707, 5715,-5707,-5707,-5707,-5707,-5707,
+    -5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,-5707,
+    -5707,-5707,-5707,-5707,-5707
+    },
+
+    {
+       27,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,
+    -5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708, 5716,-5708,
+    -5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,
+    -5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,
+
+    -5708,-5708,-5708,-5708, 5716,-5708,-5708,-5708,-5708,-5708,
+    -5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,-5708,
+    -5708,-5708,-5708,-5708,-5708
+    },
+
+    {
+       27,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,
+    -5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709, 5717,-5709,
+    -5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,
+    -5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,
+    -5709,-5709,-5709,-5709, 5717,-5709,-5709,-5709,-5709,-5709,
+    -5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,-5709,
+    -5709,-5709,-5709,-5709,-5709
+
+    },
+
+    {
+       27,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,
+    -5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710, 5718,-5710,
+    -5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,
+    -5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,
+    -5710,-5710,-5710,-5710, 5718,-5710,-5710,-5710,-5710,-5710,
+    -5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,-5710,
+    -5710,-5710,-5710,-5710,-5710
+    },
+
+    {
+       27,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,
+    -5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711, 5719,-5711,
+    -5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,
+
+    -5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,
+    -5711,-5711,-5711,-5711, 5719,-5711,-5711,-5711,-5711,-5711,
+    -5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,-5711,
+    -5711,-5711,-5711,-5711,-5711
+    },
+
+    {
+       27,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,
+    -5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712, 5720,-5712,
+    -5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,
+    -5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,
+    -5712,-5712,-5712,-5712, 5720,-5712,-5712,-5712,-5712,-5712,
+    -5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,-5712,
+
+    -5712,-5712,-5712,-5712,-5712
+    },
+
+    {
+       27,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,
+    -5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713, 5721,-5713,
+    -5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,
+    -5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,
+    -5713,-5713,-5713,-5713, 5721,-5713,-5713,-5713,-5713,-5713,
+    -5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,-5713,
+    -5713,-5713,-5713,-5713,-5713
+    },
+
+    {
+       27,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,
+    -5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714, 5722,-5714,
+
+    -5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,
+    -5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,
+    -5714,-5714,-5714,-5714, 5722,-5714,-5714,-5714,-5714,-5714,
+    -5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,-5714,
+    -5714,-5714,-5714,-5714,-5714
+    },
+
+    {
+       27,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,
+    -5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,
+    -5715,-5715,-5715,-5715,-5715,-5715,-5715, 5723,-5715,-5715,
+    -5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,
+    -5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,-5715,
+
+    -5715,-5715, 5723,-5715,-5715,-5715,-5715,-5715,-5715,-5715,
+    -5715,-5715,-5715,-5715,-5715
+    },
+
+    {
+       27,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,
+    -5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,
+    -5716,-5716,-5716,-5716,-5716,-5716,-5716, 5724,-5716,-5716,
+    -5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,
+    -5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,-5716,
+    -5716,-5716, 5724,-5716,-5716,-5716,-5716,-5716,-5716,-5716,
+    -5716,-5716,-5716,-5716,-5716
+    },
+
+    {
+       27,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,
+
+    -5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,
+    -5717,-5717,-5717,-5717,-5717,-5717,-5717, 5725,-5717,-5717,
+    -5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,
+    -5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,-5717,
+    -5717,-5717, 5725,-5717,-5717,-5717,-5717,-5717,-5717,-5717,
+    -5717,-5717,-5717,-5717,-5717
+    },
+
+    {
+       27,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,
+    -5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,
+    -5718,-5718,-5718,-5718,-5718,-5718,-5718, 5726,-5718,-5718,
+    -5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,
+
+    -5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,-5718,
+    -5718,-5718, 5726,-5718,-5718,-5718,-5718,-5718,-5718,-5718,
+    -5718,-5718,-5718,-5718,-5718
+    },
+
+    {
+       27,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,
+    -5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,
+    -5719,-5719,-5719,-5719,-5719,-5719,-5719, 5727,-5719,-5719,
+    -5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,
+    -5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,-5719,
+    -5719,-5719, 5727,-5719,-5719,-5719,-5719,-5719,-5719,-5719,
+    -5719,-5719,-5719,-5719,-5719
+
+    },
+
+    {
+       27,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,
+    -5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,
+    -5720,-5720,-5720,-5720,-5720,-5720,-5720, 5728,-5720,-5720,
+    -5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,
+    -5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,-5720,
+    -5720,-5720, 5728,-5720,-5720,-5720,-5720,-5720,-5720,-5720,
+    -5720,-5720,-5720,-5720,-5720
+    },
+
+    {
+       27,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,
+    -5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,
+    -5721,-5721,-5721,-5721,-5721,-5721,-5721, 5729,-5721,-5721,
+
+    -5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,
+    -5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,-5721,
+    -5721,-5721, 5729,-5721,-5721,-5721,-5721,-5721,-5721,-5721,
+    -5721,-5721,-5721,-5721,-5721
+    },
+
+    {
+       27,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,
+    -5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,
+    -5722,-5722,-5722,-5722,-5722,-5722,-5722, 5730,-5722,-5722,
+    -5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,
+    -5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,-5722,
+    -5722,-5722, 5730,-5722,-5722,-5722,-5722,-5722,-5722,-5722,
+
+    -5722,-5722,-5722,-5722,-5722
+    },
+
+    {
+       27,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,
+    -5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,
+    -5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,
+    -5723,-5723,-5723, 5731,-5723,-5723,-5723,-5723,-5723,-5723,
+    -5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723,
+    -5723,-5723,-5723,-5723,-5723,-5723,-5723,-5723, 5731,-5723,
+    -5723,-5723,-5723,-5723,-5723
+    },
+
+    {
+       27,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,
+    -5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,
+
+    -5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,
+    -5724,-5724,-5724, 5732,-5724,-5724,-5724,-5724,-5724,-5724,
+    -5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724,
+    -5724,-5724,-5724,-5724,-5724,-5724,-5724,-5724, 5732,-5724,
+    -5724,-5724,-5724,-5724,-5724
+    },
+
+    {
+       27,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,
+    -5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,
+    -5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,
+    -5725,-5725,-5725, 5733,-5725,-5725,-5725,-5725,-5725,-5725,
+    -5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725,
+
+    -5725,-5725,-5725,-5725,-5725,-5725,-5725,-5725, 5733,-5725,
+    -5725,-5725,-5725,-5725,-5725
+    },
+
+    {
+       27,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,
+    -5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,
+    -5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,
+    -5726,-5726,-5726, 5734,-5726,-5726,-5726,-5726,-5726,-5726,
+    -5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726,
+    -5726,-5726,-5726,-5726,-5726,-5726,-5726,-5726, 5734,-5726,
+    -5726,-5726,-5726,-5726,-5726
+    },
+
+    {
+       27,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,
+
+    -5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,
+    -5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,
+    -5727,-5727,-5727, 5735,-5727,-5727,-5727,-5727,-5727,-5727,
+    -5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727,
+    -5727,-5727,-5727,-5727,-5727,-5727,-5727,-5727, 5735,-5727,
+    -5727,-5727,-5727,-5727,-5727
+    },
+
+    {
+       27,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,
+    -5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,
+    -5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,
+    -5728,-5728,-5728, 5736,-5728,-5728,-5728,-5728,-5728,-5728,
+
+    -5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728,
+    -5728,-5728,-5728,-5728,-5728,-5728,-5728,-5728, 5736,-5728,
+    -5728,-5728,-5728,-5728,-5728
+    },
+
+    {
+       27,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,
+    -5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,
+    -5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,
+    -5729,-5729,-5729, 5737,-5729,-5729,-5729,-5729,-5729,-5729,
+    -5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729,
+    -5729,-5729,-5729,-5729,-5729,-5729,-5729,-5729, 5737,-5729,
+    -5729,-5729,-5729,-5729,-5729
+
+    },
+
+    {
+       27,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,
+    -5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,
+    -5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,
+    -5730,-5730,-5730, 5738,-5730,-5730,-5730,-5730,-5730,-5730,
+    -5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730,
+    -5730,-5730,-5730,-5730,-5730,-5730,-5730,-5730, 5738,-5730,
+    -5730,-5730,-5730,-5730,-5730
+    },
+
+    {
+       27,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,
+    -5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,
+    -5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,
+
+    -5731,-5731, 5739,-5731,-5731,-5731,-5731,-5731,-5731,-5731,
+    -5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,-5731,
+    -5731,-5731,-5731,-5731,-5731,-5731,-5731, 5739,-5731,-5731,
+    -5731,-5731,-5731,-5731,-5731
+    },
+
+    {
+       27,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,
+    -5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,
+    -5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,
+    -5732,-5732, 5740,-5732,-5732,-5732,-5732,-5732,-5732,-5732,
+    -5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,-5732,
+    -5732,-5732,-5732,-5732,-5732,-5732,-5732, 5740,-5732,-5732,
+
+    -5732,-5732,-5732,-5732,-5732
+    },
+
+    {
+       27,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,
+    -5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,
+    -5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,
+    -5733,-5733, 5741,-5733,-5733,-5733,-5733,-5733,-5733,-5733,
+    -5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,-5733,
+    -5733,-5733,-5733,-5733,-5733,-5733,-5733, 5741,-5733,-5733,
+    -5733,-5733,-5733,-5733,-5733
+    },
+
+    {
+       27,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,
+    -5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,
+
+    -5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,
+    -5734,-5734, 5742,-5734,-5734,-5734,-5734,-5734,-5734,-5734,
+    -5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,-5734,
+    -5734,-5734,-5734,-5734,-5734,-5734,-5734, 5742,-5734,-5734,
+    -5734,-5734,-5734,-5734,-5734
+    },
+
+    {
+       27,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,
+    -5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,
+    -5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,
+    -5735,-5735, 5743,-5735,-5735,-5735,-5735,-5735,-5735,-5735,
+    -5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,-5735,
+
+    -5735,-5735,-5735,-5735,-5735,-5735,-5735, 5743,-5735,-5735,
+    -5735,-5735,-5735,-5735,-5735
+    },
+
+    {
+       27,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,
+    -5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,
+    -5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,
+    -5736,-5736, 5744,-5736,-5736,-5736,-5736,-5736,-5736,-5736,
+    -5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,-5736,
+    -5736,-5736,-5736,-5736,-5736,-5736,-5736, 5744,-5736,-5736,
+    -5736,-5736,-5736,-5736,-5736
+    },
+
+    {
+       27,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,
+
+    -5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,
+    -5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,
+    -5737,-5737, 5745,-5737,-5737,-5737,-5737,-5737,-5737,-5737,
+    -5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,-5737,
+    -5737,-5737,-5737,-5737,-5737,-5737,-5737, 5745,-5737,-5737,
+    -5737,-5737,-5737,-5737,-5737
+    },
+
+    {
+       27,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,
+    -5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,
+    -5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,
+    -5738,-5738, 5746,-5738,-5738,-5738,-5738,-5738,-5738,-5738,
+
+    -5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,-5738,
+    -5738,-5738,-5738,-5738,-5738,-5738,-5738, 5746,-5738,-5738,
+    -5738,-5738,-5738,-5738,-5738
+    },
+
+    {
+       27,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,
+    -5739,-5739,-5739, 5747,-5739,-5739,-5739,-5739,-5739,-5739,
+    -5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,
+    -5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,
+    -5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,
+    -5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,-5739,
+    -5739,-5739,-5739,-5739,-5739
+
+    },
+
+    {
+       27,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,
+    -5740,-5740,-5740, 5748,-5740,-5740,-5740,-5740,-5740,-5740,
+    -5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,
+    -5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,
+    -5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,
+    -5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,-5740,
+    -5740,-5740,-5740,-5740,-5740
+    },
+
+    {
+       27,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,
+    -5741,-5741,-5741, 5749,-5741,-5741,-5741,-5741,-5741,-5741,
+    -5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,
+
+    -5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,
+    -5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,
+    -5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,-5741,
+    -5741,-5741,-5741,-5741,-5741
+    },
+
+    {
+       27,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,
+    -5742,-5742,-5742, 5750,-5742,-5742,-5742,-5742,-5742,-5742,
+    -5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,
+    -5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,
+    -5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,
+    -5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,-5742,
+
+    -5742,-5742,-5742,-5742,-5742
+    },
+
+    {
+       27,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,
+    -5743,-5743,-5743, 5751,-5743,-5743,-5743,-5743,-5743,-5743,
+    -5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,
+    -5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,
+    -5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,
+    -5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,-5743,
+    -5743,-5743,-5743,-5743,-5743
+    },
+
+    {
+       27,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,
+    -5744,-5744,-5744, 5752,-5744,-5744,-5744,-5744,-5744,-5744,
+
+    -5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,
+    -5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,
+    -5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,
+    -5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,-5744,
+    -5744,-5744,-5744,-5744,-5744
+    },
+
+    {
+       27,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,
+    -5745,-5745,-5745, 5753,-5745,-5745,-5745,-5745,-5745,-5745,
+    -5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,
+    -5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,
+    -5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,
+
+    -5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,-5745,
+    -5745,-5745,-5745,-5745,-5745
+    },
+
+    {
+       27,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,
+    -5746,-5746,-5746, 5754,-5746,-5746,-5746,-5746,-5746,-5746,
+    -5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,
+    -5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,
+    -5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,
+    -5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,-5746,
+    -5746,-5746,-5746,-5746,-5746
+    },
+
+    {
+       27,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,
+
+    -5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,
+    -5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,
+    -5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,
+    -5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,
+    -5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,-5747,
+    -5747,-5747,-5747,-5747,-5747
+    },
+
+    {
+       27,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,
+    -5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,
+    -5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,
+    -5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,
+
+    -5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,
+    -5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,-5748,
+    -5748,-5748,-5748,-5748,-5748
+    },
+
+    {
+       27,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,
+    -5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,
+    -5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,
+    -5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,
+    -5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,
+    -5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,-5749,
+    -5749,-5749,-5749,-5749,-5749
+
+    },
+
+    {
+       27,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,
+    -5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,
+    -5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,
+    -5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,
+    -5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,
+    -5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,-5750,
+    -5750,-5750,-5750,-5750,-5750
+    },
+
+    {
+       27,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,
+    -5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,
+    -5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,
+
+    -5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,
+    -5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,
+    -5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,-5751,
+    -5751,-5751,-5751,-5751,-5751
+    },
+
+    {
+       27,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,
+    -5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,
+    -5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,
+    -5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,
+    -5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,
+    -5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,-5752,
+
+    -5752,-5752,-5752,-5752,-5752
+    },
+
+    {
+       27,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,
+    -5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,
+    -5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,
+    -5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,
+    -5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,
+    -5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,-5753,
+    -5753,-5753,-5753,-5753,-5753
+    },
+
+    {
+       27,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,
+    -5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,
+
+    -5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,
+    -5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,
+    -5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,
+    -5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,-5754,
+    -5754,-5754,-5754,-5754,-5754
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 358
+#define YY_END_OF_BUFFER 359
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[5755] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  359,  357,  355,  355,
+      356,  357,  355,    2,    2,    4,    4,    6,    6,   11,
+       11,   16,   16,   56,   56,   96,   96,  136,  136,  176,
+      176,  216,  216,  256,  256,  296,  296,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  354,    0,    0,
+        0,    0,    0,    0,  351,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    1,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  297,    0,  352,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    7,    0,    0,    0,   12,
+
+        0,    0,    0,   17,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   57,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   97,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  137,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  177,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,  217,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  257,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  351,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  299,    0,    0,    0,
+        0,    9,    0,    0,   14,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   19,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   59,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  139,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  179,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  219,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  259,    0,    0,    0,
+
+        0,    0,  351,    0,    0,  351,    0,    0,    0,  351,
+        0,    0,    0,    0,    0,    0,  350,    0,    0,    0,
+        0,    0,    0,  341,    0,  351,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  342,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  351,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  351,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   95,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,  298,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  348,    0,    0,    0,    0,    0,
+        0,    0,  351,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  351,    0,  351,    0,  351,    0,
+        0,    0,    0,    0,    0,    0,    8,    0,   13,    0,
+        0,    0,    0,    0,    0,    0,    0,   18,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   58,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       98,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  138,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  178,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  218,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,  258,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  349,    0,    0,    0,  351,    0,  351,
+        0,    0,    0,  339,    0,    0,  347,    0,  345,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  351,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    3,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  340,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      351,    0,  351,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   10,   15,    0,   55,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      215,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  295,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      351,    0,    0,  351,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  351,    0,    0,
+        0,  343,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  351,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  330,  344,    0,    0,    0,    0,    0,  303,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   50,    0,
+        0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   90,    0,    0,    0,    0,    0,   63,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  135,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  130,
+        0,    0,    0,    0,    0,  103,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  170,    0,    0,    0,    0,
+        0,  143,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  210,    0,    0,    0,    0,    0,  183,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  250,    0,    0,
+        0,    0,    0,  223,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  290,    0,    0,    0,    0,    0,  263,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  336,  337,  338,  335,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  309,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   29,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   69,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  109,    0,  175,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  149,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  189,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  229,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  269,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,  301,    0,    0,    0,    0,
+        0,  351,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   21,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   61,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  101,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      141,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  181,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  221,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  261,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  332,
+        0,  325,    0,    0,  305,  300,  333,    0,    0,    0,
+        0,    0,    0,    0,  302,    0,  307,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  346,    0,
+        0,   52,   45,    0,    0,   25,   20,   53,    0,    0,
+        0,    0,    0,    0,    0,   22,    0,   27,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+       92,   85,    0,    0,   65,   60,   93,    0,    0,    0,
+        0,    0,    0,    0,   62,    0,   67,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  132,
+      125,    0,    0,  105,  100,  133,    0,    0,    0,    0,
+        0,    0,    0,  102,    0,  107,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  172,  165,
+        0,    0,  145,  140,  173,    0,    0,    0,    0,    0,
+        0,    0,  142,    0,  147,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  212,  205,    0,
+        0,  185,  180,  213,    0,    0,    0,    0,    0,    0,
+
+        0,  182,    0,  187,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  252,    0,  245,    0,
+        0,  225,  220,  253,    0,    0,    0,    0,    0,    0,
+        0,  222,    0,  227,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  292,  285,    0,    0,
+      265,  260,  293,    0,    0,    0,    0,    0,    0,    0,
+      262,    0,  267,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  353,    0,    0,    0,    0,
+        0,    0,  310,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  308,
+
+        0,    0,    0,    0,    0,    0,   30,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   28,    0,    0,    0,    0,    0,    0,   70,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   68,    0,    0,    0,    0,
+        0,    0,  110,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  108,    0,
+        0,    0,    0,    0,    0,  150,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  148,    0,    0,    0,    0,    0,    0,  190,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  188,  255,    0,    0,    0,    0,
+        0,    0,    0,  230,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  228,
+        0,    0,    0,    0,    0,    0,  270,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  268,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  351,    0,    0,
+        0,  334,  331,  311,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,   54,   51,   31,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   94,   91,   71,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  134,  131,  111,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  174,  171,  151,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  214,  211,  191,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  254,
+      251,  231,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      294,  291,  271,  326,  304,    0,    0,    0,  324,    0,
+        0,  306,    0,  314,    0,    0,    0,    0,    0,    0,
+        0,    0,   46,   24,    0,    0,    0,   44,    0,    0,
+       26,    0,   34,    0,    0,    0,    0,    0,    0,    0,
+       86,   64,    0,    0,    0,   84,    0,    0,   66,    0,
+       74,    0,    0,    0,    0,    0,    0,    0,  126,  104,
+        0,    0,    0,  124,    0,    0,  106,    0,  114,    0,
+
+        0,    0,    0,    0,    0,    0,  166,  144,    0,    0,
+        0,  164,    0,    0,  146,    0,  154,    0,    0,    0,
+        0,    0,    0,    0,  206,  184,    0,    0,    0,  204,
+        0,    0,  186,    0,  194,    0,    0,    0,    0,    0,
+        0,    0,    0,  246,  224,    0,    0,    0,  244,    0,
+        0,  226,    0,  234,    0,    0,    0,    0,    0,    0,
+        0,  286,  264,    0,    0,    0,  284,    0,    0,  266,
+        0,  274,    0,    0,    0,    0,    0,    0,    0,  327,
+      328,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   47,   48,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,   87,   88,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  127,  128,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  167,  168,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      207,  208,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  247,  248,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  287,
+      288,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  313,    0,    0,    0,    0,    0,
+
+        0,    0,  351,    0,    0,    0,   33,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   73,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      113,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  153,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  193,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  233,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  273,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      323,    0,  312,    0,  316,    0,    0,    0,    0,    0,
+
+        0,   43,    0,   32,    0,   36,    0,    0,    0,    0,
+        0,    0,   83,    0,   72,    0,   76,    0,    0,    0,
+        0,    0,    0,  123,    0,  112,    0,  116,    0,    0,
+        0,    0,    0,    0,  163,    0,  152,    0,  156,    0,
+        0,    0,    0,    0,    0,  203,    0,  192,    0,  196,
+        0,    0,    0,    0,    0,    0,  243,    0,  232,    0,
+      236,    0,    0,    0,    0,    0,    0,  283,    0,  272,
+        0,  276,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  351,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  315,    0,  318,    0,    0,    0,    0,
+        0,    0,   35,    0,   38,    0,    0,    0,    0,    0,
+        0,   75,    0,   78,    0,    0,    0,    0,    0,    0,
+      115,    0,  118,    0,    0,    0,    0,    0,    0,  155,
+        0,  158,    0,    0,    0,    0,    0,    0,  195,    0,
+      198,    0,    0,    0,    0,    0,    0,  235,    0,  238,
+        0,    0,    0,    0,    0,    0,  275,    0,  278,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,  317,    0,  320,
+        0,    0,    0,   37,    0,   40,    0,    0,    0,   77,
+        0,   80,    0,    0,    0,  117,    0,  120,    0,    0,
+        0,  157,    0,  160,    0,    0,    0,  197,    0,  200,
+        0,    0,    0,  237,    0,  240,    0,    0,    0,  277,
+        0,  280,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      319,    0,  322,    0,    0,   39,    0,   42,    0,    0,
+       79,    0,   82,    0,    0,  119,    0,  122,    0,    0,
+      159,    0,  162,    0,    0,  199,    0,  202,    0,    0,
+      239,    0,  242,    0,    0,  279,    0,  282,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  321,    0,   41,    0,   81,    0,  121,    0,  161,
+
+        0,  201,    0,  241,    0,  281,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  329,   49,   89,  129,
+      169,  209,  249,  289
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    4,    1,    5,    6,    1,    7,    1,    1,
+        1,    1,    1,    1,    8,    1,    9,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,    1,   11,   12,
+        1,   13,    1,    6,   14,   15,   16,   17,   18,   19,
+       20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
+       30,   31,   32,   33,   34,   35,   23,   36,   37,   38,
+        6,    6,    6,    6,   39,    1,   40,   41,   42,   43,
+
+       44,   45,   46,   47,   48,   23,   49,   50,   51,   52,
+       53,   54,   55,   56,   57,   58,   59,   60,   23,   61,
+       62,   63,    6,    1,    6,   64,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_deslatex.cctmp"
+#line 4 "apertium_deslatex.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/${}]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+map<string, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution["'"] = L"'";
+}
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 62906 "apertium_deslatex.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+#define C4 4
+#define C5 5
+#define C6 6
+#define C7 7
+#define C8 8
+#define C9 9
+#define C10 10
+#define C11 11
+#define C12 12
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 272 "apertium_deslatex.cctmp"
+
+
+
+#line 63123 "apertium_deslatex.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 277 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 283 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 292 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 298 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 5:
+YY_RULE_SETUP
+#line 307 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 313 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 7:
+YY_RULE_SETUP
+#line 322 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 326 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 330 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 334 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 11:
+/* rule 11 can match eol */
+YY_RULE_SETUP
+#line 340 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 12:
+YY_RULE_SETUP
+#line 349 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 353 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 357 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 361 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 16:
+/* rule 16 can match eol */
+YY_RULE_SETUP
+#line 367 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 17:
+YY_RULE_SETUP
+#line 376 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 380 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 384 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 388 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 21:
+/* rule 21 can match eol */
+YY_RULE_SETUP
+#line 392 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 396 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 23:
+/* rule 23 can match eol */
+YY_RULE_SETUP
+#line 400 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 24:
+/* rule 24 can match eol */
+YY_RULE_SETUP
+#line 404 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 25:
+/* rule 25 can match eol */
+YY_RULE_SETUP
+#line 408 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 412 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 27:
+/* rule 27 can match eol */
+YY_RULE_SETUP
+#line 416 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 28:
+/* rule 28 can match eol */
+YY_RULE_SETUP
+#line 420 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 29:
+/* rule 29 can match eol */
+YY_RULE_SETUP
+#line 424 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 30:
+/* rule 30 can match eol */
+YY_RULE_SETUP
+#line 428 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 31:
+/* rule 31 can match eol */
+YY_RULE_SETUP
+#line 432 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 32:
+/* rule 32 can match eol */
+YY_RULE_SETUP
+#line 436 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 33:
+/* rule 33 can match eol */
+YY_RULE_SETUP
+#line 440 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 34:
+/* rule 34 can match eol */
+YY_RULE_SETUP
+#line 444 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 35:
+/* rule 35 can match eol */
+YY_RULE_SETUP
+#line 448 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 36:
+/* rule 36 can match eol */
+YY_RULE_SETUP
+#line 452 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 37:
+/* rule 37 can match eol */
+YY_RULE_SETUP
+#line 456 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 38:
+/* rule 38 can match eol */
+YY_RULE_SETUP
+#line 460 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 39:
+/* rule 39 can match eol */
+YY_RULE_SETUP
+#line 464 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 40:
+/* rule 40 can match eol */
+YY_RULE_SETUP
+#line 468 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 41:
+/* rule 41 can match eol */
+YY_RULE_SETUP
+#line 472 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 42:
+/* rule 42 can match eol */
+YY_RULE_SETUP
+#line 476 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 43:
+/* rule 43 can match eol */
+YY_RULE_SETUP
+#line 480 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 44:
+/* rule 44 can match eol */
+YY_RULE_SETUP
+#line 484 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 45:
+/* rule 45 can match eol */
+YY_RULE_SETUP
+#line 488 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 46:
+/* rule 46 can match eol */
+YY_RULE_SETUP
+#line 492 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 47:
+/* rule 47 can match eol */
+YY_RULE_SETUP
+#line 496 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 48:
+/* rule 48 can match eol */
+YY_RULE_SETUP
+#line 500 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 49:
+/* rule 49 can match eol */
+YY_RULE_SETUP
+#line 504 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 508 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 51:
+/* rule 51 can match eol */
+YY_RULE_SETUP
+#line 512 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 515 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 53:
+/* rule 53 can match eol */
+YY_RULE_SETUP
+#line 518 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 54:
+/* rule 54 can match eol */
+YY_RULE_SETUP
+#line 521 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 524 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 56:
+/* rule 56 can match eol */
+YY_RULE_SETUP
+#line 530 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 57:
+YY_RULE_SETUP
+#line 539 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 58:
+YY_RULE_SETUP
+#line 543 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 59:
+YY_RULE_SETUP
+#line 547 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 60:
+/* rule 60 can match eol */
+YY_RULE_SETUP
+#line 551 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 61:
+/* rule 61 can match eol */
+YY_RULE_SETUP
+#line 555 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 62:
+/* rule 62 can match eol */
+YY_RULE_SETUP
+#line 559 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 63:
+/* rule 63 can match eol */
+YY_RULE_SETUP
+#line 563 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 64:
+/* rule 64 can match eol */
+YY_RULE_SETUP
+#line 567 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 65:
+/* rule 65 can match eol */
+YY_RULE_SETUP
+#line 571 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 66:
+/* rule 66 can match eol */
+YY_RULE_SETUP
+#line 575 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 67:
+/* rule 67 can match eol */
+YY_RULE_SETUP
+#line 579 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 68:
+/* rule 68 can match eol */
+YY_RULE_SETUP
+#line 583 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 69:
+/* rule 69 can match eol */
+YY_RULE_SETUP
+#line 587 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 70:
+/* rule 70 can match eol */
+YY_RULE_SETUP
+#line 591 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 71:
+/* rule 71 can match eol */
+YY_RULE_SETUP
+#line 595 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 72:
+/* rule 72 can match eol */
+YY_RULE_SETUP
+#line 599 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 73:
+/* rule 73 can match eol */
+YY_RULE_SETUP
+#line 603 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 74:
+/* rule 74 can match eol */
+YY_RULE_SETUP
+#line 607 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 75:
+/* rule 75 can match eol */
+YY_RULE_SETUP
+#line 611 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 76:
+/* rule 76 can match eol */
+YY_RULE_SETUP
+#line 615 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 77:
+/* rule 77 can match eol */
+YY_RULE_SETUP
+#line 619 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 78:
+/* rule 78 can match eol */
+YY_RULE_SETUP
+#line 623 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 79:
+/* rule 79 can match eol */
+YY_RULE_SETUP
+#line 627 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 80:
+/* rule 80 can match eol */
+YY_RULE_SETUP
+#line 631 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 81:
+/* rule 81 can match eol */
+YY_RULE_SETUP
+#line 635 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 82:
+/* rule 82 can match eol */
+YY_RULE_SETUP
+#line 639 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 83:
+/* rule 83 can match eol */
+YY_RULE_SETUP
+#line 643 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 84:
+/* rule 84 can match eol */
+YY_RULE_SETUP
+#line 647 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 85:
+/* rule 85 can match eol */
+YY_RULE_SETUP
+#line 651 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 86:
+/* rule 86 can match eol */
+YY_RULE_SETUP
+#line 655 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 87:
+/* rule 87 can match eol */
+YY_RULE_SETUP
+#line 659 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 88:
+/* rule 88 can match eol */
+YY_RULE_SETUP
+#line 663 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 89:
+/* rule 89 can match eol */
+YY_RULE_SETUP
+#line 667 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 90:
+YY_RULE_SETUP
+#line 671 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 91:
+/* rule 91 can match eol */
+YY_RULE_SETUP
+#line 675 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 92:
+YY_RULE_SETUP
+#line 678 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 93:
+/* rule 93 can match eol */
+YY_RULE_SETUP
+#line 681 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 94:
+/* rule 94 can match eol */
+YY_RULE_SETUP
+#line 684 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 95:
+YY_RULE_SETUP
+#line 687 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 96:
+/* rule 96 can match eol */
+YY_RULE_SETUP
+#line 693 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 97:
+YY_RULE_SETUP
+#line 702 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 98:
+YY_RULE_SETUP
+#line 706 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 99:
+YY_RULE_SETUP
+#line 710 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 100:
+/* rule 100 can match eol */
+YY_RULE_SETUP
+#line 714 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 101:
+/* rule 101 can match eol */
+YY_RULE_SETUP
+#line 718 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 102:
+/* rule 102 can match eol */
+YY_RULE_SETUP
+#line 722 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 103:
+/* rule 103 can match eol */
+YY_RULE_SETUP
+#line 726 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 104:
+/* rule 104 can match eol */
+YY_RULE_SETUP
+#line 730 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 105:
+/* rule 105 can match eol */
+YY_RULE_SETUP
+#line 734 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 106:
+/* rule 106 can match eol */
+YY_RULE_SETUP
+#line 738 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 107:
+/* rule 107 can match eol */
+YY_RULE_SETUP
+#line 742 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 108:
+/* rule 108 can match eol */
+YY_RULE_SETUP
+#line 746 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 109:
+/* rule 109 can match eol */
+YY_RULE_SETUP
+#line 750 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 110:
+/* rule 110 can match eol */
+YY_RULE_SETUP
+#line 754 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 111:
+/* rule 111 can match eol */
+YY_RULE_SETUP
+#line 758 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 112:
+/* rule 112 can match eol */
+YY_RULE_SETUP
+#line 762 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 113:
+/* rule 113 can match eol */
+YY_RULE_SETUP
+#line 766 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 114:
+/* rule 114 can match eol */
+YY_RULE_SETUP
+#line 770 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 115:
+/* rule 115 can match eol */
+YY_RULE_SETUP
+#line 774 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 116:
+/* rule 116 can match eol */
+YY_RULE_SETUP
+#line 778 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 117:
+/* rule 117 can match eol */
+YY_RULE_SETUP
+#line 782 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 118:
+/* rule 118 can match eol */
+YY_RULE_SETUP
+#line 786 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 119:
+/* rule 119 can match eol */
+YY_RULE_SETUP
+#line 790 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 120:
+/* rule 120 can match eol */
+YY_RULE_SETUP
+#line 794 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 121:
+/* rule 121 can match eol */
+YY_RULE_SETUP
+#line 798 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 122:
+/* rule 122 can match eol */
+YY_RULE_SETUP
+#line 802 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 123:
+/* rule 123 can match eol */
+YY_RULE_SETUP
+#line 806 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 124:
+/* rule 124 can match eol */
+YY_RULE_SETUP
+#line 810 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 125:
+/* rule 125 can match eol */
+YY_RULE_SETUP
+#line 814 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 126:
+/* rule 126 can match eol */
+YY_RULE_SETUP
+#line 818 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 127:
+/* rule 127 can match eol */
+YY_RULE_SETUP
+#line 822 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 128:
+/* rule 128 can match eol */
+YY_RULE_SETUP
+#line 826 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 129:
+/* rule 129 can match eol */
+YY_RULE_SETUP
+#line 830 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 130:
+YY_RULE_SETUP
+#line 834 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 131:
+/* rule 131 can match eol */
+YY_RULE_SETUP
+#line 838 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 132:
+YY_RULE_SETUP
+#line 841 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 133:
+/* rule 133 can match eol */
+YY_RULE_SETUP
+#line 844 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 134:
+/* rule 134 can match eol */
+YY_RULE_SETUP
+#line 847 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 135:
+YY_RULE_SETUP
+#line 850 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 136:
+/* rule 136 can match eol */
+YY_RULE_SETUP
+#line 856 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 137:
+YY_RULE_SETUP
+#line 865 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 138:
+YY_RULE_SETUP
+#line 869 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 139:
+YY_RULE_SETUP
+#line 873 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 140:
+/* rule 140 can match eol */
+YY_RULE_SETUP
+#line 877 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 141:
+/* rule 141 can match eol */
+YY_RULE_SETUP
+#line 881 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 142:
+/* rule 142 can match eol */
+YY_RULE_SETUP
+#line 885 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 143:
+/* rule 143 can match eol */
+YY_RULE_SETUP
+#line 889 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 144:
+/* rule 144 can match eol */
+YY_RULE_SETUP
+#line 893 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 145:
+/* rule 145 can match eol */
+YY_RULE_SETUP
+#line 897 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 146:
+/* rule 146 can match eol */
+YY_RULE_SETUP
+#line 901 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 147:
+/* rule 147 can match eol */
+YY_RULE_SETUP
+#line 905 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 148:
+/* rule 148 can match eol */
+YY_RULE_SETUP
+#line 909 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 149:
+/* rule 149 can match eol */
+YY_RULE_SETUP
+#line 913 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 150:
+/* rule 150 can match eol */
+YY_RULE_SETUP
+#line 917 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 151:
+/* rule 151 can match eol */
+YY_RULE_SETUP
+#line 921 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 152:
+/* rule 152 can match eol */
+YY_RULE_SETUP
+#line 925 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 153:
+/* rule 153 can match eol */
+YY_RULE_SETUP
+#line 929 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 154:
+/* rule 154 can match eol */
+YY_RULE_SETUP
+#line 933 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 155:
+/* rule 155 can match eol */
+YY_RULE_SETUP
+#line 937 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 156:
+/* rule 156 can match eol */
+YY_RULE_SETUP
+#line 941 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 157:
+/* rule 157 can match eol */
+YY_RULE_SETUP
+#line 945 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 158:
+/* rule 158 can match eol */
+YY_RULE_SETUP
+#line 949 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 159:
+/* rule 159 can match eol */
+YY_RULE_SETUP
+#line 953 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 160:
+/* rule 160 can match eol */
+YY_RULE_SETUP
+#line 957 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 161:
+/* rule 161 can match eol */
+YY_RULE_SETUP
+#line 961 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 162:
+/* rule 162 can match eol */
+YY_RULE_SETUP
+#line 965 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 163:
+/* rule 163 can match eol */
+YY_RULE_SETUP
+#line 969 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 164:
+/* rule 164 can match eol */
+YY_RULE_SETUP
+#line 973 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 165:
+/* rule 165 can match eol */
+YY_RULE_SETUP
+#line 977 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 166:
+/* rule 166 can match eol */
+YY_RULE_SETUP
+#line 981 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 167:
+/* rule 167 can match eol */
+YY_RULE_SETUP
+#line 985 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 168:
+/* rule 168 can match eol */
+YY_RULE_SETUP
+#line 989 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 169:
+/* rule 169 can match eol */
+YY_RULE_SETUP
+#line 993 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 170:
+YY_RULE_SETUP
+#line 997 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 171:
+/* rule 171 can match eol */
+YY_RULE_SETUP
+#line 1001 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 172:
+YY_RULE_SETUP
+#line 1004 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 173:
+/* rule 173 can match eol */
+YY_RULE_SETUP
+#line 1007 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 174:
+/* rule 174 can match eol */
+YY_RULE_SETUP
+#line 1010 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 175:
+YY_RULE_SETUP
+#line 1013 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 176:
+/* rule 176 can match eol */
+YY_RULE_SETUP
+#line 1019 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 177:
+YY_RULE_SETUP
+#line 1028 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 178:
+YY_RULE_SETUP
+#line 1032 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 179:
+YY_RULE_SETUP
+#line 1036 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 180:
+/* rule 180 can match eol */
+YY_RULE_SETUP
+#line 1040 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 181:
+/* rule 181 can match eol */
+YY_RULE_SETUP
+#line 1044 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 182:
+/* rule 182 can match eol */
+YY_RULE_SETUP
+#line 1048 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 183:
+/* rule 183 can match eol */
+YY_RULE_SETUP
+#line 1052 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 184:
+/* rule 184 can match eol */
+YY_RULE_SETUP
+#line 1056 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 185:
+/* rule 185 can match eol */
+YY_RULE_SETUP
+#line 1060 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 186:
+/* rule 186 can match eol */
+YY_RULE_SETUP
+#line 1064 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 187:
+/* rule 187 can match eol */
+YY_RULE_SETUP
+#line 1068 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 188:
+/* rule 188 can match eol */
+YY_RULE_SETUP
+#line 1072 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 189:
+/* rule 189 can match eol */
+YY_RULE_SETUP
+#line 1076 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 190:
+/* rule 190 can match eol */
+YY_RULE_SETUP
+#line 1080 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 191:
+/* rule 191 can match eol */
+YY_RULE_SETUP
+#line 1084 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 192:
+/* rule 192 can match eol */
+YY_RULE_SETUP
+#line 1088 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 193:
+/* rule 193 can match eol */
+YY_RULE_SETUP
+#line 1092 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 194:
+/* rule 194 can match eol */
+YY_RULE_SETUP
+#line 1096 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 195:
+/* rule 195 can match eol */
+YY_RULE_SETUP
+#line 1100 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 196:
+/* rule 196 can match eol */
+YY_RULE_SETUP
+#line 1104 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 197:
+/* rule 197 can match eol */
+YY_RULE_SETUP
+#line 1108 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 198:
+/* rule 198 can match eol */
+YY_RULE_SETUP
+#line 1112 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 199:
+/* rule 199 can match eol */
+YY_RULE_SETUP
+#line 1116 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 200:
+/* rule 200 can match eol */
+YY_RULE_SETUP
+#line 1120 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 201:
+/* rule 201 can match eol */
+YY_RULE_SETUP
+#line 1124 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 202:
+/* rule 202 can match eol */
+YY_RULE_SETUP
+#line 1128 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 203:
+/* rule 203 can match eol */
+YY_RULE_SETUP
+#line 1132 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 204:
+/* rule 204 can match eol */
+YY_RULE_SETUP
+#line 1136 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 205:
+/* rule 205 can match eol */
+YY_RULE_SETUP
+#line 1140 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 206:
+/* rule 206 can match eol */
+YY_RULE_SETUP
+#line 1144 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 207:
+/* rule 207 can match eol */
+YY_RULE_SETUP
+#line 1148 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 208:
+/* rule 208 can match eol */
+YY_RULE_SETUP
+#line 1152 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 209:
+/* rule 209 can match eol */
+YY_RULE_SETUP
+#line 1156 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 210:
+YY_RULE_SETUP
+#line 1160 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 211:
+/* rule 211 can match eol */
+YY_RULE_SETUP
+#line 1164 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 212:
+YY_RULE_SETUP
+#line 1167 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 213:
+/* rule 213 can match eol */
+YY_RULE_SETUP
+#line 1170 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 214:
+/* rule 214 can match eol */
+YY_RULE_SETUP
+#line 1173 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 215:
+YY_RULE_SETUP
+#line 1176 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 216:
+/* rule 216 can match eol */
+YY_RULE_SETUP
+#line 1182 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 217:
+YY_RULE_SETUP
+#line 1191 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 218:
+YY_RULE_SETUP
+#line 1195 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 219:
+YY_RULE_SETUP
+#line 1199 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 220:
+/* rule 220 can match eol */
+YY_RULE_SETUP
+#line 1203 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 221:
+/* rule 221 can match eol */
+YY_RULE_SETUP
+#line 1207 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 222:
+/* rule 222 can match eol */
+YY_RULE_SETUP
+#line 1211 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 223:
+/* rule 223 can match eol */
+YY_RULE_SETUP
+#line 1215 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 224:
+/* rule 224 can match eol */
+YY_RULE_SETUP
+#line 1219 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 225:
+/* rule 225 can match eol */
+YY_RULE_SETUP
+#line 1223 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 226:
+/* rule 226 can match eol */
+YY_RULE_SETUP
+#line 1227 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 227:
+/* rule 227 can match eol */
+YY_RULE_SETUP
+#line 1231 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 228:
+/* rule 228 can match eol */
+YY_RULE_SETUP
+#line 1235 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 229:
+/* rule 229 can match eol */
+YY_RULE_SETUP
+#line 1239 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 230:
+/* rule 230 can match eol */
+YY_RULE_SETUP
+#line 1243 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 231:
+/* rule 231 can match eol */
+YY_RULE_SETUP
+#line 1247 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 232:
+/* rule 232 can match eol */
+YY_RULE_SETUP
+#line 1251 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 233:
+/* rule 233 can match eol */
+YY_RULE_SETUP
+#line 1255 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 234:
+/* rule 234 can match eol */
+YY_RULE_SETUP
+#line 1259 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 235:
+/* rule 235 can match eol */
+YY_RULE_SETUP
+#line 1263 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 236:
+/* rule 236 can match eol */
+YY_RULE_SETUP
+#line 1267 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 237:
+/* rule 237 can match eol */
+YY_RULE_SETUP
+#line 1271 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 238:
+/* rule 238 can match eol */
+YY_RULE_SETUP
+#line 1275 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 239:
+/* rule 239 can match eol */
+YY_RULE_SETUP
+#line 1279 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 240:
+/* rule 240 can match eol */
+YY_RULE_SETUP
+#line 1283 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 241:
+/* rule 241 can match eol */
+YY_RULE_SETUP
+#line 1287 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 242:
+/* rule 242 can match eol */
+YY_RULE_SETUP
+#line 1291 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 243:
+/* rule 243 can match eol */
+YY_RULE_SETUP
+#line 1295 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 244:
+/* rule 244 can match eol */
+YY_RULE_SETUP
+#line 1299 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 245:
+/* rule 245 can match eol */
+YY_RULE_SETUP
+#line 1303 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 246:
+/* rule 246 can match eol */
+YY_RULE_SETUP
+#line 1307 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 247:
+/* rule 247 can match eol */
+YY_RULE_SETUP
+#line 1311 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 248:
+/* rule 248 can match eol */
+YY_RULE_SETUP
+#line 1315 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 249:
+/* rule 249 can match eol */
+YY_RULE_SETUP
+#line 1319 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 250:
+YY_RULE_SETUP
+#line 1323 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 251:
+/* rule 251 can match eol */
+YY_RULE_SETUP
+#line 1327 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 252:
+YY_RULE_SETUP
+#line 1330 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 253:
+/* rule 253 can match eol */
+YY_RULE_SETUP
+#line 1333 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 254:
+/* rule 254 can match eol */
+YY_RULE_SETUP
+#line 1336 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 255:
+YY_RULE_SETUP
+#line 1339 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 256:
+/* rule 256 can match eol */
+YY_RULE_SETUP
+#line 1345 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 257:
+YY_RULE_SETUP
+#line 1354 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 258:
+YY_RULE_SETUP
+#line 1358 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 259:
+YY_RULE_SETUP
+#line 1362 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 260:
+/* rule 260 can match eol */
+YY_RULE_SETUP
+#line 1366 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 261:
+/* rule 261 can match eol */
+YY_RULE_SETUP
+#line 1370 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 262:
+/* rule 262 can match eol */
+YY_RULE_SETUP
+#line 1374 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 263:
+/* rule 263 can match eol */
+YY_RULE_SETUP
+#line 1378 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 264:
+/* rule 264 can match eol */
+YY_RULE_SETUP
+#line 1382 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 265:
+/* rule 265 can match eol */
+YY_RULE_SETUP
+#line 1386 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 266:
+/* rule 266 can match eol */
+YY_RULE_SETUP
+#line 1390 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 267:
+/* rule 267 can match eol */
+YY_RULE_SETUP
+#line 1394 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 268:
+/* rule 268 can match eol */
+YY_RULE_SETUP
+#line 1398 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 269:
+/* rule 269 can match eol */
+YY_RULE_SETUP
+#line 1402 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 270:
+/* rule 270 can match eol */
+YY_RULE_SETUP
+#line 1406 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 271:
+/* rule 271 can match eol */
+YY_RULE_SETUP
+#line 1410 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 272:
+/* rule 272 can match eol */
+YY_RULE_SETUP
+#line 1414 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 273:
+/* rule 273 can match eol */
+YY_RULE_SETUP
+#line 1418 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 274:
+/* rule 274 can match eol */
+YY_RULE_SETUP
+#line 1422 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 275:
+/* rule 275 can match eol */
+YY_RULE_SETUP
+#line 1426 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 276:
+/* rule 276 can match eol */
+YY_RULE_SETUP
+#line 1430 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 277:
+/* rule 277 can match eol */
+YY_RULE_SETUP
+#line 1434 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 278:
+/* rule 278 can match eol */
+YY_RULE_SETUP
+#line 1438 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 279:
+/* rule 279 can match eol */
+YY_RULE_SETUP
+#line 1442 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 280:
+/* rule 280 can match eol */
+YY_RULE_SETUP
+#line 1446 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 281:
+/* rule 281 can match eol */
+YY_RULE_SETUP
+#line 1450 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 282:
+/* rule 282 can match eol */
+YY_RULE_SETUP
+#line 1454 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 283:
+/* rule 283 can match eol */
+YY_RULE_SETUP
+#line 1458 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 284:
+/* rule 284 can match eol */
+YY_RULE_SETUP
+#line 1462 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 285:
+/* rule 285 can match eol */
+YY_RULE_SETUP
+#line 1466 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 286:
+/* rule 286 can match eol */
+YY_RULE_SETUP
+#line 1470 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 287:
+/* rule 287 can match eol */
+YY_RULE_SETUP
+#line 1474 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 288:
+/* rule 288 can match eol */
+YY_RULE_SETUP
+#line 1478 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 289:
+/* rule 289 can match eol */
+YY_RULE_SETUP
+#line 1482 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 290:
+YY_RULE_SETUP
+#line 1486 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 291:
+/* rule 291 can match eol */
+YY_RULE_SETUP
+#line 1490 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 292:
+YY_RULE_SETUP
+#line 1493 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 293:
+/* rule 293 can match eol */
+YY_RULE_SETUP
+#line 1496 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 294:
+/* rule 294 can match eol */
+YY_RULE_SETUP
+#line 1499 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 295:
+YY_RULE_SETUP
+#line 1502 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 296:
+/* rule 296 can match eol */
+YY_RULE_SETUP
+#line 1508 "apertium_deslatex.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 297:
+YY_RULE_SETUP
+#line 1514 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 298:
+YY_RULE_SETUP
+#line 1518 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 299:
+YY_RULE_SETUP
+#line 1522 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 300:
+/* rule 300 can match eol */
+YY_RULE_SETUP
+#line 1526 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 301:
+/* rule 301 can match eol */
+YY_RULE_SETUP
+#line 1530 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 302:
+/* rule 302 can match eol */
+YY_RULE_SETUP
+#line 1534 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 303:
+/* rule 303 can match eol */
+YY_RULE_SETUP
+#line 1538 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 304:
+/* rule 304 can match eol */
+YY_RULE_SETUP
+#line 1542 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 305:
+/* rule 305 can match eol */
+YY_RULE_SETUP
+#line 1546 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 306:
+/* rule 306 can match eol */
+YY_RULE_SETUP
+#line 1550 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 307:
+/* rule 307 can match eol */
+YY_RULE_SETUP
+#line 1554 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 308:
+/* rule 308 can match eol */
+YY_RULE_SETUP
+#line 1558 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 309:
+/* rule 309 can match eol */
+YY_RULE_SETUP
+#line 1562 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 310:
+/* rule 310 can match eol */
+YY_RULE_SETUP
+#line 1566 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 311:
+/* rule 311 can match eol */
+YY_RULE_SETUP
+#line 1570 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 312:
+/* rule 312 can match eol */
+YY_RULE_SETUP
+#line 1574 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 313:
+/* rule 313 can match eol */
+YY_RULE_SETUP
+#line 1578 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 314:
+/* rule 314 can match eol */
+YY_RULE_SETUP
+#line 1582 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 315:
+/* rule 315 can match eol */
+YY_RULE_SETUP
+#line 1586 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 316:
+/* rule 316 can match eol */
+YY_RULE_SETUP
+#line 1590 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 317:
+/* rule 317 can match eol */
+YY_RULE_SETUP
+#line 1594 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 318:
+/* rule 318 can match eol */
+YY_RULE_SETUP
+#line 1598 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 319:
+/* rule 319 can match eol */
+YY_RULE_SETUP
+#line 1602 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 320:
+/* rule 320 can match eol */
+YY_RULE_SETUP
+#line 1606 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 321:
+/* rule 321 can match eol */
+YY_RULE_SETUP
+#line 1610 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 322:
+/* rule 322 can match eol */
+YY_RULE_SETUP
+#line 1614 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 323:
+/* rule 323 can match eol */
+YY_RULE_SETUP
+#line 1618 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 324:
+/* rule 324 can match eol */
+YY_RULE_SETUP
+#line 1622 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 325:
+/* rule 325 can match eol */
+YY_RULE_SETUP
+#line 1626 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 326:
+/* rule 326 can match eol */
+YY_RULE_SETUP
+#line 1630 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 327:
+/* rule 327 can match eol */
+YY_RULE_SETUP
+#line 1634 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 328:
+/* rule 328 can match eol */
+YY_RULE_SETUP
+#line 1638 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 329:
+/* rule 329 can match eol */
+YY_RULE_SETUP
+#line 1642 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 330:
+YY_RULE_SETUP
+#line 1646 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 331:
+/* rule 331 can match eol */
+YY_RULE_SETUP
+#line 1650 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 332:
+YY_RULE_SETUP
+#line 1653 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 333:
+/* rule 333 can match eol */
+YY_RULE_SETUP
+#line 1656 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 334:
+/* rule 334 can match eol */
+YY_RULE_SETUP
+#line 1659 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 335:
+/* rule 335 can match eol */
+YY_RULE_SETUP
+#line 1662 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 336:
+/* rule 336 can match eol */
+YY_RULE_SETUP
+#line 1666 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 337:
+/* rule 337 can match eol */
+YY_RULE_SETUP
+#line 1670 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 338:
+/* rule 338 can match eol */
+YY_RULE_SETUP
+#line 1674 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 339:
+YY_RULE_SETUP
+#line 1678 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C6);
+}
+	YY_BREAK
+case 340:
+YY_RULE_SETUP
+#line 1683 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 341:
+YY_RULE_SETUP
+#line 1687 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C7);
+}
+	YY_BREAK
+case 342:
+YY_RULE_SETUP
+#line 1692 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 343:
+YY_RULE_SETUP
+#line 1696 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C8);
+}
+	YY_BREAK
+case 344:
+YY_RULE_SETUP
+#line 1700 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C9);
+}
+	YY_BREAK
+case 345:
+YY_RULE_SETUP
+#line 1705 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C10);
+}
+	YY_BREAK
+case 346:
+YY_RULE_SETUP
+#line 1710 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C11);
+}
+	YY_BREAK
+case 347:
+YY_RULE_SETUP
+#line 1715 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C12);
+}
+	YY_BREAK
+case 348:
+YY_RULE_SETUP
+#line 1720 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 349:
+YY_RULE_SETUP
+#line 1724 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 350:
+YY_RULE_SETUP
+#line 1728 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 351:
+/* rule 351 can match eol */
+YY_RULE_SETUP
+#line 1732 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 352:
+/* rule 352 can match eol */
+YY_RULE_SETUP
+#line 1735 "apertium_deslatex.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 353:
+/* rule 353 can match eol */
+YY_RULE_SETUP
+#line 1738 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 354:
+YY_RULE_SETUP
+#line 1743 "apertium_deslatex.cctmp"
+{
+  if(S1_substitution.find(yytext) != S1_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
+    offset+=S1_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 355:
+/* rule 355 can match eol */
+YY_RULE_SETUP
+#line 1757 "apertium_deslatex.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 356:
+YY_RULE_SETUP
+#line 1765 "apertium_deslatex.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 357:
+YY_RULE_SETUP
+#line 1785 "apertium_deslatex.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+case YY_STATE_EOF(C4):
+case YY_STATE_EOF(C5):
+case YY_STATE_EOF(C6):
+case YY_STATE_EOF(C7):
+case YY_STATE_EOF(C8):
+case YY_STATE_EOF(C9):
+case YY_STATE_EOF(C10):
+case YY_STATE_EOF(C11):
+case YY_STATE_EOF(C12):
+#line 1810 "apertium_deslatex.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 358:
+YY_RULE_SETUP
+#line 1817 "apertium_deslatex.cctmp"
+ECHO;
+	YY_BREAK
+#line 66390 "apertium_deslatex.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 1817 "apertium_deslatex.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "latex format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  S1_init();
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_desmediawiki.cc b/apertium/apertium_desmediawiki.cc
new file mode 100644
index 0000000..8a38b78
--- /dev/null
+++ b/apertium/apertium_desmediawiki.cc
@@ -0,0 +1,9893 @@
+#line 2 "apertium_desmediawiki.cc"
+
+#line 4 "apertium_desmediawiki.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][66] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0
+    },
+
+    {
+       27,   28,   29,   30,   29,   28,   28,   31,   32,   33,
+       28,   31,   28,   28,   28,   34,   35,   29,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   36,   37,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   38,   29
+    },
+
+    {
+       27,   28,   29,   30,   29,   28,   39,   31,   32,   33,
+       28,   31,   28,   39,   39,   34,   40,   29,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   36,   37,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+
+       28,   28,   28,   28,   38,   29
+    },
+
+    {
+       27,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       42,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41
+    },
+
+    {
+       27,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       42,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41
+    },
+
+    {
+       27,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       44,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43
+    },
+
+    {
+       27,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       44,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43
+    },
+
+    {
+       27,   45,   45,   45,   45,   45,   45,   45,   46,   47,
+
+       45,   45,   45,   45,   45,   48,   49,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   50,   51,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45
+    },
+
+    {
+       27,   45,   45,   45,   45,   45,   52,   45,   46,   47,
+       45,   45,   45,   52,   52,   48,   53,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   50,   51,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45
+    },
+
+    {
+       27,   54,   54,   54,   54,   54,   54,   54,   55,   56,
+       54,   54,   54,   54,   54,   57,   58,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   59,   60,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54
+
+    },
+
+    {
+       27,   54,   54,   54,   54,   54,   61,   54,   55,   56,
+       54,   54,   54,   61,   61,   57,   62,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   59,   60,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54
+    },
+
+    {
+       27,   63,   63,   63,   63,   63,   63,   63,   64,   65,
+       63,   63,   63,   63,   63,   66,   67,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   68,   69,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63
+    },
+
+    {
+       27,   63,   63,   63,   63,   63,   70,   63,   64,   65,
+       63,   63,   63,   70,   70,   66,   71,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   68,   69,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+
+       63,   63,   63,   63,   63,   63
+    },
+
+    {
+       27,   72,   72,   72,   72,   72,   72,   72,   73,   74,
+       72,   72,   72,   72,   72,   75,   76,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   77,   78,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72
+    },
+
+    {
+       27,   72,   72,   72,   72,   72,   79,   72,   73,   74,
+       72,   72,   72,   79,   79,   75,   80,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   77,   78,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72
+    },
+
+    {
+       27,   81,   81,   81,   81,   81,   81,   81,   82,   83,
+       81,   81,   81,   81,   81,   84,   85,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   86,   87,   81,   81,   81,   81,   81,   81,   81,
+
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81
+    },
+
+    {
+       27,   81,   81,   81,   81,   81,   88,   81,   82,   83,
+       81,   81,   81,   88,   88,   84,   89,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   86,   87,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81
+    },
+
+    {
+       27,   90,   90,   90,   90,   90,   90,   90,   91,   92,
+
+       90,   90,   90,   90,   90,   93,   94,   90,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+       90,   95,   96,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   90,   90,   90
+    },
+
+    {
+       27,   90,   90,   90,   90,   90,   97,   90,   91,   92,
+       90,   90,   90,   97,   97,   93,   98,   90,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+
+       90,   95,   96,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   90,   90,   90
+    },
+
+    {
+       27,   99,   99,   99,   99,   99,   99,   99,  100,  101,
+       99,   99,   99,   99,   99,  102,  103,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,  104,  105,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99
+
+    },
+
+    {
+       27,   99,   99,   99,   99,   99,  106,   99,  100,  101,
+       99,   99,   99,  106,  106,  102,  107,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,  104,  105,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99
+    },
+
+    {
+       27,  108,  108,  108,  108,  108,  108,  108,  109,  110,
+      108,  108,  108,  108,  108,  111,  112,  108,  108,  108,
+      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
+
+      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
+      108,  113,  114,  108,  108,  108,  108,  108,  108,  108,
+      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
+      108,  108,  108,  108,  108,  115
+    },
+
+    {
+       27,  108,  108,  108,  108,  108,  116,  108,  109,  110,
+      108,  108,  108,  116,  116,  111,  117,  108,  108,  108,
+      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
+      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
+      108,  113,  114,  108,  108,  108,  108,  108,  108,  108,
+      108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
+
+      108,  108,  108,  108,  108,  115
+    },
+
+    {
+       27,  118,  118,  118,  118,  118,  118,  118,  119,  120,
+      118,  118,  118,  118,  118,  121,  122,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  123,  124,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118
+    },
+
+    {
+       27,  118,  118,  118,  118,  118,  125,  118,  119,  120,
+      118,  118,  118,  125,  125,  121,  126,  118,  118,  118,
+
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  123,  124,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
+      118,  118,  118,  118,  118,  118
+    },
+
+    {
+       27,  127,  127,  127,  127,  127,  127,  127,  128,  129,
+      127,  127,  127,  127,  127,  130,  131,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  132,  133,  127,  127,  127,  127,  127,  127,  127,
+
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127
+    },
+
+    {
+       27,  127,  127,  127,  127,  127,  134,  127,  128,  129,
+      127,  127,  127,  134,  134,  130,  135,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  132,  133,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127
+    },
+
+    {
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27
+    },
+
+    {
+       27,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28
+    },
+
+    {
+       27,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29
+
+    },
+
+    {
+       27,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30
+    },
+
+    {
+       27,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31
+    },
+
+    {
+       27,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      136,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  136,  -32,  -32,  -32,  -32,  -32,  -32,
+
+      -32,  -32,  -32,  -32,  -32,  -32
+    },
+
+    {
+       27,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  137,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33
+    },
+
+    {
+       27,  -34,  -34,  -34,  -34,  138,  -34,  -34,  -34,  -34,
+      -34,  139,  -34,  -34,  -34,  -34,  -34,  -34,  140,  141,
+
+      142,  143,  144,  145,  145,  145,  146,  147,  145,  145,
+      148,  145,  145,  149,  150,  145,  151,  152,  153,  145,
+      145,  -34,  -34,  141,  142,  143,  144,  145,  145,  145,
+      146,  147,  145,  148,  145,  145,  149,  150,  145,  151,
+      152,  153,  145,  145,  -34,  -34
+    },
+
+    {
+       27,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  154,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35
+    },
+
+    {
+       27,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  155,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36
+    },
+
+    {
+       27,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37
+    },
+
+    {
+       27,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  156,  -38
+    },
+
+    {
+       27,  -39,  -39,  -39,  -39,  -39,  157,  -39,  -39,  -39,
+      -39,  -39,  -39,  157,  157,  -39,  157,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39
+
+    },
+
+    {
+       27,  -40,  -40,  -40,  -40,  -40,  157,  -40,  -40,  -40,
+      -40,  -40,  -40,  157,  157,  -40,  158,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40
+    },
+
+    {
+       27,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41
+    },
+
+    {
+       27,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      159,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+
+      -42,  -42,  -42,  -42,  -42,  -42
+    },
+
+    {
+       27,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43
+    },
+
+    {
+       27,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      160,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44
+    },
+
+    {
+       27,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45
+    },
+
+    {
+       27,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      161,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  161,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46
+    },
+
+    {
+       27,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  162,
+
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47
+    },
+
+    {
+       27,  -48,  -48,  -48,  -48,  163,  -48,  -48,  -48,  -48,
+      -48,  164,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48
+    },
+
+    {
+       27,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  165,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49
+
+    },
+
+    {
+       27,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50
+    },
+
+    {
+       27,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51
+    },
+
+    {
+       27,  -52,  -52,  -52,  -52,  -52,  166,  -52,  -52,  -52,
+      -52,  -52,  -52,  166,  166,  -52,  166,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+
+      -52,  -52,  -52,  -52,  -52,  -52
+    },
+
+    {
+       27,  -53,  -53,  -53,  -53,  -53,  166,  -53,  -53,  -53,
+      -53,  -53,  -53,  166,  166,  -53,  167,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53
+    },
+
+    {
+       27,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54
+    },
+
+    {
+       27,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      168,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+
+      -55,  -55,  -55,  168,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55
+    },
+
+    {
+       27,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  169,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56
+    },
+
+    {
+       27,  -57,  -57,  -57,  -57,  170,  -57,  -57,  -57,  -57,
+
+      -57,  171,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57
+    },
+
+    {
+       27,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  172,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58
+    },
+
+    {
+       27,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59
+
+    },
+
+    {
+       27,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60
+    },
+
+    {
+       27,  -61,  -61,  -61,  -61,  -61,  173,  -61,  -61,  -61,
+      -61,  -61,  -61,  173,  173,  -61,  173,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61
+    },
+
+    {
+       27,  -62,  -62,  -62,  -62,  -62,  173,  -62,  -62,  -62,
+      -62,  -62,  -62,  173,  173,  -62,  174,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+
+      -62,  -62,  -62,  -62,  -62,  -62
+    },
+
+    {
+       27,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63
+    },
+
+    {
+       27,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      175,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  175,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64
+    },
+
+    {
+       27,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  176,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65
+    },
+
+    {
+       27,  -66,  -66,  -66,  -66,  177,  -66,  -66,  -66,  -66,
+      -66,  178,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66
+    },
+
+    {
+       27,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+
+      -67,  -67,  -67,  -67,  -67,  -67,  179,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67
+    },
+
+    {
+       27,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68
+    },
+
+    {
+       27,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69
+
+    },
+
+    {
+       27,  -70,  -70,  -70,  -70,  -70,  180,  -70,  -70,  -70,
+      -70,  -70,  -70,  180,  180,  -70,  180,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70
+    },
+
+    {
+       27,  -71,  -71,  -71,  -71,  -71,  180,  -71,  -71,  -71,
+      -71,  -71,  -71,  180,  180,  -71,  181,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71
+    },
+
+    {
+       27,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+
+      -72,  -72,  -72,  -72,  -72,  -72
+    },
+
+    {
+       27,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      182,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  182,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73
+    },
+
+    {
+       27,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  183,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74
+    },
+
+    {
+       27,  -75,  -75,  -75,  -75,  184,  -75,  -75,  -75,  -75,
+      -75,  185,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75
+    },
+
+    {
+       27,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  186,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76
+    },
+
+    {
+       27,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77
+    },
+
+    {
+       27,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78
+    },
+
+    {
+       27,  -79,  -79,  -79,  -79,  -79,  187,  -79,  -79,  -79,
+      -79,  -79,  -79,  187,  187,  -79,  187,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79
+
+    },
+
+    {
+       27,  -80,  -80,  -80,  -80,  -80,  187,  -80,  -80,  -80,
+      -80,  -80,  -80,  187,  187,  -80,  188,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80
+    },
+
+    {
+       27,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81
+    },
+
+    {
+       27,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      189,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  189,  -82,  -82,  -82,  -82,  -82,  -82,
+
+      -82,  -82,  -82,  -82,  -82,  -82
+    },
+
+    {
+       27,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  190,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83
+    },
+
+    {
+       27,  -84,  -84,  -84,  -84,  191,  -84,  -84,  -84,  -84,
+      -84,  192,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84
+    },
+
+    {
+       27,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  193,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85
+    },
+
+    {
+       27,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86
+    },
+
+    {
+       27,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87
+    },
+
+    {
+       27,  -88,  -88,  -88,  -88,  -88,  194,  -88,  -88,  -88,
+      -88,  -88,  -88,  194,  194,  -88,  194,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88
+    },
+
+    {
+       27,  -89,  -89,  -89,  -89,  -89,  194,  -89,  -89,  -89,
+      -89,  -89,  -89,  194,  194,  -89,  195,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89
+
+    },
+
+    {
+       27,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90
+    },
+
+    {
+       27,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+
+      196,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  196,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91
+    },
+
+    {
+       27,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  197,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+
+      -92,  -92,  -92,  -92,  -92,  -92
+    },
+
+    {
+       27,  -93,  -93,  -93,  -93,  198,  -93,  -93,  -93,  -93,
+      -93,  199,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93
+    },
+
+    {
+       27,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  200,  -94,  -94,  -94,
+
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94
+    },
+
+    {
+       27,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95
+    },
+
+    {
+       27,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96
+    },
+
+    {
+       27,  -97,  -97,  -97,  -97,  -97,  201,  -97,  -97,  -97,
+
+      -97,  -97,  -97,  201,  201,  -97,  201,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97
+    },
+
+    {
+       27,  -98,  -98,  -98,  -98,  -98,  201,  -98,  -98,  -98,
+      -98,  -98,  -98,  201,  201,  -98,  202,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98
+    },
+
+    {
+       27,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99
+
+    },
+
+    {
+       27, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+      203, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100,  203, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100
+    },
+
+    {
+       27, -101, -101, -101, -101, -101, -101, -101, -101,  204,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101
+    },
+
+    {
+       27, -102, -102, -102, -102,  205, -102, -102, -102, -102,
+     -102,  206, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+
+     -102, -102, -102, -102, -102, -102
+    },
+
+    {
+       27, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103,  207, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103
+    },
+
+    {
+       27, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104
+    },
+
+    {
+       27, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105
+    },
+
+    {
+       27, -106, -106, -106, -106, -106,  208, -106, -106, -106,
+     -106, -106, -106,  208,  208, -106,  208, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106
+    },
+
+    {
+       27, -107, -107, -107, -107, -107,  208, -107, -107, -107,
+
+     -107, -107, -107,  208,  208, -107,  209, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107
+    },
+
+    {
+       27, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108
+    },
+
+    {
+       27, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+      210, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109,  210, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109
+
+    },
+
+    {
+       27, -110, -110, -110, -110, -110, -110, -110, -110,  211,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110
+    },
+
+    {
+       27, -111, -111, -111, -111,  212, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111
+    },
+
+    {
+       27, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112,  213, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+
+     -112, -112, -112, -112, -112, -112
+    },
+
+    {
+       27, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113
+    },
+
+    {
+       27, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114
+    },
+
+    {
+       27, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115,  214
+    },
+
+    {
+       27, -116, -116, -116, -116, -116,  215, -116, -116, -116,
+     -116, -116, -116,  215,  215, -116,  215, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116
+    },
+
+    {
+       27, -117, -117, -117, -117, -117,  215, -117, -117, -117,
+
+     -117, -117, -117,  215,  215, -117,  216, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117
+    },
+
+    {
+       27, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118
+    },
+
+    {
+       27, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+      217, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119,  217, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119
+
+    },
+
+    {
+       27, -120, -120, -120, -120, -120, -120, -120, -120,  218,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120
+    },
+
+    {
+       27, -121, -121, -121, -121,  219, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121
+    },
+
+    {
+       27, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122,  220, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+
+     -122, -122, -122, -122, -122, -122
+    },
+
+    {
+       27, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123
+    },
+
+    {
+       27, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124
+    },
+
+    {
+       27, -125, -125, -125, -125, -125,  221, -125, -125, -125,
+     -125, -125, -125,  221,  221, -125,  221, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125
+    },
+
+    {
+       27, -126, -126, -126, -126, -126,  221, -126, -126, -126,
+     -126, -126, -126,  221,  221, -126,  222, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126
+    },
+
+    {
+       27, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127
+    },
+
+    {
+       27, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+      223, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128,  223, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128
+    },
+
+    {
+       27, -129, -129, -129, -129, -129, -129, -129, -129,  224,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129
+
+    },
+
+    {
+       27, -130, -130, -130, -130,  225, -130, -130, -130, -130,
+     -130,  226, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130
+    },
+
+    {
+       27, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131,  227, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131
+    },
+
+    {
+       27, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+
+     -132, -132, -132, -132, -132, -132
+    },
+
+    {
+       27, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133
+    },
+
+    {
+       27, -134, -134, -134, -134, -134,  228, -134, -134, -134,
+     -134, -134, -134,  228,  228, -134,  228, -134, -134, -134,
+
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134
+    },
+
+    {
+       27, -135, -135, -135, -135, -135,  228, -135, -135, -135,
+     -135, -135, -135,  228,  228, -135,  229, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135
+    },
+
+    {
+       27, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136,  230, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+      230, -136, -136, -136, -136, -136
+    },
+
+    {
+       27, -137, -137, -137, -137, -137, -137, -137, -137,  137,
+
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137
+    },
+
+    {
+       27, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+      231, -138, -138, -138, -138, -138, -138, -138, -138,  232,
+      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
+      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
+
+      232, -138, -138,  232,  232,  232,  232,  232,  232,  232,
+      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
+      232,  232,  232,  232, -138, -138
+    },
+
+    {
+       27, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139,  233,
+      234,  233,  235,  233,  233,  233,  236,  233,  233,  233,
+      237,  233,  233,  238,  239,  233,  233,  240,  241,  233,
+      233, -139, -139,  233,  234,  233,  235,  233,  233,  233,
+      236,  233,  233,  237,  233,  233,  238,  239,  233,  233,
+      240,  241,  233,  233, -139, -139
+
+    },
+
+    {
+       27, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140,  232,
+      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
+      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
+      232, -140, -140,  232,  232,  232,  232,  232,  232,  232,
+      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
+      232,  232,  232,  232, -140, -140
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  244,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  244,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  245,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  245,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  246,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  246,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  247,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  247,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  248,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  249,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  249,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  250,  242,  242,  242,  242,  242,  242,  242,
+      242,  251,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  250,  242,  242,  242,
+      242,  242,  242,  242,  251,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  252,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  252,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      253,  242,  242,  242,  254,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  253,  242,  242,  242,  254,  242,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  242,  242,  242,  255,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  256,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  257,  242,  242,  242,  242,  242,  258,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  259,  242,  242,
+      242,  242,  242,  242,  242,  257,  242,  242,  242,  242,
+      242,  258,  242,  242,  242,  242,  242,  242,  242,  242,
+      259,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  260,  242,  242,  242,  261,  262,  242,  242,
+      242,  242,  242,  242,  242,  263,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  260,  242,  242,  242,
+      261,  262,  242,  242,  242,  242,  242,  242,  263,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      264,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  264,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154,  154, -154, -154, -154,
+
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154
+    },
+
+    {
+       27, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155,  265,
+      265,  265,  265,  265,  266,  265,  265,  267,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265, -155, -155,  265,  265,  265,  265,  265,  266,  265,
+
+      265,  267,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265, -155, -155
+    },
+
+    {
+       27, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156
+    },
+
+    {
+       27, -157, -157, -157, -157, -157,  157, -157, -157, -157,
+
+     -157, -157, -157,  157,  157, -157,  157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157
+    },
+
+    {
+       27, -158, -158, -158, -158, -158,  157, -158, -158, -158,
+     -158, -158, -158,  157,  157, -158,  158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158
+    },
+
+    {
+       27, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159,  268, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159
+
+    },
+
+    {
+       27, -160, -160, -160, -160, -160, -160, -160,  269, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160
+    },
+
+    {
+       27, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+
+     -161, -161, -161, -161, -161, -161, -161,  270, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+      270, -161, -161, -161, -161, -161
+    },
+
+    {
+       27, -162, -162, -162, -162, -162, -162, -162, -162,  162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+
+     -162, -162, -162, -162, -162, -162
+    },
+
+    {
+       27, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+      271, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163
+    },
+
+    {
+       27, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164,  272, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164,  272,
+     -164, -164, -164, -164, -164, -164
+    },
+
+    {
+       27, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165,  165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165
+    },
+
+    {
+       27, -166, -166, -166, -166, -166,  166, -166, -166, -166,
+     -166, -166, -166,  166,  166, -166,  166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166
+    },
+
+    {
+       27, -167, -167, -167, -167, -167,  166, -167, -167, -167,
+
+     -167, -167, -167,  166,  166, -167,  167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167
+    },
+
+    {
+       27, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168,  273, -168, -168,
+
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+      273, -168, -168, -168, -168, -168
+    },
+
+    {
+       27, -169, -169, -169, -169, -169, -169, -169, -169,  169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169
+
+    },
+
+    {
+       27, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+      274, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170
+    },
+
+    {
+       27, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171,  275,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171,  275, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171
+    },
+
+    {
+       27, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172,  172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+
+     -172, -172, -172, -172, -172, -172
+    },
+
+    {
+       27, -173, -173, -173, -173, -173,  173, -173, -173, -173,
+     -173, -173, -173,  173,  173, -173,  173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173
+    },
+
+    {
+       27, -174, -174, -174, -174, -174,  173, -174, -174, -174,
+     -174, -174, -174,  173,  173, -174,  174, -174, -174, -174,
+
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174
+    },
+
+    {
+       27, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175,  276, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+      276, -175, -175, -175, -175, -175
+    },
+
+    {
+       27, -176, -176, -176, -176, -176, -176, -176, -176,  176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176
+    },
+
+    {
+       27, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+
+      277, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177
+    },
+
+    {
+       27, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178,  278, -178, -178, -178,
+
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178,  278,
+     -178, -178, -178, -178, -178, -178
+    },
+
+    {
+       27, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179,  179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179
+
+    },
+
+    {
+       27, -180, -180, -180, -180, -180,  180, -180, -180, -180,
+     -180, -180, -180,  180,  180, -180,  180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180
+    },
+
+    {
+       27, -181, -181, -181, -181, -181,  180, -181, -181, -181,
+     -181, -181, -181,  180,  180, -181,  181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181
+    },
+
+    {
+       27, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182,  279, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+
+      279, -182, -182, -182, -182, -182
+    },
+
+    {
+       27, -183, -183, -183, -183, -183, -183, -183, -183,  183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183
+    },
+
+    {
+       27, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+      280, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184
+    },
+
+    {
+       27, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185,  281, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185,  281, -185, -185, -185, -185,
+
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185
+    },
+
+    {
+       27, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186,  186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186
+    },
+
+    {
+       27, -187, -187, -187, -187, -187,  187, -187, -187, -187,
+
+     -187, -187, -187,  187,  187, -187,  187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187
+    },
+
+    {
+       27, -188, -188, -188, -188, -188,  187, -188, -188, -188,
+     -188, -188, -188,  187,  187, -188,  188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188
+    },
+
+    {
+       27, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189,  282, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+      282, -189, -189, -189, -189, -189
+
+    },
+
+    {
+       27, -190, -190, -190, -190, -190, -190, -190, -190,  190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190
+    },
+
+    {
+       27, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+      283, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191
+    },
+
+    {
+       27, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192,  284, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192,  284, -192, -192, -192, -192, -192, -192, -192, -192,
+
+     -192, -192, -192, -192, -192, -192
+    },
+
+    {
+       27, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193,  193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193
+    },
+
+    {
+       27, -194, -194, -194, -194, -194,  194, -194, -194, -194,
+     -194, -194, -194,  194,  194, -194,  194, -194, -194, -194,
+
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194
+    },
+
+    {
+       27, -195, -195, -195, -195, -195,  194, -195, -195, -195,
+     -195, -195, -195,  194,  194, -195,  195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195
+    },
+
+    {
+       27, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196,  285, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+      285, -196, -196, -196, -196, -196
+    },
+
+    {
+       27, -197, -197, -197, -197, -197, -197, -197, -197,  197,
+
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197
+    },
+
+    {
+       27, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+      286, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198
+    },
+
+    {
+       27, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199,  287, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199,  287, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199
+
+    },
+
+    {
+       27, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200,  200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200
+    },
+
+    {
+       27, -201, -201, -201, -201, -201,  201, -201, -201, -201,
+     -201, -201, -201,  201,  201, -201,  201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201
+    },
+
+    {
+       27, -202, -202, -202, -202, -202,  201, -202, -202, -202,
+     -202, -202, -202,  201,  201, -202,  202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+
+     -202, -202, -202, -202, -202, -202
+    },
+
+    {
+       27, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203,  288, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+      288, -203, -203, -203, -203, -203
+    },
+
+    {
+       27, -204, -204, -204, -204, -204, -204, -204, -204,  204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204
+    },
+
+    {
+       27, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+      289, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205, -205
+    },
+
+    {
+       27, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206,  290, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+      290, -206, -206, -206, -206, -206
+    },
+
+    {
+       27, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+
+     -207, -207, -207, -207, -207, -207,  207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207
+    },
+
+    {
+       27, -208, -208, -208, -208, -208,  208, -208, -208, -208,
+     -208, -208, -208,  208,  208, -208,  208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208
+    },
+
+    {
+       27, -209, -209, -209, -209, -209,  208, -209, -209, -209,
+     -209, -209, -209,  208,  208, -209,  209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209
+
+    },
+
+    {
+       27, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210,  291, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+      291, -210, -210, -210, -210, -210
+    },
+
+    {
+       27, -211, -211, -211, -211, -211, -211, -211, -211,  211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211
+    },
+
+    {
+       27, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+      292, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+
+     -212, -212, -212, -212, -212, -212
+    },
+
+    {
+       27, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213,  213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213
+    },
+
+    {
+       27, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214
+    },
+
+    {
+       27, -215, -215, -215, -215, -215,  215, -215, -215, -215,
+     -215, -215, -215,  215,  215, -215,  215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215
+    },
+
+    {
+       27, -216, -216, -216, -216, -216,  215, -216, -216, -216,
+     -216, -216, -216,  215,  215, -216,  216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216
+    },
+
+    {
+       27, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217,  293, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+      293, -217, -217, -217, -217, -217
+    },
+
+    {
+       27, -218, -218, -218, -218, -218, -218, -218, -218,  218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218
+    },
+
+    {
+       27, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+      294, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219
+
+    },
+
+    {
+       27, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220,  220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220
+    },
+
+    {
+       27, -221, -221, -221, -221, -221,  221, -221, -221, -221,
+     -221, -221, -221,  221,  221, -221,  221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221
+    },
+
+    {
+       27, -222, -222, -222, -222, -222,  221, -222, -222, -222,
+     -222, -222, -222,  221,  221, -222,  222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+
+     -222, -222, -222, -222, -222, -222
+    },
+
+    {
+       27, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223,  295, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+      295, -223, -223, -223, -223, -223
+    },
+
+    {
+       27, -224, -224, -224, -224, -224, -224, -224, -224,  224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224
+    },
+
+    {
+       27, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+      296, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225
+    },
+
+    {
+       27, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226,  297, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226,  297,
+     -226, -226, -226, -226, -226, -226
+    },
+
+    {
+       27, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+
+     -227, -227, -227, -227, -227, -227,  227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227
+    },
+
+    {
+       27, -228, -228, -228, -228, -228,  228, -228, -228, -228,
+     -228, -228, -228,  228,  228, -228,  228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228
+    },
+
+    {
+       27, -229, -229, -229, -229, -229,  228, -229, -229, -229,
+     -229, -229, -229,  228,  228, -229,  229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229
+
+    },
+
+    {
+       27, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230,  298, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230
+    },
+
+    {
+       27, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+      299, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231
+    },
+
+    {
+       27,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  301,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+
+      300,  300,  300,  300,  300,  300
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  304,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  304,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  305,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  305,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  306,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  307,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  307,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  308,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  308,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      309,  302,  302,  302,  310,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  309,  302,  302,  302,  310,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  311,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  312,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  313,  302,  302,  302,  314,  315,  302,  302,
+      302,  302,  302,  302,  302,  316,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  313,  302,  302,  302,
+      314,  315,  302,  302,  302,  302,  302,  302,  316,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      317,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  317,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  318,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  318,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  319,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  256,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  320,  321,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  320,  321,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  322,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  322,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  323,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  324,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  325,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  256,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  326,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  327,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  327,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  328,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  329,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  330,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  330,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  331,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  329,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  332,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      332,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  256,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333
+    },
+
+    {
+       27, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  334,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  334,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  335,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      335,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      336,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  336,  242,  242
+
+    },
+
+    {
+       27,  242,  242,  242,  337,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  338,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  339,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  338,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  340,  242,  242,  242,  242,  242,  341,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  340,  242,  242,  242,  242,  242,
+
+      341,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  342,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  338,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  343,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  329,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344, -265, -265,  344,  344,  344,  344,  344,  344,  344,
+
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344, -265, -265
+    },
+
+    {
+       27, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266,  344,
+      344,  344,  344,  344,  344,  344,  344,  345,  344,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344, -266, -266,  344,  344,  344,  344,  344,  344,  344,
+      344,  345,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344, -266, -266
+    },
+
+    {
+       27, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+
+     -267, -267, -267, -267, -267, -267, -267, -267, -267,  344,
+      344,  344,  344,  344,  344,  344,  344,  344,  344,  344,
+      344,  346,  344,  344,  344,  344,  344,  344,  344,  344,
+      344, -267, -267,  344,  344,  344,  344,  344,  344,  344,
+      344,  344,  344,  344,  346,  344,  344,  344,  344,  344,
+      344,  344,  344,  344, -267, -267
+    },
+
+    {
+       27, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268
+    },
+
+    {
+       27, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269,  347, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269,  347,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269
+
+    },
+
+    {
+       27, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270,  348, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270
+    },
+
+    {
+       27, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+      349, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271
+    },
+
+    {
+       27, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272,  350, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272,  350, -272, -272, -272, -272,
+     -272, -272, -272, -272, -272, -272, -272, -272, -272, -272,
+
+     -272, -272, -272, -272, -272, -272
+    },
+
+    {
+       27, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273,  351, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273
+    },
+
+    {
+       27, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+      352, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274
+    },
+
+    {
+       27, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275,  353, -275, -275, -275, -275, -275,
+     -275, -275, -275, -275, -275, -275, -275, -275, -275, -275,
+
+     -275, -275, -275, -275, -275, -275, -275,  353, -275, -275,
+     -275, -275, -275, -275, -275, -275
+    },
+
+    {
+       27, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276,  354, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276, -276, -276, -276, -276,
+     -276, -276, -276, -276, -276, -276
+    },
+
+    {
+       27, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+
+      355, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277, -277, -277, -277, -277,
+     -277, -277, -277, -277, -277, -277
+    },
+
+    {
+       27, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278,  356, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278,  356, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278
+    },
+
+    {
+       27, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279,  357, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279, -279, -279, -279, -279,
+     -279, -279, -279, -279, -279, -279
+
+    },
+
+    {
+       27, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+      358, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280
+    },
+
+    {
+       27, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+
+     -281, -281, -281,  359, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281,  359, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281
+    },
+
+    {
+       27, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282,  360, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+
+     -282, -282, -282, -282, -282, -282
+    },
+
+    {
+       27, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+      361, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283, -283, -283, -283, -283,
+     -283, -283, -283, -283, -283, -283
+    },
+
+    {
+       27, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+
+     -284, -284,  362, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284,  362, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284
+    },
+
+    {
+       27, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285,  363, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285
+    },
+
+    {
+       27, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+      364, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286, -286, -286, -286, -286,
+     -286, -286, -286, -286, -286, -286
+    },
+
+    {
+       27, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287,  365, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287,  365, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287
+    },
+
+    {
+       27, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288,  366, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288
+    },
+
+    {
+       27, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+      367, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289, -289, -289, -289, -289,
+     -289, -289, -289, -289, -289, -289
+
+    },
+
+    {
+       27, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290,  368, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290,  368, -290, -290, -290, -290, -290, -290, -290, -290,
+     -290, -290, -290, -290, -290, -290
+    },
+
+    {
+       27, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291,  369, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291
+    },
+
+    {
+       27, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+      370, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+     -292, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+
+     -292, -292, -292, -292, -292, -292
+    },
+
+    {
+       27, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293,  371, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293, -293, -293, -293, -293,
+     -293, -293, -293, -293, -293, -293
+    },
+
+    {
+       27, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+      372, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294, -294, -294, -294, -294,
+     -294, -294, -294, -294, -294, -294
+    },
+
+    {
+       27, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295,  373, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295
+    },
+
+    {
+       27, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+      374, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296
+    },
+
+    {
+       27, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297,  375, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+      375, -297, -297, -297, -297, -297
+    },
+
+    {
+       27, -298, -298, -298, -298,  376, -298, -298, -298, -298,
+     -298,  377, -298, -298, -298, -298, -298, -298, -298,  378,
+      378,  378,  378,  378,  378,  378,  378,  378,  378,  378,
+      378,  379,  378,  378,  378,  378,  378,  378,  378,  378,
+
+      378, -298, -298,  378,  378,  378,  378,  378,  378,  378,
+      378,  378,  378,  378,  379,  378,  378,  378,  378,  378,
+      378,  378,  378,  378, -298, -298
+    },
+
+    {
+       27, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299
+
+    },
+
+    {
+       27,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  301,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
+      300,  300,  300,  300,  300,  300
+    },
+
+    {
+       27, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303, -303, -303, -303, -303,
+     -303, -303, -303, -303, -303, -303
+    },
+
+    {
+       27,  302,  302,  302,  380,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  312,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  381,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  381,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  382,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  383,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  384,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  312,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  385,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  386,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  387,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  386,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  388,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      388,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  312,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389
+    },
+
+    {
+       27, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+
+     -312, -312, -312, -312, -312, -312
+    },
+
+    {
+       27,  302,  302,  302,  390,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  391,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  392,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  391,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  393,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      393,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  394,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  391,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  302,  302,  302,  395,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  386,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  396,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  396,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  256,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  398,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  398,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  399,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      399,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  400,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  324,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  324,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401
+    },
+
+    {
+       27, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324
+    },
+
+    {
+       27,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  256,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402
+    },
+
+    {
+       27, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326
+    },
+
+    {
+       27,  242,  242,  242,  403,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  404,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  329,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405
+    },
+
+    {
+       27, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  406,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  406,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  329,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  408,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  408,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  256,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333,  333,  333,  333,  333,
+      333,  333,  333,  333,  333,  333
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  409,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  409,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  410,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  410,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      411,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  411,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+
+      412,  412,  412,  412,  412,  412,  412,  338,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412
+    },
+
+    {
+       27, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338
+    },
+
+    {
+       27,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  338,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  414,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  414,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      415,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  415,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  338,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+
+      416,  416,  416,  416,  416,  416
+    },
+
+    {
+       27,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  329,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417
+    },
+
+    {
+       27, -344, -344, -344, -344, -344, -344, -344, -344, -344,
+     -344, -344, -344,  418, -344, -344, -344, -344, -344,  419,
+
+      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419, -344, -344,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419, -344, -344
+    },
+
+    {
+       27, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345,  418, -345, -345, -345, -345, -345,  419,
+      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      420,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419, -345, -345,  419,  419,  419,  419,  419,  419,  419,
+
+      419,  419,  419,  420,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419, -345, -345
+    },
+
+    {
+       27, -346, -346, -346, -346, -346, -346, -346, -346, -346,
+     -346, -346, -346,  418, -346, -346, -346, -346, -346,  421,
+      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419, -346, -346,  421,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
+      419,  419,  419,  419, -346, -346
+    },
+
+    {
+       27, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347,  422, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+      422, -347, -347, -347, -347, -347
+    },
+
+    {
+       27, -348, -348, -348, -348,  423, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348
+    },
+
+    {
+       27, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349, -349, -349, -349, -349,
+     -349, -349, -349, -349, -349, -349
+
+    },
+
+    {
+       27, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350,  424, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350,  424, -350,
+     -350, -350, -350, -350, -350, -350
+    },
+
+    {
+       27, -351, -351, -351, -351,  425, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351, -351, -351, -351, -351,
+     -351, -351, -351, -351, -351, -351
+    },
+
+    {
+       27, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+     -352, -352, -352, -352, -352, -352, -352, -352, -352, -352,
+
+     -352, -352, -352, -352, -352, -352
+    },
+
+    {
+       27, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353,  426, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353,  426, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353
+    },
+
+    {
+       27, -354, -354, -354, -354,  427, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354, -354, -354, -354, -354,
+     -354, -354, -354, -354, -354, -354
+    },
+
+    {
+       27, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+
+     -355, -355, -355, -355, -355, -355, -355, -355, -355, -355,
+     -355, -355, -355, -355, -355, -355
+    },
+
+    {
+       27, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356,  428, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+      428, -356, -356, -356, -356, -356
+    },
+
+    {
+       27, -357, -357, -357, -357,  429, -357, -357, -357, -357,
+
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357, -357, -357, -357, -357,
+     -357, -357, -357, -357, -357, -357
+    },
+
+    {
+       27, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358, -358, -358, -358, -358,
+     -358, -358, -358, -358, -358, -358
+    },
+
+    {
+       27, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359,  430, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359,  430, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359
+
+    },
+
+    {
+       27, -360, -360, -360, -360,  431, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360
+    },
+
+    {
+       27, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361, -361, -361, -361, -361,
+     -361, -361, -361, -361, -361, -361
+    },
+
+    {
+       27, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362,  432, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+     -362, -362, -362, -362, -362, -362, -362, -362, -362, -362,
+
+     -362, -362, -362, -362, -362, -362
+    },
+
+    {
+       27, -363, -363, -363, -363,  433, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363
+    },
+
+    {
+       27, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364, -364, -364, -364, -364,
+     -364, -364, -364, -364, -364, -364
+    },
+
+    {
+       27, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365,  434, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+
+     -365, -365, -365, -365, -365,  434, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365
+    },
+
+    {
+       27, -366, -366, -366, -366,  435, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366, -366, -366, -366, -366,
+     -366, -366, -366, -366, -366, -366
+    },
+
+    {
+       27, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367
+    },
+
+    {
+       27, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368,  436, -368, -368, -368, -368, -368, -368, -368, -368,
+
+     -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368,  436, -368, -368, -368, -368, -368,
+     -368, -368, -368, -368, -368, -368
+    },
+
+    {
+       27, -369, -369, -369, -369,  437, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369
+
+    },
+
+    {
+       27, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370
+    },
+
+    {
+       27, -371, -371, -371, -371,  438, -371, -371, -371, -371,
+     -371,  439, -371, -371, -371, -371, -371, -371, -371, -371,
+     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
+
+     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
+     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
+     -371, -371, -371, -371, -371, -371, -371, -371, -371, -371,
+     -371, -371, -371, -371, -371, -371
+    },
+
+    {
+       27, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+
+     -372, -372, -372, -372, -372, -372
+    },
+
+    {
+       27, -373, -373, -373, -373,  440, -373, -373, -373, -373,
+     -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373, -373, -373, -373, -373, -373, -373, -373, -373,
+     -373, -373, -373, -373, -373, -373
+    },
+
+    {
+       27, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374
+    },
+
+    {
+       27, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+      441, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+
+     -375, -375, -375, -375, -375, -375, -375, -375, -375, -375,
+     -375, -375, -375,  441, -375, -375
+    },
+
+    {
+       27, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+      442, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376
+    },
+
+    {
+       27, -377, -377, -377, -377, -377, -377, -377, -377, -377,
+
+     -377, -377, -377, -377, -377, -377, -377, -377, -377,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443, -377, -377,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
+      443,  443,  443,  443, -377, -377
+    },
+
+    {
+       27,  444,  444,  444,  444,  444,  444,  444,  445,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444
+    },
+
+    {
+       27,  444,  444,  444,  444,  444,  444,  444,  445,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  446,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  446,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444
+
+    },
+
+    {
+       27,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  312,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447
+    },
+
+    {
+       27,  302,  302,  302,  448,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  383,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  383,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+
+      449,  449,  449,  449,  449,  449
+    },
+
+    {
+       27, -383, -383, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
+     -383, -383, -383, -383, -383, -383
+    },
+
+    {
+       27,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  312,  450,  450,
+
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450
+    },
+
+    {
+       27,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  386,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451
+    },
+
+    {
+       27, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386
+    },
+
+    {
+       27,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+
+      452,  452,  452,  452,  452,  452,  452,  386,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  453,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  453,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  312,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
+      389,  389,  389,  389,  389,  389
+
+    },
+
+    {
+       27,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  391,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454
+    },
+
+    {
+       27, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391, -391, -391, -391, -391,
+     -391, -391, -391, -391, -391, -391
+    },
+
+    {
+       27,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  391,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+
+      455,  455,  455,  455,  455,  455
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      456,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  456,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  391,  457,  457,
+
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457
+    },
+
+    {
+       27,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  386,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  459,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      459,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+
+      397,  397,  397,  397,  397,  397,  397,  256,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397,  397,  397,  397,  397,
+      397,  397,  397,  397,  397,  397
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  460,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  460,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  461,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  461,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  324,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462
+    },
+
+    {
+       27,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  324,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401,  401,  401,  401,  401,
+      401,  401,  401,  401,  401,  401
+    },
+
+    {
+       27,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  256,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+      402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
+
+      402,  402,  402,  402,  402,  402
+    },
+
+    {
+       27,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  404,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463
+    },
+
+    {
+       27, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404, -404, -404, -404, -404,
+     -404, -404, -404, -404, -404, -404
+    },
+
+    {
+       27,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  329,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+
+      405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
+      405,  405,  405,  405,  405,  405
+    },
+
+    {
+       27,  242,  242,  242,  403,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  404,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+
+      407,  407,  407,  407,  407,  407,  407,  329,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
+      407,  407,  407,  407,  407,  407
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  464,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  464,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  465,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  465,  242,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  466,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  466,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  467,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  467,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  338,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+      412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
+
+      412,  412,  412,  412,  412,  412
+    },
+
+    {
+       27,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  338,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
+      413,  413,  413,  413,  413,  413
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  468,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  468,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  469,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  469,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  338,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416,  416,  416,  416,  416,
+      416,  416,  416,  416,  416,  416
+    },
+
+    {
+       27,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+
+      417,  417,  417,  417,  417,  417,  417,  329,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417,  417,  417,  417,  417,
+      417,  417,  417,  417,  417,  417
+    },
+
+    {
+       27,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+
+      470,  470,  471,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470
+    },
+
+    {
+       27, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419,  418, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419, -419, -419, -419, -419,
+     -419, -419, -419, -419, -419, -419
+
+    },
+
+    {
+       27, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420,  418, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420,  472, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420,  472, -420, -420,
+     -420, -420, -420, -420, -420, -420, -420, -420, -420, -420,
+     -420, -420, -420, -420, -420, -420
+    },
+
+    {
+       27, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421,  418, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421,  473, -421, -421, -421, -421,
+
+     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421, -421, -421, -421, -421,  473,
+     -421, -421, -421, -421, -421, -421, -421, -421, -421, -421,
+     -421, -421, -421, -421, -421, -421
+    },
+
+    {
+       27, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422,  474, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+     -422, -422, -422, -422, -422, -422, -422, -422, -422, -422,
+
+     -422, -422, -422, -422, -422, -422
+    },
+
+    {
+       27, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+      475, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
+     -423, -423, -423, -423, -423, -423
+    },
+
+    {
+       27, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+
+     -424, -424, -424, -424, -424, -424, -424,  476, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424,  476, -424, -424, -424, -424, -424, -424, -424, -424,
+     -424, -424, -424, -424, -424, -424
+    },
+
+    {
+       27, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+      477, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+
+     -425, -425, -425, -425, -425, -425, -425, -425, -425, -425,
+     -425, -425, -425, -425, -425, -425
+    },
+
+    {
+       27, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426,  478, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
+     -426, -426, -426, -426, -426, -426, -426, -426,  478, -426,
+     -426, -426, -426, -426, -426, -426
+    },
+
+    {
+       27, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+
+      479, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+     -427, -427, -427, -427, -427, -427
+    },
+
+    {
+       27, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428,  480, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+
+     -428, -428, -428, -428, -428, -428, -428,  480, -428, -428,
+     -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
+     -428, -428, -428, -428, -428, -428
+    },
+
+    {
+       27, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+      481, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429, -429, -429, -429, -429,
+     -429, -429, -429, -429, -429, -429
+
+    },
+
+    {
+       27, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430,  482, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430,  482, -430, -430, -430, -430, -430,
+     -430, -430, -430, -430, -430, -430
+    },
+
+    {
+       27, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+      483, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+
+     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431, -431, -431, -431, -431, -431,
+     -431, -431, -431, -431, -431, -431
+    },
+
+    {
+       27, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+     -432, -432, -432, -432, -432, -432, -432, -432, -432, -432,
+
+     -432, -432, -432, -432, -432, -432
+    },
+
+    {
+       27, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+      484, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433, -433, -433, -433, -433,
+     -433, -433, -433, -433, -433, -433
+    },
+
+    {
+       27, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434,  485, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+      485, -434, -434, -434, -434, -434
+    },
+
+    {
+       27, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+      486, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435
+    },
+
+    {
+       27, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436,  487, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436,  487, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436
+    },
+
+    {
+       27, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+
+      488, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437, -437, -437, -437, -437,
+     -437, -437, -437, -437, -437, -437
+    },
+
+    {
+       27, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+      489, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438, -438, -438, -438, -438,
+     -438, -438, -438, -438, -438, -438
+    },
+
+    {
+       27, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439,  490, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439,  490, -439, -439, -439, -439, -439,
+     -439, -439, -439, -439, -439, -439
+
+    },
+
+    {
+       27, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+      491, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440, -440, -440, -440, -440,
+     -440, -440, -440, -440, -440, -440
+    },
+
+    {
+       27, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+
+      492, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441,  492, -441, -441, -441, -441, -441, -441,
+     -441, -441, -441, -441, -441, -441
+    },
+
+    {
+       27, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+      493, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+     -442, -442, -442, -442, -442, -442, -442, -442, -442, -442,
+
+     -442, -442, -442, -442, -442, -442
+    },
+
+    {
+       27,  494,  494,  494,  494,  494,  494,  494,  495,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494
+    },
+
+    {
+       27,  444,  444,  444,  444,  444,  444,  444,  445,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444
+    },
+
+    {
+       27, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445,  496, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445, -445, -445, -445,  496,
+
+     -445, -445, -445, -445, -445, -445, -445, -445, -445, -445,
+     -445, -445, -445, -445, -445, -445
+    },
+
+    {
+       27,  444,  444,  444,  444,  444,  444,  444,  445,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  497,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      497,  444,  444,  444,  444,  444
+    },
+
+    {
+       27,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+
+      447,  447,  447,  447,  447,  447,  447,  312,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
+      447,  447,  447,  447,  447,  447
+    },
+
+    {
+       27,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  383,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498
+    },
+
+    {
+       27,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  383,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449,  449,  449,  449,  449,
+      449,  449,  449,  449,  449,  449
+
+    },
+
+    {
+       27,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  312,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450,  450,  450,  450,  450,
+      450,  450,  450,  450,  450,  450
+    },
+
+    {
+       27,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  386,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451,  451,  451,  451,  451,
+      451,  451,  451,  451,  451,  451
+    },
+
+    {
+       27,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  386,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+      452,  452,  452,  452,  452,  452,  452,  452,  452,  452,
+
+      452,  452,  452,  452,  452,  452
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  499,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  499,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  391,  454,  454,
+
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454,  454,  454,  454,  454,
+      454,  454,  454,  454,  454,  454
+    },
+
+    {
+       27,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  391,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+
+      455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
+      455,  455,  455,  455,  455,  455
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  500,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  500,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+
+      457,  457,  457,  457,  457,  457,  457,  391,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457,  457,  457,  457,  457,
+      457,  457,  457,  457,  457,  457
+    },
+
+    {
+       27,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  386,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458,  458,  458,  458,  458,
+      458,  458,  458,  458,  458,  458
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  501,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  501,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  502,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  502,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  503,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  503,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  324,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
+
+      462,  462,  462,  462,  462,  462
+    },
+
+    {
+       27,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  404,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463,  463,  463,  463,  463,
+      463,  463,  463,  463,  463,  463
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  504,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  504,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  505,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      505,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  506,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  506,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  507,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  508,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  509,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      509,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  510,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  324,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  471,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
+      470,  470,  470,  470,  470,  470
+    },
+
+    {
+       27, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471,  511, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471, -471, -471, -471, -471,
+     -471, -471, -471, -471, -471, -471
+    },
+
+    {
+       27, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472,  418, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+     -472, -472, -472, -472, -472, -472, -472, -472, -472, -472,
+
+     -472, -472, -472, -472, -472, -472
+    },
+
+    {
+       27, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473,  512, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473,  512, -473, -473,
+     -473, -473, -473, -473, -473, -473, -473, -473, -473, -473,
+     -473, -473, -473, -473, -473, -473
+    },
+
+    {
+       27, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474, -474, -474, -474, -474,
+     -474, -474, -474, -474, -474, -474
+    },
+
+    {
+       27, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+      513, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+
+     -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
+     -475, -475, -475, -475, -475, -475
+    },
+
+    {
+       27, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476,  514, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476,  514, -476, -476,
+     -476, -476, -476, -476, -476, -476
+    },
+
+    {
+       27, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+
+      515, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477
+    },
+
+    {
+       27, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478,  516, -478, -478,
+
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+     -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
+      516, -478, -478, -478, -478, -478
+    },
+
+    {
+       27, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+      517, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
+     -479, -479, -479, -479, -479, -479
+
+    },
+
+    {
+       27, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480,  518, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480,  518, -480, -480, -480, -480, -480, -480, -480, -480,
+     -480, -480, -480, -480, -480, -480
+    },
+
+    {
+       27, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+      519, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481, -481, -481, -481, -481,
+     -481, -481, -481, -481, -481, -481
+    },
+
+    {
+       27, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482,  520, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482,  520, -482, -482,
+     -482, -482, -482, -482, -482, -482, -482, -482, -482, -482,
+
+     -482, -482, -482, -482, -482, -482
+    },
+
+    {
+       27, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+      521, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483, -483, -483, -483, -483,
+     -483, -483, -483, -483, -483, -483
+    },
+
+    {
+       27, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+      522, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484, -484, -484, -484, -484,
+     -484, -484, -484, -484, -484, -484
+    },
+
+    {
+       27, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485,  523, -485, -485, -485, -485,
+     -485, -485, -485, -485, -485, -485, -485, -485, -485, -485,
+
+     -485, -485, -485, -485, -485, -485, -485, -485,  523, -485,
+     -485, -485, -485, -485, -485, -485
+    },
+
+    {
+       27, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+      524, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486, -486, -486, -486, -486,
+     -486, -486, -486, -486, -486, -486
+    },
+
+    {
+       27, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487,  525, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487, -487,
+     -487, -487, -487, -487, -487, -487, -487, -487, -487,  525,
+     -487, -487, -487, -487, -487, -487
+    },
+
+    {
+       27, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+      526, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488, -488, -488, -488, -488,
+     -488, -488, -488, -488, -488, -488
+    },
+
+    {
+       27, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+      527, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489, -489, -489, -489, -489,
+     -489, -489, -489, -489, -489, -489
+
+    },
+
+    {
+       27, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490,  528,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490,  528, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490, -490, -490, -490, -490,
+     -490, -490, -490, -490, -490, -490
+    },
+
+    {
+       27, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+      529, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491, -491, -491, -491, -491,
+     -491, -491, -491, -491, -491, -491
+    },
+
+    {
+       27, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492,  530, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492,  530, -492, -492,
+     -492, -492, -492, -492, -492, -492, -492, -492, -492, -492,
+
+     -492, -492, -492, -492, -492, -492
+    },
+
+    {
+       27, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493, -493, -493, -493, -493,
+     -493, -493, -493, -493, -493, -493
+    },
+
+    {
+       27,  494,  494,  494,  494,  494,  494,  494,  495,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494,  494,  494,  494,  494,
+      494,  494,  494,  494,  494,  494
+    },
+
+    {
+       27, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495,  531, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495, -495, -495, -495,  531,
+
+     -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+     -495, -495, -495, -495, -495, -495
+    },
+
+    {
+       27, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496,  532, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+     -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
+      532, -496, -496, -496, -496, -496
+    },
+
+    {
+       27,  444,  444,  444,  444,  444,  444,  444,  445,  444,
+
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  533,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      533,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444
+    },
+
+    {
+       27,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  383,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498,  498,  498,  498,  498,
+      498,  498,  498,  498,  498,  498
+    },
+
+    {
+       27,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  303,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  534,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  534,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+
+    },
+
+    {
+       27,  302,  302,  302,  535,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  383,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  536,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  536,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  537,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      537,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      538,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  538,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  539,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  324,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  540,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  541,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  542,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  542,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+
+      543,  543,  543,  543,  543,  543,  543,  508,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543
+    },
+
+    {
+       27, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  544,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  544,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  324,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545
+    },
+
+    {
+       27, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511, -511, -511, -511, -511,
+     -511, -511, -511, -511, -511, -511
+    },
+
+    {
+       27, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512,  418, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+     -512, -512, -512, -512, -512, -512, -512, -512, -512, -512,
+
+     -512, -512, -512, -512, -512, -512
+    },
+
+    {
+       27, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513, -513, -513, -513, -513,
+     -513, -513, -513, -513, -513, -513
+    },
+
+    {
+       27, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514,  546, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+     -514, -514, -514, -514, -514, -514, -514, -514, -514, -514,
+      546, -514, -514, -514, -514, -514
+    },
+
+    {
+       27, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+
+     -515, -515, -515, -515, -515, -515, -515, -515, -515, -515,
+     -515, -515, -515, -515, -515, -515
+    },
+
+    {
+       27, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516,  547, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516,  547, -516, -516, -516, -516, -516, -516, -516, -516,
+     -516, -516, -516, -516, -516, -516
+    },
+
+    {
+       27, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517, -517, -517, -517, -517,
+     -517, -517, -517, -517, -517, -517
+    },
+
+    {
+       27, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518,  548, -518, -518, -518, -518, -518, -518, -518,
+
+     -518, -518, -518, -518, -518, -518, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518,  548, -518, -518, -518, -518,
+     -518, -518, -518, -518, -518, -518
+    },
+
+    {
+       27, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519, -519, -519, -519, -519,
+     -519, -519, -519, -519, -519, -519
+
+    },
+
+    {
+       27, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520,  549, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520,  549, -520, -520, -520, -520,
+     -520, -520, -520, -520, -520, -520
+    },
+
+    {
+       27, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521, -521, -521, -521, -521,
+     -521, -521, -521, -521, -521, -521
+    },
+
+    {
+       27, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+     -522, -522, -522, -522, -522, -522, -522, -522, -522, -522,
+
+     -522, -522, -522, -522, -522, -522
+    },
+
+    {
+       27, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523,  550, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523,  550, -523, -523, -523, -523, -523, -523, -523, -523,
+     -523, -523, -523, -523, -523, -523
+    },
+
+    {
+       27, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524, -524, -524, -524, -524,
+     -524, -524, -524, -524, -524, -524
+    },
+
+    {
+       27, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525,  551, -525, -525,
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+
+     -525, -525, -525, -525, -525, -525, -525, -525, -525, -525,
+      551, -525, -525, -525, -525, -525
+    },
+
+    {
+       27, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526, -526, -526, -526, -526,
+     -526, -526, -526, -526, -526, -526
+    },
+
+    {
+       27, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527, -527, -527, -527, -527,
+     -527, -527, -527, -527, -527, -527
+    },
+
+    {
+       27, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528,  552, -528, -528,
+
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+     -528, -528, -528, -528, -528, -528, -528, -528, -528, -528,
+      552, -528, -528, -528, -528, -528
+    },
+
+    {
+       27, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529
+
+    },
+
+    {
+       27, -530, -530, -530,  553, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530,  554, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530
+    },
+
+    {
+       27, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+
+     -531, -531, -531, -531, -531, -531, -531,  555, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+     -531, -531, -531, -531, -531, -531, -531, -531, -531, -531,
+      555, -531, -531, -531, -531, -531
+    },
+
+    {
+       27, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532,  556, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+     -532, -532, -532, -532, -532, -532, -532, -532, -532, -532,
+
+     -532, -532, -532, -532, -532, -532
+    },
+
+    {
+       27,  444,  444,  444,  444,  444,  444,  444,  557,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
+      444,  444,  444,  444,  444,  444
+    },
+
+    {
+       27,  302,  302,  302,  558,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  383,  302,  302,
+
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
+      302,  302,  302,  302,  302,  302
+    },
+
+    {
+       27,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  383,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  560,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  560,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  561,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  562,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  562,  242,  242,  242,  242
+    },
+
+    {
+       27,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  324,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563
+
+    },
+
+    {
+       27,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  541,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564
+    },
+
+    {
+       27, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541, -541, -541, -541, -541,
+     -541, -541, -541, -541, -541, -541
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  565,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  565,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  508,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
+      543,  543,  543,  543,  543,  543
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  566,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  566,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  324,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+
+      545,  545,  545,  545,  545,  545,  545,  545,  545,  545,
+      545,  545,  545,  545,  545,  545
+    },
+
+    {
+       27, -546, -546, -546,  567, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546,  568, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546, -546, -546, -546, -546,
+     -546, -546, -546, -546, -546, -546
+    },
+
+    {
+       27, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547,  569, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547, -547, -547, -547, -547, -547, -547, -547, -547, -547,
+     -547,  569, -547, -547, -547, -547
+    },
+
+    {
+       27, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548,  570, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+
+     -548, -548, -548, -548, -548, -548, -548, -548,  570, -548,
+     -548, -548, -548, -548, -548, -548, -548, -548, -548, -548,
+     -548, -548, -548, -548, -548, -548
+    },
+
+    {
+       27, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549,  571, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+      571, -549, -549, -549, -549, -549
+
+    },
+
+    {
+       27, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+      572, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550,  572, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550
+    },
+
+    {
+       27, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551,  573,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551,  573, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
+     -551, -551, -551, -551, -551, -551
+    },
+
+    {
+       27, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552,  574, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+     -552, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+      574, -552, -552, -552, -552, -552, -552, -552, -552, -552,
+
+     -552, -552, -552, -552, -552, -552
+    },
+
+    {
+       27,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  554,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575
+    },
+
+    {
+       27, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554, -554, -554, -554, -554,
+     -554, -554, -554, -554, -554, -554
+    },
+
+    {
+       27, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555,  576, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555
+    },
+
+    {
+       27, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556, -556, -556, -556, -556,
+     -556, -556, -556, -556, -556, -556
+    },
+
+    {
+       27, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557,  577, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557,  577,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557
+    },
+
+    {
+       27,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  383,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578
+    },
+
+    {
+       27,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  383,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
+      559,  559,  559,  559,  559,  559
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      579,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561, -561, -561, -561, -561,
+     -561, -561, -561, -561, -561, -561
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  580,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      580,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  324,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563,  563,  563,  563,  563,
+      563,  563,  563,  563,  563,  563
+    },
+
+    {
+       27,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  541,  564,  564,
+
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
+      564,  564,  564,  564,  564,  564
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  581,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  582,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  582,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+
+      583,  583,  583,  583,  583,  583,  583,  568,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583
+    },
+
+    {
+       27, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568, -568, -568, -568, -568,
+     -568, -568, -568, -568, -568, -568
+    },
+
+    {
+       27, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569,  584, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569,  584, -569, -569, -569, -569, -569,
+     -569, -569, -569, -569, -569, -569
+
+    },
+
+    {
+       27, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570,  585, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570, -570, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570,  585, -570, -570, -570,
+     -570, -570, -570, -570, -570, -570
+    },
+
+    {
+       27, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571,  586, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571, -571, -571, -571, -571,
+     -571, -571, -571, -571, -571, -571
+    },
+
+    {
+       27, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572,  587, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+     -572, -572, -572, -572, -572, -572, -572, -572, -572, -572,
+
+     -572,  587, -572, -572, -572, -572
+    },
+
+    {
+       27, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573,  588, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573,  588, -573, -573, -573, -573, -573,
+     -573, -573, -573, -573, -573, -573
+    },
+
+    {
+       27, -574, -574, -574, -574, -574, -574, -574,  589, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
+     -574, -574, -574, -574, -574, -574
+    },
+
+    {
+       27,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  554,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+
+      575,  575,  575,  575,  575,  575,  575,  575,  575,  575,
+      575,  575,  575,  575,  575,  575
+    },
+
+    {
+       27, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576, -576, -576, -576, -576,
+     -576, -576, -576, -576, -576, -576
+    },
+
+    {
+       27, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577,  590, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+     -577, -577, -577, -577, -577, -577, -577, -577, -577, -577,
+      590, -577, -577, -577, -577, -577
+    },
+
+    {
+       27,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  383,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
+      578,  578,  578,  578,  578,  578
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  591,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  591,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  592,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  592,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  593,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  568,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583,  583,  583,  583,  583,
+      583,  583,  583,  583,  583,  583
+    },
+
+    {
+       27, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+      594, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584, -584, -584, -584, -584,
+     -584, -584, -584, -584, -584, -584
+    },
+
+    {
+       27, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585,  595, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+
+     -585, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+     -585, -585, -585, -585, -585, -585
+    },
+
+    {
+       27, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586, -586, -586, -586, -586,
+     -586, -586, -586, -586, -586, -586
+    },
+
+    {
+       27, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587,  596, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+     -587, -587, -587, -587, -587, -587, -587, -587, -587, -587,
+      596, -587, -587, -587, -587, -587
+    },
+
+    {
+       27, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588,  597, -588, -588, -588, -588, -588,
+
+     -588, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+     -588, -588, -588, -588, -588, -588, -588,  597, -588, -588,
+     -588, -588, -588, -588, -588, -588
+    },
+
+    {
+       27, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589,  598, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589,  598,
+     -589, -589, -589, -589, -589, -589, -589, -589, -589, -589,
+     -589, -589, -589, -589, -589, -589
+
+    },
+
+    {
+       27, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590,  599, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590, -590, -590, -590, -590,
+     -590, -590, -590, -590, -590, -590
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  600,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  600,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  601,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  601,  242,
+
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593, -593, -593, -593, -593,
+     -593, -593, -593, -593, -593, -593
+    },
+
+    {
+       27, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594,  602, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594,  602, -594, -594, -594, -594,
+     -594, -594, -594, -594, -594, -594
+    },
+
+    {
+       27, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+
+     -595, -595, -595, -595, -595, -595, -595, -595, -595, -595,
+     -595, -595, -595, -595, -595, -595
+    },
+
+    {
+       27, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596,  603, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596,  603, -596, -596, -596,
+     -596, -596, -596, -596, -596, -596
+    },
+
+    {
+       27, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+
+     -597, -597, -597, -597, -597, -597, -597,  604, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597, -597, -597, -597, -597,
+     -597, -597, -597, -597, -597, -597
+    },
+
+    {
+       27, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598,  605, -598, -598,
+
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+     -598, -598, -598, -598, -598, -598, -598, -598, -598, -598,
+      605, -598, -598, -598, -598, -598
+    },
+
+    {
+       27, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599, -599, -599, -599, -599,
+     -599, -599, -599, -599, -599, -599
+
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  606,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      606,  242,  242,  242,  242,  242
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  607,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602,  608, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602, -602, -602, -602, -602,
+     -602, -602, -602, -602, -602, -602,  608, -602, -602, -602,
+
+     -602, -602, -602, -602, -602, -602
+    },
+
+    {
+       27, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603,  609, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603, -603, -603,
+     -603, -603, -603, -603, -603, -603, -603, -603,  609, -603,
+     -603, -603, -603, -603, -603, -603
+    },
+
+    {
+       27, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604, -604, -604, -604, -604,
+     -604, -604, -604, -604, -604, -604
+    },
+
+    {
+       27, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605,  610, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+
+     -605, -605, -605, -605, -605, -605, -605, -605, -605, -605,
+     -605, -605, -605, -605, -605, -605
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  611,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  611,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
+     -607, -607, -607, -607, -607, -607
+    },
+
+    {
+       27, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608,  612, -608, -608,
+
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+     -608, -608, -608, -608, -608, -608, -608, -608, -608, -608,
+      612, -608, -608, -608, -608, -608
+    },
+
+    {
+       27, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609,  613, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609, -609, -609, -609, -609,
+     -609, -609, -609, -609, -609, -609
+
+    },
+
+    {
+       27, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610, -610, -610, -610, -610,
+     -610, -610, -610, -610, -610, -610
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  614,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  614,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612,  615, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612,  615, -612,
+
+     -612, -612, -612, -612, -612, -612
+    },
+
+    {
+       27, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613, -613, -613, -613, -613,
+     -613, -613, -613, -613, -613, -613
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  616,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  616,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615,  617,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615,  617, -615, -615, -615, -615, -615, -615,
+
+     -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+     -615, -615, -615, -615, -615, -615
+    },
+
+    {
+       27,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  243,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  618,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  618,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617,  619, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617,  619, -617, -617, -617, -617,
+     -617, -617, -617, -617, -617, -617
+    },
+
+    {
+       27,  242,  242,  242,  620,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  621,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
+      242,  242,  242,  242,  242,  242
+    },
+
+    {
+       27, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619,  622, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619, -619,
+     -619, -619, -619, -619, -619, -619, -619, -619, -619,  622,
+     -619, -619, -619, -619, -619, -619
+
+    },
+
+    {
+       27,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  621,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623
+    },
+
+    {
+       27, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
+     -621, -621, -621, -621, -621, -621
+    },
+
+    {
+       27, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622,  624, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+     -622, -622, -622, -622, -622, -622, -622, -622, -622, -622,
+
+     -622, -622, -622, -622, -622, -622
+    },
+
+    {
+       27,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  621,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623,  623,  623,  623,  623,
+      623,  623,  623,  623,  623,  623
+    },
+
+    {
+       27, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624, -624, -624, -624, -624,
+     -624, -624, -624, -624, -624, -624
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 130
+#define YY_END_OF_BUFFER 131
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[625] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  131,  129,  127,  127,
+      128,  129,  129,  127,  129,  113,  114,  127,  116,  116,
+        2,    2,    4,    4,   13,   13,   13,   13,   13,    7,
+        8,   10,   10,   22,   22,   22,   22,   22,   16,   17,
+       19,   19,   31,   31,   31,   31,   31,   25,   26,   28,
+       28,   40,   40,   40,   40,   40,   34,   35,   37,   37,
+       49,   49,   49,   49,   49,   43,   44,   46,   46,   58,
+       58,   58,   58,   58,   52,   53,   55,   55,   67,   67,
+
+       67,   67,   67,   61,   62,   64,   64,   76,   76,   76,
+       76,   76,   70,   71,   76,   73,   73,   85,   85,   85,
+       85,   85,   79,   80,   82,   82,   94,   94,   94,   94,
+       94,   88,   89,   91,   91,    0,  115,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  117,    0,  104,  116,  116,    0,    0,
+        0,    9,    0,    0,   11,   10,   10,    0,   18,    0,
+        0,   20,   19,   19,    0,   27,    0,    0,   29,   28,
+       28,    0,   36,    0,    0,   38,   37,   37,    0,   45,
+        0,    0,   47,   46,   46,    0,   54,    0,    0,   56,
+
+       55,   55,    0,   63,    0,    0,   65,   64,   64,    0,
+       72,    0,   74,   75,   73,   73,    0,   81,    0,   83,
+       82,   82,    0,   90,    0,    0,   92,   91,   91,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  123,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  107,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    1,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   95,    0,
+
+      122,    0,  124,    0,    0,    0,    0,    0,    0,    0,
+        0,  110,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  119,    0,  101,    0,    0,  108,    0,
+        0,    0,    0,    0,    0,    0,    0,  109,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    5,    0,
+        0,   14,    0,    0,   23,    0,    0,   32,    0,    0,
+       41,    0,    0,   50,    0,    0,   59,    0,    0,   68,
+        0,   77,    0,   86,    0,    0,    0,    0,    0,    0,
+        0,    0,  120,    0,    0,  111,    0,    0,    0,    0,
+      112,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,  121,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   48,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    3,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   96,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
+      118,    0,    6,    0,   15,    0,   24,    0,   33,    0,
+       42,   51,    0,   60,    0,   69,   78,    0,   87,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       97,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   93,    0,  125,    0,    0,    0,    0,
+      100,    0,    0,    0,    0,    0,    0,   12,    0,    0,
+        0,    0,    0,    0,    0,  126,    0,    0,    0,    0,
+       99,    0,    0,    0,    0,   39,    0,    0,    0,    0,
+        0,    0,  103,    0,   30,    0,    0,    0,  105,    0,
+
+        0,    0,    0,   66,    0,    0,  102,    0,    0,   84,
+        0,    0,   57,    0,    0,    0,    0,    0,    0,    0,
+       98,    0,    0,   21
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    4,    5,    1,    6,    7,    1,    8,    9,    1,
+        1,    6,    1,    1,   10,    1,   11,    1,   12,   12,
+       12,   12,   12,   12,    1,    1,    1,   13,   14,   15,
+       16,   17,   18,    7,   19,   20,   21,   22,   23,   24,
+       25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
+       28,   35,   36,   37,   38,   39,   28,   28,   40,   28,
+       41,    7,   42,    7,    1,    1,   43,   44,   45,   46,
+
+       47,   48,   49,   50,   51,   28,   52,   53,   54,   55,
+       56,   57,   28,   58,   59,   60,   61,   62,   28,   28,
+       63,   28,   64,    1,   65,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_desmediawiki.cctmp"
+#line 4 "apertium_desmediawiki.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/$]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 7445 "apertium_desmediawiki.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+#define C4 4
+#define C5 5
+#define C6 6
+#define C7 7
+#define C8 8
+#define C9 9
+#define C10 10
+#define C11 11
+#define C12 12
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	if ( yyleng > 0 ) \
+		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
+				(yytext[yyleng - 1] == '\n'); \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 266 "apertium_desmediawiki.cctmp"
+
+
+
+#line 7665 "apertium_desmediawiki.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+		yy_current_state += YY_AT_BOL();
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 271 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 277 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 286 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 292 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 5:
+YY_RULE_SETUP
+#line 301 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 305 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 309 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 312 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 315 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 318 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 321 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 12:
+/* rule 12 can match eol */
+YY_RULE_SETUP
+#line 325 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 13:
+/* rule 13 can match eol */
+YY_RULE_SETUP
+#line 331 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 14:
+YY_RULE_SETUP
+#line 340 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 344 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 348 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 351 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 354 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 357 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 360 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 364 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 370 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 23:
+YY_RULE_SETUP
+#line 379 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 383 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 387 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 390 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 393 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 396 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 399 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 403 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 31:
+/* rule 31 can match eol */
+YY_RULE_SETUP
+#line 409 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 32:
+YY_RULE_SETUP
+#line 418 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 422 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 426 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 429 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 432 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 435 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 438 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 442 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 40:
+/* rule 40 can match eol */
+YY_RULE_SETUP
+#line 448 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 41:
+YY_RULE_SETUP
+#line 457 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 461 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 43:
+YY_RULE_SETUP
+#line 465 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 468 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 471 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 474 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 477 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 481 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 49:
+/* rule 49 can match eol */
+YY_RULE_SETUP
+#line 487 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 50:
+YY_RULE_SETUP
+#line 496 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 500 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 504 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 53:
+YY_RULE_SETUP
+#line 507 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 54:
+YY_RULE_SETUP
+#line 510 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 513 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 56:
+YY_RULE_SETUP
+#line 516 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 57:
+YY_RULE_SETUP
+#line 520 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 58:
+/* rule 58 can match eol */
+YY_RULE_SETUP
+#line 526 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 59:
+YY_RULE_SETUP
+#line 535 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 60:
+YY_RULE_SETUP
+#line 539 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 61:
+YY_RULE_SETUP
+#line 543 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 62:
+YY_RULE_SETUP
+#line 546 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 63:
+YY_RULE_SETUP
+#line 549 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 64:
+YY_RULE_SETUP
+#line 552 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 65:
+YY_RULE_SETUP
+#line 555 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 66:
+YY_RULE_SETUP
+#line 559 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 67:
+/* rule 67 can match eol */
+YY_RULE_SETUP
+#line 565 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 68:
+YY_RULE_SETUP
+#line 574 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 69:
+YY_RULE_SETUP
+#line 578 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 70:
+YY_RULE_SETUP
+#line 582 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 71:
+YY_RULE_SETUP
+#line 585 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 72:
+YY_RULE_SETUP
+#line 588 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 73:
+YY_RULE_SETUP
+#line 591 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 74:
+YY_RULE_SETUP
+#line 594 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 75:
+YY_RULE_SETUP
+#line 598 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 76:
+/* rule 76 can match eol */
+YY_RULE_SETUP
+#line 604 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 77:
+YY_RULE_SETUP
+#line 613 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 78:
+YY_RULE_SETUP
+#line 617 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 79:
+YY_RULE_SETUP
+#line 621 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 80:
+YY_RULE_SETUP
+#line 624 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 81:
+YY_RULE_SETUP
+#line 627 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 82:
+YY_RULE_SETUP
+#line 630 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 83:
+YY_RULE_SETUP
+#line 633 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 84:
+YY_RULE_SETUP
+#line 637 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 85:
+/* rule 85 can match eol */
+YY_RULE_SETUP
+#line 643 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 86:
+YY_RULE_SETUP
+#line 652 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 87:
+YY_RULE_SETUP
+#line 656 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 88:
+YY_RULE_SETUP
+#line 660 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 89:
+YY_RULE_SETUP
+#line 663 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 90:
+YY_RULE_SETUP
+#line 666 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 91:
+YY_RULE_SETUP
+#line 669 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 92:
+YY_RULE_SETUP
+#line 672 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 93:
+/* rule 93 can match eol */
+YY_RULE_SETUP
+#line 676 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 94:
+/* rule 94 can match eol */
+YY_RULE_SETUP
+#line 682 "apertium_desmediawiki.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 95:
+YY_RULE_SETUP
+#line 688 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 96:
+YY_RULE_SETUP
+#line 692 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 97:
+/* rule 97 can match eol */
+YY_RULE_SETUP
+#line 696 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 98:
+/* rule 98 can match eol */
+YY_RULE_SETUP
+#line 700 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 99:
+YY_RULE_SETUP
+#line 704 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 100:
+YY_RULE_SETUP
+#line 708 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C6);
+}
+	YY_BREAK
+case 101:
+YY_RULE_SETUP
+#line 712 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C7);
+}
+	YY_BREAK
+case 102:
+YY_RULE_SETUP
+#line 716 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C8);
+}
+	YY_BREAK
+case 103:
+YY_RULE_SETUP
+#line 720 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C9);
+}
+	YY_BREAK
+case 104:
+YY_RULE_SETUP
+#line 724 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C10);
+}
+	YY_BREAK
+case 105:
+YY_RULE_SETUP
+#line 728 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C11);
+}
+	YY_BREAK
+case 106:
+/* rule 106 can match eol */
+YY_RULE_SETUP
+#line 732 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C12);
+}
+	YY_BREAK
+case 107:
+/* rule 107 can match eol */
+YY_RULE_SETUP
+#line 736 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 108:
+/* rule 108 can match eol */
+YY_RULE_SETUP
+#line 740 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 109:
+/* rule 109 can match eol */
+YY_RULE_SETUP
+#line 744 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 110:
+/* rule 110 can match eol */
+YY_RULE_SETUP
+#line 748 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 111:
+/* rule 111 can match eol */
+YY_RULE_SETUP
+#line 752 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 112:
+/* rule 112 can match eol */
+YY_RULE_SETUP
+#line 756 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 113:
+YY_RULE_SETUP
+#line 760 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 114:
+YY_RULE_SETUP
+#line 763 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 115:
+YY_RULE_SETUP
+#line 766 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 116:
+YY_RULE_SETUP
+#line 769 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 117:
+YY_RULE_SETUP
+#line 772 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 118:
+/* rule 118 can match eol */
+YY_RULE_SETUP
+#line 776 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 119:
+/* rule 119 can match eol */
+YY_RULE_SETUP
+#line 779 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 120:
+/* rule 120 can match eol */
+YY_RULE_SETUP
+#line 783 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 121:
+/* rule 121 can match eol */
+YY_RULE_SETUP
+#line 787 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 122:
+/* rule 122 can match eol */
+YY_RULE_SETUP
+#line 790 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 123:
+/* rule 123 can match eol */
+YY_RULE_SETUP
+#line 793 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 124:
+/* rule 124 can match eol */
+YY_RULE_SETUP
+#line 796 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 125:
+/* rule 125 can match eol */
+YY_RULE_SETUP
+#line 799 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 126:
+/* rule 126 can match eol */
+YY_RULE_SETUP
+#line 802 "apertium_desmediawiki.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 127:
+/* rule 127 can match eol */
+YY_RULE_SETUP
+#line 805 "apertium_desmediawiki.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 128:
+YY_RULE_SETUP
+#line 813 "apertium_desmediawiki.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 129:
+YY_RULE_SETUP
+#line 833 "apertium_desmediawiki.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+case YY_STATE_EOF(C4):
+case YY_STATE_EOF(C5):
+case YY_STATE_EOF(C6):
+case YY_STATE_EOF(C7):
+case YY_STATE_EOF(C8):
+case YY_STATE_EOF(C9):
+case YY_STATE_EOF(C10):
+case YY_STATE_EOF(C11):
+case YY_STATE_EOF(C12):
+#line 858 "apertium_desmediawiki.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 130:
+YY_RULE_SETUP
+#line 865 "apertium_desmediawiki.cctmp"
+ECHO;
+	YY_BREAK
+#line 8825 "apertium_desmediawiki.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+	yy_current_state += YY_AT_BOL();
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 865 "apertium_desmediawiki.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_desodt.cc b/apertium/apertium_desodt.cc
new file mode 100644
index 0000000..d6934ce
--- /dev/null
+++ b/apertium/apertium_desodt.cc
@@ -0,0 +1,3785 @@
+#line 2 "apertium_desodt.cc"
+
+#line 4 "apertium_desodt.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][50] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+       11,   12,   13,   14,   13,   12,   12,   15,   16,   12,
+       15,   12,   12,   12,   17,   12,   13,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12
+
+    },
+
+    {
+       11,   12,   13,   14,   13,   12,   12,   15,   16,   12,
+       15,   12,   12,   12,   17,   12,   13,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12
+    },
+
+    {
+       11,   18,   18,   18,   18,   18,   18,   18,   18,   19,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18
+
+    },
+
+    {
+       11,   18,   18,   18,   18,   18,   18,   18,   18,   19,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18
+    },
+
+    {
+       11,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   21,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20
+
+    },
+
+    {
+       11,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   21,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20
+    },
+
+    {
+       11,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   23,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22
+
+    },
+
+    {
+       11,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   23,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22
+    },
+
+    {
+       11,   24,   24,   24,   24,   24,   24,   24,   25,   24,
+       24,   24,   24,   24,   26,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24
+
+    },
+
+    {
+       11,   24,   24,   24,   24,   24,   24,   24,   25,   24,
+       24,   24,   24,   24,   26,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24
+    },
+
+    {
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11
+
+    },
+
+    {
+       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+       11,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+
+    },
+
+    {
+       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14
+    },
+
+    {
+       11,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+
+    },
+
+    {
+       11,  -16,  -16,  -16,  -16,  -16,   27,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,   28,   28,
+       28,   28,   28,   28,   28,   29,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       29,   28,   28,   28,   28,   28,   28,   28,   28,   28
+    },
+
+    {
+       11,  -17,  -17,  -17,  -17,   30,  -17,  -17,  -17,  -17,
+       31,  -17,  -17,  -17,  -17,  -17,  -17,   32,   33,   33,
+       33,   33,   33,   33,   33,   33,   34,   33,   33,   33,
+       33,   33,   35,   33,   33,   33,   33,   33,   33,   33,
+       33,   34,   33,   33,   33,   33,   33,   35,   33,   33
+
+    },
+
+    {
+       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18
+    },
+
+    {
+       11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,   36,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19
+
+    },
+
+    {
+       11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20
+    },
+
+    {
+       11,  -21,  -21,  -21,  -21,   37,  -21,  -21,  -21,  -21,
+       38,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21
+
+    },
+
+    {
+       11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22
+    },
+
+    {
+       11,  -23,  -23,  -23,  -23,   39,  -23,  -23,  -23,  -23,
+       40,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23
+
+    },
+
+    {
+       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24
+    },
+
+    {
+       11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,   41,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+       41,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25
+
+    },
+
+    {
+       11,  -26,  -26,  -26,  -26,   42,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26
+    },
+
+    {
+       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,   43,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,   44,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,   44
+
+    },
+
+    {
+       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,   45,  -28,  -28,  -28,  -28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28
+    },
+
+    {
+       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,   45,  -29,  -29,  -29,  -29,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   46,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   46,   28,   28
+
+    },
+
+    {
+       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   47,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48
+    },
+
+    {
+       11,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,   49,   49,
+       49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
+       49,   49,   50,   49,   49,   49,   49,   49,   49,   49,
+       49,   49,   49,   49,   49,   49,   49,   50,   49,   49
+
+    },
+
+    {
+       11,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   53,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       54,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   54,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,   55,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36
+    },
+
+    {
+       11,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,   56,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37
+
+    },
+
+    {
+       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,   57,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,   57,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38
+    },
+
+    {
+       11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,   58,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39
+
+    },
+
+    {
+       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,   59,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,   59,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40
+    },
+
+    {
+       11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,   60,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,   60,  -41,  -41
+
+    },
+
+    {
+       11,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,   61,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42
+    },
+
+    {
+       11,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,   62,  -43,   45,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43
+
+    },
+
+    {
+       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,   63,  -44,  -44,  -44,  -44,  -44,  -44,   63,   63,
+       63,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,   63,   63,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44
+    },
+
+    {
+       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45
+
+    },
+
+    {
+       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,   64,  -46,  -46,  -46,  -46,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28
+    },
+
+    {
+       11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,   65,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47
+
+    },
+
+    {
+       11,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   67,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66
+    },
+
+    {
+       11,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   69,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68
+
+    },
+
+    {
+       11,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   69,   68,   68,   68,
+       70,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   70,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   71,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   71,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   72,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   72
+    },
+
+    {
+       11,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55
+
+    },
+
+    {
+       11,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,   73,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56
+    },
+
+    {
+       11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,   74,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,   74,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57
+
+    },
+
+    {
+       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,   75,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58
+    },
+
+    {
+       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,   76,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,   76,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59
+
+    },
+
+    {
+       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,   77,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60
+    },
+
+    {
+       11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,   78,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61
+
+    },
+
+    {
+       11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,   79,  -62,   45,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62
+    },
+
+    {
+       11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,   80,  -63,   45,  -63,  -63,  -63,  -63,   80,   80,
+       80,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,   80,   80,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63
+
+    },
+
+    {
+       11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,   81,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,   81,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64
+    },
+
+    {
+       11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65
+
+    },
+
+    {
+       11,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   67,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66
+    },
+
+    {
+       11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67
+
+    },
+
+    {
+       11,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   69,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68
+    },
+
+    {
+       11,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69
+
+    },
+
+    {
+       11,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   69,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   82,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   82
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   83,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   83,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   84,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   84,   51,   51
+    },
+
+    {
+       11,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73
+
+    },
+
+    {
+       11,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,   85,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,   85,  -74,  -74
+    },
+
+    {
+       11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75
+
+    },
+
+    {
+       11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,   86,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,   86,  -76,  -76
+    },
+
+    {
+       11,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+       87,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77
+
+    },
+
+    {
+       11,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78
+    },
+
+    {
+       11,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,   88,  -79,   45,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79
+
+    },
+
+    {
+       11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,   89,  -80,   45,  -80,  -80,  -80,  -80,   89,   89,
+       89,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,   89,   89,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80
+    },
+
+    {
+       11,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,   90,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,   90,  -81,  -81,  -81,  -81,  -81
+
+    },
+
+    {
+       11,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   69,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   91,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   91,   68,   68
+    },
+
+    {
+       11,   51,   51,   51,   92,   51,   51,   51,   51,   51,
+       51,   51,   93,   51,   51,   51,   94,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   95,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+    },
+
+    {
+       11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,   96,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,   96,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85
+
+    },
+
+    {
+       11,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,   97,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,   97,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86
+    },
+
+    {
+       11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,   98,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,   98,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87
+
+    },
+
+    {
+       11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,   99,  -88,   45,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88
+    },
+
+    {
+       11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  100,  -89,   45,  -89,  -89,  -89,  -89,  100,  100,
+      100,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  100,  100,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89
+
+    },
+
+    {
+       11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      101,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  101,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90
+    },
+
+    {
+       11,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,  102,   68,   68,   68,   69,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,  103,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,  103
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104,  104
+
+    },
+
+    {
+       11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,  105,   51,   51,   51,   51,   51,   51,  105,
+       51,   51,   51,   51,   51,   51,   51,   51,  105,   51,
+       51,   51,   51,   51,  105,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  106,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96
+    },
+
+    {
+       11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  107,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97
+
+    },
+
+    {
+       11,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  108,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  108,  -98,  -98,  -98,  -98,  -98
+    },
+
+    {
+       11,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  109,  -99,   45,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99
+
+    },
+
+    {
+       11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100,   45, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100
+    },
+
+    {
+       11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+      110, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101,  110, -101, -101, -101, -101
+
+    },
+
+    {
+       11,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   69,   68,   68,   68,
+       68,   68,  111,   68,   68,   68,   68,   68,   68,  111,
+       68,   68,   68,   68,   68,   68,   68,   68,  111,   68,
+       68,   68,   68,   68,  111,   68,   68,   68,   68,   68
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,  112,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,  112,   51,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,  113,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,  114,   51,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
+      104,  104,  104,  104,  104,  104,  104,  104,  104,  104
+    },
+
+    {
+       11,   51,   51,   51,  115,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,  116,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117
+    },
+
+    {
+       11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107
+
+    },
+
+    {
+       11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+      118, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108,  118, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108
+    },
+
+    {
+       11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109,  119, -109,   45, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109
+
+    },
+
+    {
+       11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110,  120, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110,  120, -110, -110
+    },
+
+    {
+       11,   68,   68,   68,  121,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,  122,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
+       68,   68,   68,   68,   68,   68,   68,   68,   68,   68
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,  123,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+      123,   51,   51,   51,   51,   51,   51,   51,   51,   51
+    },
+
+    {
+       11,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  114,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124
+
+    },
+
+    {
+       11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114
+    },
+
+    {
+       11,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  116,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125
+
+    },
+
+    {
+       11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116
+    },
+
+    {
+       11, -117, -117, -117,  126, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117,  127, -117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117
+
+    },
+
+    {
+       11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+      128, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118,  128, -118, -118, -118, -118
+    },
+
+    {
+       11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119,  129, -119,   45, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119
+
+    },
+
+    {
+       11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120,  130, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120,  130,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120
+    },
+
+    {
+       11,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  122,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131
+
+    },
+
+    {
+       11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,  132,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,  132,   51,   51,   51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  114,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  124,  124,  124,  124,  124,  124
+    },
+
+    {
+       11,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  116,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125
+
+    },
+
+    {
+       11,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  127,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133
+    },
+
+    {
+       11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127
+
+    },
+
+    {
+       11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128,  134, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128,  134, -128, -128
+    },
+
+    {
+       11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129,   45, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129
+
+    },
+
+    {
+       11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130,  135, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130,  135, -130
+    },
+
+    {
+       11,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  122,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,  136,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,  136,   51,   51,   51
+    },
+
+    {
+       11,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  127,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133
+
+    },
+
+    {
+       11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134,  137, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134,  137,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134
+    },
+
+    {
+       11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135,  138, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135,  138, -135, -135, -135, -135, -135, -135, -135, -135
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,  139,   52,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51
+    },
+
+    {
+       11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137,  140, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137,  140, -137
+
+    },
+
+    {
+       11, -138, -138, -138, -138, -138, -138, -138, -138,  141,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138
+    },
+
+    {
+       11,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,   94,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142
+
+    },
+
+    {
+       11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140,  143, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140,  143, -140, -140, -140, -140, -140, -140, -140, -140
+    },
+
+    {
+       11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141,  144, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141,  144, -141, -141, -141, -141, -141, -141, -141
+
+    },
+
+    {
+       11,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,   94,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
+      142,  142,  142,  142,  142,  142,  142,  142,  142,  142
+    },
+
+    {
+       11, -143, -143, -143, -143, -143, -143, -143, -143,  145,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143
+
+    },
+
+    {
+       11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144,  146, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144,  146, -144, -144, -144, -144, -144, -144
+    },
+
+    {
+       11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145,  147, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145,  147, -145, -145, -145, -145, -145, -145, -145
+
+    },
+
+    {
+       11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146,  148, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146,  148, -146, -146
+    },
+
+    {
+       11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147,  149, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147,  149, -147, -147, -147, -147, -147, -147
+
+    },
+
+    {
+       11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+      150, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148,  150, -148, -148, -148, -148
+    },
+
+    {
+       11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149,  151, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149,  151, -149, -149
+
+    },
+
+    {
+       11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150,  152, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150,  152, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150
+    },
+
+    {
+       11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+      153, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151,  153, -151, -151, -151, -151
+
+    },
+
+    {
+       11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152,  154, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152,  154, -152, -152, -152, -152, -152, -152, -152
+    },
+
+    {
+       11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153,  155, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153,  155, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153
+
+    },
+
+    {
+       11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154,  156, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154,  156, -154, -154, -154
+    },
+
+    {
+       11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155,  157, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155,  157, -155, -155, -155, -155, -155, -155, -155
+
+    },
+
+    {
+       11, -156, -156, -156,  158, -156, -156, -156,  159, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156
+    },
+
+    {
+       11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157,  160, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157,  160, -157, -157, -157
+
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  162,  161,
+      161,  161,  161,  161,  161,  161, -158,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161
+    },
+
+    {
+       11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159,  163, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159,  163, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159
+
+    },
+
+    {
+       11, -160, -160, -160, -160, -160, -160, -160,  164, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  162,  161,
+      161,  161,  161,  161,  161,  161, -161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161
+
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  162,  161,
+      161,  161,  161,  161,  161,  161, -162,  161,  161,  161,
+      161,  165,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  165,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161
+    },
+
+    {
+       11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163,  166, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163,  166, -163, -163
+
+    },
+
+    {
+       11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164,  167, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164,  167, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  162,  161,
+      161,  161,  161,  161,  161,  161, -165,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  168,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  168,  161,  161
+
+    },
+
+    {
+       11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166,  169, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166
+    },
+
+    {
+       11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167,  170, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167,  170, -167, -167
+
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  162,  161,
+      161,  161,  161,  171,  161,  161, -168,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161
+    },
+
+    {
+       11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169
+
+    },
+
+    {
+       11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170,  172, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170
+    },
+
+    {
+       11,  161,  161,  161,  161,  161,  161,  161,  162,  161,
+      161,  161,  161,  161,  161,  161, -171,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
+      161,  161,  161,  161,  161,  161,  161,  161,  161,  161
+
+    },
+
+    {
+       11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 25
+#define YY_END_OF_BUFFER 26
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[173] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       26,   24,   22,   22,   23,   24,   22,    2,    2,    5,
+        5,    8,    8,   11,   11,   11,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   21,    0,    0,    0,    0,    0,
+        0,   19,    0,    0,    1,    0,    0,    0,    0,    0,
+        0,    0,    0,   21,   12,    0,   18,    0,   20,    0,
+        0,    0,    3,    0,    6,    0,    0,    9,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   14,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    7,    0,    0,    0,
+        0,    0,    0,   13,    0,   16,    0,    0,    0,    0,
+        0,   17,    0,    0,    0,    0,    4,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   15,    0,
+       15,   10
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    4,    5,    1,    6,    7,    1,    8,    1,    1,
+        1,    1,    1,    1,    9,    1,   10,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   12,   13,   14,
+       15,   16,   17,    7,   18,   19,   19,   19,   20,   19,
+       21,   22,   23,   24,   24,   25,   26,   27,   28,   29,
+       24,   30,   31,   32,   33,   24,   24,   34,   24,   24,
+        7,    7,    7,    7,    1,    1,   35,   19,   19,   19,
+
+       36,   19,   37,   38,   39,   24,   24,   40,   41,   42,
+       43,   44,   24,   45,   46,   47,   48,   24,   24,   49,
+       24,   24,    2,    1,    2,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_desodt.cctmp"
+#line 4 "apertium_desodt.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/$]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+map<string, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution["'"] = L"'";
+}
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 2184 "apertium_desodt.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+#define C4 4
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 272 "apertium_desodt.cctmp"
+
+
+
+#line 2393 "apertium_desodt.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 277 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 283 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 292 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 296 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 302 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 6:
+YY_RULE_SETUP
+#line 311 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 315 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 321 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 9:
+YY_RULE_SETUP
+#line 330 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 334 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 11:
+/* rule 11 can match eol */
+YY_RULE_SETUP
+#line 340 "apertium_desodt.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 12:
+YY_RULE_SETUP
+#line 346 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 13:
+/* rule 13 can match eol */
+YY_RULE_SETUP
+#line 350 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 14:
+/* rule 14 can match eol */
+YY_RULE_SETUP
+#line 354 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 15:
+/* rule 15 can match eol */
+YY_RULE_SETUP
+#line 358 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 16:
+/* rule 16 can match eol */
+YY_RULE_SETUP
+#line 362 "apertium_desodt.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 17:
+/* rule 17 can match eol */
+YY_RULE_SETUP
+#line 366 "apertium_desodt.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 18:
+/* rule 18 can match eol */
+YY_RULE_SETUP
+#line 370 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 19:
+/* rule 19 can match eol */
+YY_RULE_SETUP
+#line 373 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 376 "apertium_desodt.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 380 "apertium_desodt.cctmp"
+{
+  if(S1_substitution.find(yytext) != S1_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
+    offset+=S1_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 394 "apertium_desodt.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 402 "apertium_desodt.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 422 "apertium_desodt.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+case YY_STATE_EOF(C4):
+#line 447 "apertium_desodt.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 454 "apertium_desodt.cctmp"
+ECHO;
+	YY_BREAK
+#line 2719 "apertium_desodt.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 454 "apertium_desodt.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  S1_init();
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_despptx.cc b/apertium/apertium_despptx.cc
new file mode 100644
index 0000000..bee283c
--- /dev/null
+++ b/apertium/apertium_despptx.cc
@@ -0,0 +1,4143 @@
+#line 2 "apertium_despptx.cc"
+
+#line 4 "apertium_despptx.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][55] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0
+    },
+
+    {
+       11,   12,   13,   14,   13,   12,   12,   15,   16,   12,
+       15,   12,   12,   12,   17,   13,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12
+    },
+
+    {
+       11,   12,   13,   14,   13,   12,   12,   15,   16,   12,
+       15,   12,   12,   12,   17,   13,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
+       12,   12,   12,   12,   12
+    },
+
+    {
+       11,   18,   18,   18,   18,   18,   18,   18,   18,   19,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18
+    },
+
+    {
+       11,   18,   18,   18,   18,   18,   18,   18,   18,   19,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18
+
+    },
+
+    {
+       11,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   21,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20
+    },
+
+    {
+       11,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   21,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20
+    },
+
+    {
+       11,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   23,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22
+    },
+
+    {
+       11,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   23,   22,   22,   22,   22,   22,
+
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22
+    },
+
+    {
+       11,   24,   24,   24,   24,   24,   24,   24,   25,   24,
+       24,   24,   24,   24,   26,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24
+
+    },
+
+    {
+       11,   24,   24,   24,   24,   24,   24,   24,   25,   24,
+       24,   24,   24,   24,   26,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24
+    },
+
+    {
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11
+    },
+
+    {
+       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+       11,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14
+
+    },
+
+    {
+       11,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+       11,  -16,  -16,  -16,  -16,  -16,   27,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   29,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+
+       28,   28,   28,   28,   29,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28
+    },
+
+    {
+       11,  -17,  -17,  -17,  -17,   30,  -17,  -17,  -17,  -17,
+       31,  -17,  -17,  -17,  -17,  -17,   32,   33,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       35,   34,   34,   34,   34,   34,   34,   33,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   35,   34,
+       34,   34,   34,   34,   34
+    },
+
+    {
+       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18
+    },
+
+    {
+       11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,   36,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19
+
+    },
+
+    {
+       11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20
+    },
+
+    {
+       11,  -21,  -21,  -21,  -21,   37,  -21,  -21,  -21,  -21,
+       38,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21
+    },
+
+    {
+       11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22
+    },
+
+    {
+       11,  -23,  -23,  -23,  -23,   39,  -23,  -23,  -23,  -23,
+       40,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23
+    },
+
+    {
+       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24
+
+    },
+
+    {
+       11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,   41,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,   41,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25
+    },
+
+    {
+       11,  -26,  -26,  -26,  -26,   42,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26
+    },
+
+    {
+       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,   43,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,   44,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,   44,  -27
+    },
+
+    {
+       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,   45,  -28,  -28,  -28,   28,   28,   28,
+
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28
+    },
+
+    {
+       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,   45,  -29,  -29,  -29,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   46,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   46,   28,   28,   28
+
+    },
+
+    {
+       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,   47,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48
+    },
+
+    {
+       11,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,   49,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50,   50,   50,   49,   50,   50,
+
+       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
+       50,   50,   50,   50,   50
+    },
+
+    {
+       11,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
+       48,   48,   48,   48,   48
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   52,   51,   51,   53,   51,   51,   51,   51,
+
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   54,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   55,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   55,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,   56,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36
+    },
+
+    {
+       11,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,   57,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37
+    },
+
+    {
+       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+       58,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,   58,  -38,
+      -38,  -38,  -38,  -38,  -38
+    },
+
+    {
+       11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,   59,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39
+
+    },
+
+    {
+       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+       60,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,   60,  -40,
+      -40,  -40,  -40,  -40,  -40
+    },
+
+    {
+       11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,   61,  -41,  -41,  -41,  -41,  -41,  -41,
+
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,   61,  -41,  -41,  -41
+    },
+
+    {
+       11,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,   62,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42
+    },
+
+    {
+       11,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,   63,  -43,   45,  -43,  -43,  -43,  -43,  -43,  -43,
+
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43
+    },
+
+    {
+       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,   64,  -44,  -44,  -44,  -44,  -44,   64,   64,   64,
+       64,   64,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,   64,   64,   64,
+       64,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44
+
+    },
+
+    {
+       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45
+    },
+
+    {
+       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,   65,  -46,  -46,  -46,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28
+    },
+
+    {
+       11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,   66,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47
+    },
+
+    {
+       11,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   68,   67,   67,   67,   67,
+
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67
+    },
+
+    {
+       11,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   70,   69,   69,   71,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69
+
+    },
+
+    {
+       11,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   71,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       72,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   72,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   73,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   73,   51,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   74,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   74,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56
+    },
+
+    {
+       11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,   75,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57
+    },
+
+    {
+       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+
+      -58,  -58,  -58,  -58,  -58,   76,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,   76,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58
+    },
+
+    {
+       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,   77,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59
+
+    },
+
+    {
+       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,   78,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60
+    },
+
+    {
+       11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,   79,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61
+    },
+
+    {
+       11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,   80,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62
+    },
+
+    {
+       11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,   81,  -63,   45,  -63,  -63,  -63,  -63,  -63,  -63,
+
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63
+    },
+
+    {
+       11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,   82,  -64,   45,  -64,  -64,  -64,   82,   82,   82,
+       82,   82,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,   82,   82,   82,
+       82,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64
+
+    },
+
+    {
+       11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,   83,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,   83,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65
+    },
+
+    {
+       11,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66
+    },
+
+    {
+       11,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   68,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
+       67,   67,   67,   67,   67
+    },
+
+    {
+       11,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68
+    },
+
+    {
+       11,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   71,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69
+
+    },
+
+    {
+       11,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   71,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       84,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   84,   69,
+       69,   69,   69,   69,   69
+    },
+
+    {
+       11,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71
+    },
+
+    {
+       11,   51,   51,   51,   85,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   86,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+
+       51,   51,   51,   51,   87,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   87,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   88,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75
+    },
+
+    {
+       11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,   89,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+
+      -76,   89,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76
+    },
+
+    {
+       11,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77
+    },
+
+    {
+       11,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,   90,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,   90,  -78,  -78,  -78
+    },
+
+    {
+       11,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+       91,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79
+
+    },
+
+    {
+       11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80
+    },
+
+    {
+       11,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,   92,  -81,   45,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81
+    },
+
+    {
+       11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,   93,  -82,   45,  -82,  -82,  -82,   93,   93,   93,
+       93,   93,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,   93,   93,   93,
+       93,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82
+    },
+
+    {
+       11,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+       94,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,   94,  -83,
+      -83,  -83,  -83,  -83,  -83
+    },
+
+    {
+       11,   69,   69,   69,   95,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   96,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69
+
+    },
+
+    {
+       11,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   86,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97
+    },
+
+    {
+       11,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   98,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   98,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   99,   51,
+
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   99,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  100,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89
+
+    },
+
+    {
+       11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  101,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  101,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90
+    },
+
+    {
+       11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  102,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  102,  -91,  -91,
+
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91
+    },
+
+    {
+       11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  103,  -92,   45,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92
+    },
+
+    {
+       11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  104,  -93,   45,  -93,  -93,  -93,  104,  104,  104,
+
+      104,  104,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  104,  104,  104,
+      104,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93
+    },
+
+    {
+       11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  105,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      105,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94
+
+    },
+
+    {
+       11,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,   96,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106
+    },
+
+    {
+       11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96
+    },
+
+    {
+       11,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   86,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+
+       51,   51,   51,   51,  107,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,  107,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,  108,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,  108,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+
+    },
+
+    {
+       11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100,  109, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100,  109, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100
+    },
+
+    {
+       11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101,  110, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+
+     -101, -101, -101, -101, -101,  110, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101
+    },
+
+    {
+       11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+      111, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102,  111, -102,
+     -102, -102, -102, -102, -102
+    },
+
+    {
+       11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103,  112, -103,   45, -103, -103, -103, -103, -103, -103,
+
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103
+    },
+
+    {
+       11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104,   45, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104
+
+    },
+
+    {
+       11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105,  113, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105,  113,
+     -105, -105, -105, -105, -105
+    },
+
+    {
+       11,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,   96,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,  114,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,  114,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+
+       51,   51,   51,   51,   51,   51,   51,   51,  115,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,  115,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109,  116, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109,  116, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109
+
+    },
+
+    {
+       11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110,  117, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110,  117, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110
+    },
+
+    {
+       11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111,  118, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
+      118, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111
+    },
+
+    {
+       11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112,  119, -112,   45, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112
+    },
+
+    {
+       11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113,  120, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113,  120, -113, -113, -113
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,  121,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,  121,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,  122,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,  122,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116,  123, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+
+     -116, -116, -116, -116, -116, -116,  123, -116, -116, -116,
+     -116, -116, -116, -116, -116
+    },
+
+    {
+       11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117,  124, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117,  124, -117, -117, -117,
+     -117, -117, -117, -117, -117
+    },
+
+    {
+       11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118,  125, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118,  125,
+     -118, -118, -118, -118, -118
+    },
+
+    {
+       11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119,  126, -119,   45, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119
+
+    },
+
+    {
+       11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120,  127, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120,  127, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120
+    },
+
+    {
+       11,   51,   51,   51,  128,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,  129,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,  130,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,  130,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123,  131, -123, -123,
+
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123,  131, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123
+    },
+
+    {
+       11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124,  132, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124,  132, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124
+
+    },
+
+    {
+       11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125,  133, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125,  133, -125, -125, -125
+    },
+
+    {
+       11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126,   45, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126
+    },
+
+    {
+       11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127,  134, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127,  134, -127, -127
+    },
+
+    {
+       11,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  129,  135,  135,  135,  135,
+
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135
+    },
+
+    {
+       11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129
+
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,  136,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,  136
+    },
+
+    {
+       11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131,  137, -131, -131, -131, -131, -131, -131, -131, -131,
+
+     -131, -131, -131, -131, -131, -131, -131, -131, -131,  137,
+     -131, -131, -131, -131, -131
+    },
+
+    {
+       11, -132, -132, -132,  138, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132,  139, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132
+    },
+
+    {
+       11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+
+     -133, -133, -133, -133,  140, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133,  140, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133
+    },
+
+    {
+       11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134,  141, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134,  141, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134
+
+    },
+
+    {
+       11,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  129,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+      142,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,  142,
+
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137,  143, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137,  143
+    },
+
+    {
+       11,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  139,  144,  144,  144,  144,
+
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144
+    },
+
+    {
+       11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139
+
+    },
+
+    {
+       11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140,  145, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140,  145, -140, -140
+    },
+
+    {
+       11, -141, -141, -141, -141, -141, -141, -141, -141,  146,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,  147,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,  147,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+
+      148, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143,  148,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143
+    },
+
+    {
+       11,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  139,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144
+
+    },
+
+    {
+       11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145,  149, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145,  149, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145
+    },
+
+    {
+       11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146,  150, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+
+     -146, -146, -146, -146, -146, -146,  150, -146, -146, -146,
+     -146, -146, -146, -146, -146
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,  151,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,  151,   51,   51,   51
+    },
+
+    {
+       11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148,  152, -148, -148,
+
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148,  152, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148
+    },
+
+    {
+       11, -149, -149, -149, -149, -149, -149, -149, -149,  153,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149
+
+    },
+
+    {
+       11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150,  154,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150,  154, -150, -150,
+     -150, -150, -150, -150, -150
+    },
+
+    {
+       11,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   53,   51,  155,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,  155,   51,   51,
+
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152,  156, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152,  156, -152, -152, -152
+    },
+
+    {
+       11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+
+     -153, -153, -153, -153, -153, -153, -153, -153,  157, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153,  157, -153, -153, -153,
+     -153, -153, -153, -153, -153
+    },
+
+    {
+       11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154,  158, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154,  158, -154, -154, -154
+
+    },
+
+    {
+       11,   51,   51,   51,  159,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,  160,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
+       51,   51,   51,   51,   51
+    },
+
+    {
+       11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156,  161, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156,  161, -156, -156,
+
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156
+    },
+
+    {
+       11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157,  162,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157,  162, -157, -157,
+     -157, -157, -157, -157, -157
+    },
+
+    {
+       11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158,  163, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158,  163,
+     -158, -158, -158, -158, -158
+    },
+
+    {
+       11,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  160,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164
+
+    },
+
+    {
+       11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160
+    },
+
+    {
+       11, -161, -161, -161,  165, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161,  166, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161
+    },
+
+    {
+       11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162,  167, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162,  167, -162, -162, -162
+    },
+
+    {
+       11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163,  168, -163, -163,
+
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163,  168, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163
+    },
+
+    {
+       11,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  160,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      164,  164,  164,  164,  164
+
+    },
+
+    {
+       11,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  166,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169
+    },
+
+    {
+       11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166
+    },
+
+    {
+       11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167,  170, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167,  170,
+     -167, -167, -167, -167, -167
+    },
+
+    {
+       11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+
+     -168, -168, -168, -168, -168, -168, -168, -168,  171, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168,  171, -168, -168, -168,
+     -168, -168, -168, -168, -168
+    },
+
+    {
+       11,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  166,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169
+
+    },
+
+    {
+       11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170,  172, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170,  172, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170
+    },
+
+    {
+       11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171,  173, -171, -171, -171, -171, -171, -171, -171,
+
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+      173, -171, -171, -171, -171
+    },
+
+    {
+       11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172,  174, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172,  174, -172, -172, -172,
+     -172, -172, -172, -172, -172
+    },
+
+    {
+       11, -173, -173, -173,  175, -173, -173, -173,  176, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173
+    },
+
+    {
+       11, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174,  177, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+      177, -174, -174, -174, -174
+
+    },
+
+    {
+       11,  178,  178,  178,  178,  178,  178,  178,  179,  178,
+      178,  178,  178,  178,  178, -175,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178
+    },
+
+    {
+       11, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176,  180, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+
+     -176,  180, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176
+    },
+
+    {
+       11, -177, -177, -177, -177, -177, -177, -177,  181, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177
+    },
+
+    {
+       11,  178,  178,  178,  178,  178,  178,  178,  179,  178,
+      178,  178,  178,  178,  178, -178,  178,  178,  178,  178,
+
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178
+    },
+
+    {
+       11,  178,  178,  178,  178,  178,  178,  178,  179,  178,
+      178,  178,  178,  178,  178, -179,  178,  178,  178,  178,
+      178,  178,  182,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  182,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178
+
+    },
+
+    {
+       11, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180,  183, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180,  183, -180, -180, -180
+    },
+
+    {
+       11, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181,  184, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+
+     -181,  184, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181
+    },
+
+    {
+       11,  178,  178,  178,  178,  178,  178,  178,  179,  178,
+      178,  178,  178,  178,  178, -182,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  185,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  185,  178,  178,  178
+    },
+
+    {
+       11, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183,  186, -183, -183, -183, -183, -183, -183,
+
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183
+    },
+
+    {
+       11, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184,  187, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184,  187, -184, -184, -184
+
+    },
+
+    {
+       11,  178,  178,  178,  178,  178,  178,  178,  179,  178,
+      178,  178,  178,  188,  178, -185,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178
+    },
+
+    {
+       11, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186
+    },
+
+    {
+       11, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187,  189, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187
+    },
+
+    {
+       11,  178,  178,  178,  178,  178,  178,  178,  179,  178,
+      178,  178,  178,  178,  178, -188,  178,  178,  178,  178,
+
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
+      178,  178,  178,  178,  178
+    },
+
+    {
+       11, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189
+
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 25
+#define YY_END_OF_BUFFER 26
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[190] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       26,   24,   22,   22,   23,   24,   22,    2,    2,    5,
+        5,    8,    8,   11,   11,   11,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   21,    0,    0,    0,    0,    0,
+        0,    0,   19,    0,    0,    1,    0,    0,    0,    0,
+        0,    0,    0,    0,   21,   12,    0,   18,    0,    0,
+       20,    0,    0,    0,    3,    0,    6,    0,    0,    9,
+        0,    0,    0,    0,    0,   15,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   16,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   14,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    7,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   13,
+        0,    0,    0,    0,    0,    4,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   17,    0,   17,   10
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    4,    5,    1,    6,    7,    1,    8,    1,    1,
+        1,    1,    1,    1,    9,    1,   10,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   12,   13,   14,
+        1,   15,   16,    7,   17,   18,   19,   20,   21,   19,
+       22,   23,   24,   23,   25,   26,   27,   28,   29,   30,
+       23,   31,   32,   33,   34,   23,   23,   35,   36,   23,
+        7,    7,    7,    7,    1,    1,   37,   38,   19,   39,
+
+       40,   19,   41,   23,   42,   23,   43,   44,   45,   46,
+       47,   48,   23,   49,   50,   51,   52,   23,   23,   53,
+       54,   23,    2,    1,    2,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_despptx.cctmp"
+#line 4 "apertium_despptx.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/$]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+map<string, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution["'"] = L"'";
+}
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 2539 "apertium_despptx.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+#define C4 4
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 272 "apertium_despptx.cctmp"
+
+
+
+#line 2748 "apertium_despptx.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 277 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 283 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 292 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 296 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 302 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 6:
+YY_RULE_SETUP
+#line 311 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 7:
+/* rule 7 can match eol */
+YY_RULE_SETUP
+#line 315 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 321 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 9:
+YY_RULE_SETUP
+#line 330 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 334 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 11:
+/* rule 11 can match eol */
+YY_RULE_SETUP
+#line 340 "apertium_despptx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 12:
+YY_RULE_SETUP
+#line 346 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 13:
+/* rule 13 can match eol */
+YY_RULE_SETUP
+#line 350 "apertium_despptx.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 14:
+/* rule 14 can match eol */
+YY_RULE_SETUP
+#line 355 "apertium_despptx.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 15:
+/* rule 15 can match eol */
+YY_RULE_SETUP
+#line 360 "apertium_despptx.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 16:
+/* rule 16 can match eol */
+YY_RULE_SETUP
+#line 364 "apertium_despptx.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 17:
+/* rule 17 can match eol */
+YY_RULE_SETUP
+#line 368 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 18:
+/* rule 18 can match eol */
+YY_RULE_SETUP
+#line 372 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 19:
+/* rule 19 can match eol */
+YY_RULE_SETUP
+#line 375 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 378 "apertium_despptx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 382 "apertium_despptx.cctmp"
+{
+  if(S1_substitution.find(yytext) != S1_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
+    offset+=S1_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 396 "apertium_despptx.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 404 "apertium_despptx.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 424 "apertium_despptx.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+case YY_STATE_EOF(C4):
+#line 449 "apertium_despptx.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 456 "apertium_despptx.cctmp"
+ECHO;
+	YY_BREAK
+#line 3077 "apertium_despptx.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 456 "apertium_despptx.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  S1_init();
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_desrtf.cc b/apertium/apertium_desrtf.cc
new file mode 100644
index 0000000..5952b1e
--- /dev/null
+++ b/apertium/apertium_desrtf.cc
@@ -0,0 +1,11681 @@
+#line 2 "apertium_desrtf.cc"
+
+#line 4 "apertium_desrtf.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][63] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0
+    },
+
+    {
+       69,   70,   71,   72,   71,   71,   73,   70,   71,   74,
+       75,   70,   75,   75,   75,   75,   75,   75,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+
+       70,   70,   70,   70,   70,   70,   76,   75,   75,   75,
+       75,   75,   75,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   77,   78
+    },
+
+    {
+       69,   70,   71,   72,   71,   71,   73,   70,   71,   74,
+       75,   70,   75,   75,   75,   75,   75,   75,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   76,   75,   75,   75,
+       75,   75,   75,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+
+       70,   77,   78
+    },
+
+    {
+       69,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   80,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79
+    },
+
+    {
+       69,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   80,   79,   79,   79,   79,   79,   79,   79,   79,
+
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
+       79,   79,   79
+    },
+
+    {
+       69,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   82,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81
+    },
+
+    {
+       69,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   82,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
+       81,   81,   81
+    },
+
+    {
+       69,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+
+       83,   84,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83
+    },
+
+    {
+       69,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   84,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83
+    },
+
+    {
+       69,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   86,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85
+
+    },
+
+    {
+       69,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   86,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85
+    },
+
+    {
+       69,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   88,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87
+    },
+
+    {
+       69,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   88,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+
+       87,   87,   87
+    },
+
+    {
+       69,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   90,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89
+    },
+
+    {
+       69,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   90,   89,   89,   89,   89,   89,   89,   89,   89,
+
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89
+    },
+
+    {
+       69,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   92,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91
+    },
+
+    {
+       69,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   92,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
+       91,   91,   91
+    },
+
+    {
+       69,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+
+       93,   94,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93
+    },
+
+    {
+       69,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   94,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   93
+    },
+
+    {
+       69,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   96,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95
+
+    },
+
+    {
+       69,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   96,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
+       95,   95,   95
+    },
+
+    {
+       69,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   98,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97
+    },
+
+    {
+       69,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   98,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
+
+       97,   97,   97
+    },
+
+    {
+       69,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,  100,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99
+    },
+
+    {
+       69,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,  100,   99,   99,   99,   99,   99,   99,   99,   99,
+
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+       99,   99,   99
+    },
+
+    {
+       69,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  102,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101
+    },
+
+    {
+       69,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  102,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
+      101,  101,  101
+    },
+
+    {
+       69,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+
+      103,  104,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103
+    },
+
+    {
+       69,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  104,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103
+    },
+
+    {
+       69,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  106,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105
+
+    },
+
+    {
+       69,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  106,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105
+    },
+
+    {
+       69,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  108,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107
+    },
+
+    {
+       69,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  108,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+
+      107,  107,  107
+    },
+
+    {
+       69,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  110,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109
+    },
+
+    {
+       69,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  110,  109,  109,  109,  109,  109,  109,  109,  109,
+
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
+      109,  109,  109
+    },
+
+    {
+       69,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  112
+    },
+
+    {
+       69,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
+      111,  111,  112
+    },
+
+    {
+       69,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+
+      113,  114,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113
+    },
+
+    {
+       69,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  114,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
+      113,  113,  113
+    },
+
+    {
+       69,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  116,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115
+
+    },
+
+    {
+       69,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  116,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
+      115,  115,  115
+    },
+
+    {
+       69,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  118,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117
+    },
+
+    {
+       69,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  118,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
+
+      117,  117,  117
+    },
+
+    {
+       69,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  120
+    },
+
+    {
+       69,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
+      119,  119,  120
+    },
+
+    {
+       69,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  122
+    },
+
+    {
+       69,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  122
+    },
+
+    {
+       69,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  124
+    },
+
+    {
+       69,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
+      123,  123,  124
+    },
+
+    {
+       69,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  126
+
+    },
+
+    {
+       69,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
+      125,  125,  126
+    },
+
+    {
+       69,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  128
+    },
+
+    {
+       69,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+
+      127,  127,  128
+    },
+
+    {
+       69,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  130
+    },
+
+    {
+       69,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  130
+    },
+
+    {
+       69,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  132
+    },
+
+    {
+       69,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  132
+    },
+
+    {
+       69,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  134
+    },
+
+    {
+       69,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
+      133,  133,  134
+    },
+
+    {
+       69,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  136
+
+    },
+
+    {
+       69,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
+      135,  135,  136
+    },
+
+    {
+       69,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  138
+    },
+
+    {
+       69,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
+
+      137,  137,  138
+    },
+
+    {
+       69,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  140
+    },
+
+    {
+       69,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  140
+    },
+
+    {
+       69,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  142
+    },
+
+    {
+       69,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
+      141,  141,  142
+    },
+
+    {
+       69,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  144
+    },
+
+    {
+       69,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
+      143,  143,  144
+    },
+
+    {
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69
+
+    },
+
+    {
+       69,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70
+    },
+
+    {
+       69,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71
+    },
+
+    {
+       69,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+
+      -72,  -72,  -72
+    },
+
+    {
+       69,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73
+    },
+
+    {
+       69,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74
+    },
+
+    {
+       69,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      145,  -75,  145,  145,  145,  145,  145,  145,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  145,  145,  145,
+      145,  145,  145,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75
+    },
+
+    {
+       69,  146,  146,  146,  146,  146,  146,  147,  146,  146,
+      146,  146,  146,  146,  148,  146,  146,  146,  146,  146,
+      146,  146,  146,  146,  146,  146,  149,  146,  150,  146,
+      146,  146,  146,  146,  146,  146,  146,  146,  146,  148,
+      146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
+      146,  149,  146,  150,  146,  146,  146,  146,  146,  146,
+      146,  146,  146
+    },
+
+    {
+       69,  -77,  -77,  151,  151,  151,  -77,  -77,  -77,  -77,
+
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  152,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  153,  -77
+    },
+
+    {
+       69,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78
+    },
+
+    {
+       69,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79
+
+    },
+
+    {
+       69,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80
+    },
+
+    {
+       69,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81
+    },
+
+    {
+       69,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+
+      -82,  -82,  -82
+    },
+
+    {
+       69,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83
+    },
+
+    {
+       69,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84
+    },
+
+    {
+       69,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85
+    },
+
+    {
+       69,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86
+    },
+
+    {
+       69,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87
+    },
+
+    {
+       69,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88
+    },
+
+    {
+       69,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89
+
+    },
+
+    {
+       69,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90
+    },
+
+    {
+       69,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91
+    },
+
+    {
+       69,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+
+      -92,  -92,  -92
+    },
+
+    {
+       69,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93
+    },
+
+    {
+       69,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94
+    },
+
+    {
+       69,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95
+    },
+
+    {
+       69,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96
+    },
+
+    {
+       69,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97
+    },
+
+    {
+       69,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98
+    },
+
+    {
+       69,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99
+
+    },
+
+    {
+       69, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100
+    },
+
+    {
+       69, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101
+    },
+
+    {
+       69, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+
+     -102, -102, -102
+    },
+
+    {
+       69, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103
+    },
+
+    {
+       69, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104
+    },
+
+    {
+       69, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105
+    },
+
+    {
+       69, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106
+    },
+
+    {
+       69, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107
+    },
+
+    {
+       69, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108
+    },
+
+    {
+       69, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109
+
+    },
+
+    {
+       69, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110
+    },
+
+    {
+       69, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111
+    },
+
+    {
+       69, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+
+     -112, -112, -112
+    },
+
+    {
+       69, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113
+    },
+
+    {
+       69, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114
+    },
+
+    {
+       69, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115
+    },
+
+    {
+       69, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116
+    },
+
+    {
+       69, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117
+    },
+
+    {
+       69, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118
+    },
+
+    {
+       69, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119
+
+    },
+
+    {
+       69, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120
+    },
+
+    {
+       69, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121
+    },
+
+    {
+       69, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+
+     -122, -122, -122
+    },
+
+    {
+       69, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123
+    },
+
+    {
+       69, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124
+    },
+
+    {
+       69, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125
+    },
+
+    {
+       69, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126
+    },
+
+    {
+       69, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127
+    },
+
+    {
+       69, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128
+    },
+
+    {
+       69, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129
+
+    },
+
+    {
+       69, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130
+    },
+
+    {
+       69, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131
+    },
+
+    {
+       69, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+
+     -132, -132, -132
+    },
+
+    {
+       69, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133
+    },
+
+    {
+       69, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134
+    },
+
+    {
+       69, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135
+    },
+
+    {
+       69, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136
+    },
+
+    {
+       69, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137
+    },
+
+    {
+       69, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138
+    },
+
+    {
+       69, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139
+
+    },
+
+    {
+       69, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140
+    },
+
+    {
+       69, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141
+    },
+
+    {
+       69, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+
+     -142, -142, -142
+    },
+
+    {
+       69, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143
+    },
+
+    {
+       69, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144
+    },
+
+    {
+       69, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+      154, -145,  154,  154,  154,  154,  154,  154, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145,  154,  154,  154,
+      154,  154,  154, -145, -145, -145, -145, -145, -145, -145,
+
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -146,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+    },
+
+    {
+       69, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+
+      157, -147,  157,  157,  157,  157,  157,  157, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147,  157,  157,  157,
+      157,  157,  157, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  158,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -148,  155,  155,  155,
+
+      155,  158,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  159,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -149,  159,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+
+    },
+
+    {
+       69,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  161,  160,  162,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
+      161,  160,  162,  160,  160,  160,  160,  160,  160,  160,
+      160,  160,  160
+    },
+
+    {
+       69, -151, -151,  151,  151,  151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+
+     -151, -151, -151, -151, -151, -151,  152, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151,  153, -151
+    },
+
+    {
+       69,  163,  163,  163,  163,  163,  163, -152,  163,  163,
+      163,  163,  164,  165,  166,  167,  163,  168,  163,  163,
+      163,  169,  170,  163,  163,  171,  172,  163,  173,  174,
+      163,  163,  163,  163,  163,  163,  163,  164,  165,  166,
+      167,  163,  168,  163,  163,  163,  169,  170,  163,  163,
+      171,  172,  163,  173,  174,  163,  163,  163,  163,  163,
+
+      163,  163,  163
+    },
+
+    {
+       69, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153,  175, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153
+    },
+
+    {
+       69, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+      176, -154,  176,  176,  176,  176,  176,  176, -154, -154,
+
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154,  176,  176,  176,
+      176,  176,  176, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+    },
+
+    {
+       69, -156, -156,  156,  156,  156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156
+    },
+
+    {
+       69, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+
+      177, -157,  177,  177,  177,  177,  177,  177, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157,  177,  177,  177,
+      177,  177,  177, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  178,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -158,  155,  155,  155,
+
+      155,  155,  155,  155,  155,  155,  155,  178,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  179,  155,
+      155,  155,  155,  155,  155,  155, -159,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  179,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+
+    },
+
+    {
+       69,  180,  180,  181,  181,  181,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180, -160,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180
+    },
+
+    {
+       69,  180,  180,  181,  181,  181,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+
+      180,  180,  180,  182,  180,  180, -161,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  182,  180,
+      180,  180,  180
+    },
+
+    {
+       69,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  184,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
+      183,  183,  183,  183,  183,  183,  184,  183,  183,  183,
+
+      183,  183,  183
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  189,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      189,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  190,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  190,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  191,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      191,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  192,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      192,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  193,  194,  195,  196,  185,  185,  185,  197,
+      185,  185,  198,  199,  200,  201,  185,  185,  202,  203,
+      204,  185,  185,  185,  185,  185,  187,  193,  194,  195,
+
+      196,  185,  185,  185,  197,  185,  185,  198,  199,  200,
+      201,  185,  185,  202,  203,  204,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  205,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  205,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  206,  185,  185,  207,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  206,  185,  185,  207,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  208,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  208,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  209,
+      185,  185,  185,  185,  210,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  209,  185,  185,  185,  185,  210,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  211,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  211,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  212,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  213,  185,  185,  185,  185,  185,
+      185,  185,  214,  185,  185,  185,  187,  185,  212,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  213,
+      185,  185,  185,  185,  185,  185,  185,  214,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -175, -175, -175, -175, -175, -175, -175,  215, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175
+    },
+
+    {
+       69, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+      216, -176,  216,  216,  216,  216,  216,  216, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176,  216,  216,  216,
+      216,  216,  216, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176
+    },
+
+    {
+       69, -177, -177,  217,  218, -177, -177, -177, -177, -177,
+
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  219,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -178,  155,  155,  155,
+
+      155,  155,  155,  155,  155,  155,  155,  219,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -179,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+
+    },
+
+    {
+       69,  180,  180,  181,  181,  181,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180, -180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180
+    },
+
+    {
+       69, -181, -181,  181,  181,  181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181
+    },
+
+    {
+       69,  180,  180,  181,  181,  181,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180, -182,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+
+      180,  180,  180
+    },
+
+    {
+       69,  220,  220,  221,  221,  221,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220, -183,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220
+    },
+
+    {
+       69,  222,  222,  222,  222,  222,  222,  222,  222,  222,
+      222,  222,  222,  222,  222,  222,  222,  222,  222,  222,
+
+      222,  222,  222,  222,  222,  223,  222,  222,  222,  222,
+      222,  222,  222,  222,  222,  222,  222,  222,  222,  222,
+      222,  222,  222,  222,  222,  222,  222,  222,  222,  222,
+      223,  222,  222,  222,  222,  222,  222,  222,  222,  222,
+      222,  222,  222
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -186, -186,  186,  186,  186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186,  187, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186,  153, -186
+    },
+
+    {
+       69,  224,  224,  224,  224,  224,  224, -187,  224,  224,
+
+      224,  224,  225,  226,  227,  228,  224,  229,  224,  224,
+      224,  230,  231,  224,  224,  232,  233,  224,  234,  235,
+      224,  224,  224,  224,  224,  224,  224,  225,  226,  227,
+      228,  224,  229,  224,  224,  224,  230,  231,  224,  224,
+      232,  233,  224,  234,  235,  224,  224,  224,  224,  224,
+      224,  224,  224
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  236,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  237,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      237,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  238,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  238,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  239,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  239,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  240,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  240,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  241,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  241,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  242,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  242,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  243,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  243,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  244,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  244,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  245,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  245,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  246,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      246,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  247,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      247,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  248,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  248,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  249,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  249,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  250,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      250,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  251,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  252,  185,  185,  187,  185,  185,  251,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  252,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  253,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  253,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  254,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      254,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  255,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  255,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  256,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  256,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      257,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  257,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  258,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  258,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      259,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  259,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  260,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  260,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  261,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  261,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  262,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  262,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215,  263, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215
+    },
+
+    {
+       69, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+      264, -216,  264,  264,  264,  264,  264,  264, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216,  264,  264,  264,
+      264,  264,  264, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216
+    },
+
+    {
+       69, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217
+    },
+
+    {
+       69, -218, -218,  217, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218
+    },
+
+    {
+       69,  155,  155,  156,  156,  156,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155, -219,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
+      155,  155,  155
+
+    },
+
+    {
+       69,  220,  220,  221,  221,  221,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220, -220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
+      220,  220,  220
+    },
+
+    {
+       69, -221, -221,  221,  221,  221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221
+    },
+
+    {
+       69,  265,  265,  266,  266,  266,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265, -222,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+
+      265,  265,  265
+    },
+
+    {
+       69,  267,  267,  267,  267,  267,  267,  267,  267,  267,
+      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
+      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
+      268,  267,  267,  267,  267,  267,  267,  267,  267,  267,
+      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
+      267,  267,  267,  267,  267,  268,  267,  267,  267,  267,
+      267,  267,  267
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  272,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      272,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  273,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  273,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  274,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      274,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  275,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      275,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  276,  277,  278,  279,  269,  269,  269,  280,
+      269,  269,  281,  282,  283,  284,  269,  269,  285,  286,
+      287,  269,  269,  269,  269,  269,  187,  276,  277,  278,
+      279,  269,  269,  269,  280,  269,  269,  281,  282,  283,
+      284,  269,  269,  285,  286,  287,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  288,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  288,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  289,  269,  269,  290,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  289,  269,  269,  290,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  291,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  291,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  292,
+      269,  269,  269,  269,  293,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  292,  269,  269,  269,  269,  293,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  294,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  294,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  295,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  296,  269,  269,  269,  269,  269,
+      269,  269,  297,  269,  269,  269,  187,  269,  295,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  296,
+
+      269,  269,  269,  269,  269,  269,  269,  297,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  224,  224,  224,  224,  224,  224, -236,  298,  224,
+      224,  224,  225,  226,  227,  228,  224,  229,  224,  224,
+      224,  230,  231,  224,  224,  232,  233,  224,  234,  235,
+      224,  224,  224,  224,  224,  224,  224,  225,  226,  227,
+      228,  224,  229,  224,  224,  224,  230,  231,  224,  224,
+      232,  233,  224,  234,  235,  224,  224,  224,  224,  224,
+      224,  224,  224
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  299,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  299,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  300,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  300,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  301,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      301,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  302,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  302,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      303,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  303,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  304,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      304,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  305,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  305,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  306,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  306,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  307,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  307,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  308,
+      185,  185,  185,  185,  185,  185,  185,  185,  309,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  308,  185,  185,  185,  185,  185,
+      185,  185,  185,  309,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  310,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      310,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  311,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  311,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      312,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  312,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  313,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  313,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  314,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  314,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  315,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  315,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  316,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  316,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  317,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  317,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  318,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  318,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      319,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  319,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  320,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  320,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      321,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  321,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  322,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  322,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  323,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  323,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  324,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  324,
+
+      185,  188,  185
+    },
+
+    {
+       69, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263,  325, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263,  325, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263
+    },
+
+    {
+       69, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+      326, -264,  326,  326,  326,  326,  326,  326, -264, -264,
+
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264,  326,  326,  326,
+      326,  326,  326, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264
+    },
+
+    {
+       69,  265,  265,  266,  266,  266,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265, -265,  265,  265,  265,
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+
+      265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
+      265,  265,  265
+    },
+
+    {
+       69, -266, -266,  266,  266,  266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266, -266, -266, -266, -266, -266, -266, -266,
+     -266, -266, -266
+    },
+
+    {
+       69,  327,  327,  328,  328,  328,  327,  327,  327,  327,
+
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327,  327,  327,  327, -267,  327,  327,  327,
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327
+    },
+
+    {
+       69,  329,  329,  329,  329,  329,  329,  329,  329,  329,
+      329,  329,  329,  329,  329,  329,  330,  329,  329,  329,
+      329,  329,  329,  329,  329,  329,  329,  329,  329,  329,
+      329,  329,  329,  329,  329,  329,  329,  329,  329,  329,
+
+      329,  330,  329,  329,  329,  329,  329,  329,  329,  329,
+      329,  329,  329,  329,  329,  329,  329,  329,  329,  329,
+      329,  329,  329
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69, -270, -270,  270,  270,  270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270,  187, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270, -270, -270, -270, -270, -270, -270, -270, -270, -270,
+     -270,  153, -270
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  236,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  331,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      331,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  332,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  332,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  333,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  333,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  334,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  334,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  335,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  335,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  336,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  336,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  337,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  337,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  338,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  338,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  339,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  339,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  340,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      340,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  341,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      341,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  342,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  342,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  343,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  343,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  344,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      344,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  345,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  346,  269,  269,  187,  269,  269,  345,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  346,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  347,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  347,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  348,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      348,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  349,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  349,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  350,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  350,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      351,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  351,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  352,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  352,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      353,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  353,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  354,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  354,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  355,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  355,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  356,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  356,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  357,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      358,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  358,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  359,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  360,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  359,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  360,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  361,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  361,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  362,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  362,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  363,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  363,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  364,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  364,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  365,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      365,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  366,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  366,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  367,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  367,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  368,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  368,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  369,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  369,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  370,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  370,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  371,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  371,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  372,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  372,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  373,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  373,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  374,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      374,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  375,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  375,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  376,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  376,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  377,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  377,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      378,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  378,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  379,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  379,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      380,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  380,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325,  381, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325,  381, -325, -325,
+
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325
+    },
+
+    {
+       69, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+      382, -326,  382,  382,  382,  382,  382,  382, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326,  382,  382,  382,
+      382,  382,  382, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326
+    },
+
+    {
+       69,  327,  327,  328,  328,  328,  327,  327,  327,  327,
+
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327,  327,  327,  327, -327,  327,  327,  327,
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327,  327,  327,  327,  327,  327,  327,  327,
+      327,  327,  327
+    },
+
+    {
+       69, -328, -328,  328,  328,  328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328, -328, -328, -328, -328, -328, -328, -328,
+     -328, -328, -328
+    },
+
+    {
+       69,  383,  383,  384,  384,  384,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383, -329,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383
+
+    },
+
+    {
+       69,  385,  385, -330, -330,  386,  385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385, -330,  385,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+      385,  385,  385
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  387,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  387,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  388,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  388,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  389,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      389,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  390,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  390,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      391,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  391,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  392,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      392,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  393,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  393,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  394,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  394,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  395,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  395,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  396,
+      269,  269,  269,  269,  269,  269,  269,  269,  397,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  396,  269,  269,  269,  269,  269,
+      269,  269,  269,  397,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  398,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      398,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  399,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  399,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      400,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  400,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  401,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  401,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  402,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  402,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  403,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  403,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  404,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  404,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  405,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  405,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  406,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  406,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      407,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  407,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  408,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  408,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      409,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  409,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  410,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  410,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  411,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  411,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  412,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  412,
+      269,  271,  269
+    },
+
+    {
+       69,  224,  224,  224,  224,  224,  224, -357,  224,  224,
+
+      224,  224,  225,  413,  227,  228,  224,  229,  224,  224,
+      224,  230,  231,  224,  224,  232,  233,  224,  234,  235,
+      224,  224,  224,  224,  224,  224,  224,  225,  413,  227,
+      228,  224,  229,  224,  224,  224,  230,  231,  224,  224,
+      232,  233,  224,  234,  235,  224,  224,  224,  224,  224,
+      224,  224,  224
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  414,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  414,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  415,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  415,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      416,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  416,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      417,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  417,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  418,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  418,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  419,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  419,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  420,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  420,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  421,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  421,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  422,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  422,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  423,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  423,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  424,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  424,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  425,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  425,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  426,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  426,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  427,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  427,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  428,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      428,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  429,  185,  185,  185,  185,  185,
+      430,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  429,
+
+      185,  185,  185,  185,  185,  430,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  431,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  431,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      432,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  432,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  433,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      433,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381,  434,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381,  434, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381
+    },
+
+    {
+       69, -382, -382, -382, -382, -382, -382, -382, -382, -382,
+      435, -382,  435,  435,  435,  435,  435,  435, -382, -382,
+     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
+     -382, -382, -382, -382, -382, -382, -382,  435,  435,  435,
+      435,  435,  435, -382, -382, -382, -382, -382, -382, -382,
+     -382, -382, -382, -382, -382, -382, -382, -382, -382, -382,
+
+     -382, -382, -382
+    },
+
+    {
+       69,  383,  383,  384,  384,  384,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383, -383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383,  383,  383,  383,  383,  383,  383,  383,
+      383,  383,  383
+    },
+
+    {
+       69, -384, -384,  384,  384,  384, -384, -384, -384, -384,
+     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
+
+     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
+     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
+     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
+     -384, -384, -384, -384, -384, -384, -384, -384, -384, -384,
+     -384, -384, -384
+    },
+
+    {
+       69,  385,  385,  436,  436,  436,  385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385, -385,  385,  385,  385,
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+
+      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
+      385,  385,  385
+    },
+
+    {
+       69, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386, -386, -386, -386, -386, -386, -386, -386,
+     -386, -386, -386
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      437,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  437,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  438,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  439,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  438,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  439,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  440,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  440,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  441,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  441,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  442,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  442,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  443,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  443,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  444,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      444,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  445,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  445,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  446,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  446,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  447,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  447,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  448,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  448,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  449,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  449,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  450,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  450,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  451,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  451,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  452,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  452,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  453,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      453,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  454,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  454,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  455,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  455,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  456,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  456,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      457,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  457,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  458,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  458,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      459,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  459,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  273,  460,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  273,  460,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  461,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  461,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  462,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      462,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  463,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  463,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  464,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  464,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  465,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  465,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      466,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  466,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      467,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  467,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  468,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  468,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  469,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  469,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      470,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  470,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  471,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  471,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  472,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  472,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  473,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  473,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  474,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  474,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  475,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      475,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+
+     -434, -434, -434, -434, -434, -434,  476, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434,  476, -434, -434, -434, -434, -434, -434, -434, -434,
+     -434, -434, -434
+    },
+
+    {
+       69, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+      477, -435,  477,  477,  477,  477,  477,  477, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435, -435, -435, -435, -435,  477,  477,  477,
+      477,  477,  477, -435, -435, -435, -435, -435, -435, -435,
+
+     -435, -435, -435, -435, -435, -435, -435, -435, -435, -435,
+     -435, -435, -435
+    },
+
+    {
+       69, -436, -436,  436,  436,  436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436, -436, -436, -436, -436, -436, -436, -436,
+     -436, -436, -436
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  478,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  478,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  479,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  479,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      480,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  480,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      481,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  481,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  482,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  482,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  483,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  483,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  484,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  484,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  485,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  485,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  486,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  486,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  487,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  487,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  488,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  488,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  489,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  489,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  490,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  490,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  491,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  491,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  492,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      492,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  493,  269,  269,  269,  269,  269,
+      494,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  493,
+      269,  269,  269,  269,  269,  494,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  495,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  495,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      496,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  496,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  497,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      497,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  498,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  498,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  499,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  499,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  500,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  500,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  501,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  501,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      502,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  502,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  503,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  503,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  504,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  504,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  505,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  505,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  506,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  506,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  507,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  507,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476,  508, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476, -476, -476, -476, -476,
+     -476, -476, -476, -476, -476, -476,  508, -476, -476, -476,
+     -476, -476, -476
+    },
+
+    {
+       69, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+
+      509, -477,  509,  509,  509,  509,  509,  509, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477,  509,  509,  509,
+      509,  509,  509, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477, -477, -477, -477, -477, -477, -477, -477,
+     -477, -477, -477
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  510,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  510,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  511,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      511,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  512,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  512,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  513,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  513,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  514,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  514,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      515,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  515,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      516,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  516,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  517,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  517,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  518,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  518,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      519,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  519,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  520,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  520,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  521,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  521,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  522,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  522,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  523,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  523,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  524,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      524,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  525,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  525,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      526,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  526,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  527,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  527,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      528,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  528,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508,  529,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+
+     -508, -508, -508, -508,  529, -508, -508, -508, -508, -508,
+     -508, -508, -508, -508, -508, -508, -508, -508, -508, -508,
+     -508, -508, -508
+    },
+
+    {
+       69, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+      530, -509,  530,  530,  530,  530,  530,  530, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509,  530,  530,  530,
+      530,  530,  530, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509, -509, -509, -509, -509, -509, -509, -509,
+     -509, -509, -509
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  531,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  531,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  532,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  532,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  533,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  533,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      534,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  534,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  535,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  535,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  536,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  536,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  537,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  537,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  538,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  538,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  539,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  539,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  540,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  540,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  541,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  541,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529,  542, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+      542, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529, -529, -529, -529, -529, -529, -529, -529,
+     -529, -529, -529
+
+    },
+
+    {
+       69, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+      543, -530,  543,  543,  543,  543,  543,  543, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530,  543,  543,  543,
+      543,  543,  543, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530, -530, -530, -530, -530, -530, -530, -530,
+     -530, -530, -530
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      544,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  544,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  545,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  545,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      546,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  546,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  547,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  547,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  548,  185,
+
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  548,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -542, -542, -542, -542,  549, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+     -542, -542, -542, -542, -542, -542, -542, -542, -542, -542,
+
+     -542, -542, -542
+    },
+
+    {
+       69, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+      550, -543,  550,  550,  550,  550,  550,  550, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543,  550,  550,  550,
+      550,  550,  550, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543, -543, -543, -543, -543, -543, -543, -543,
+     -543, -543, -543
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  551,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  551,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+
+      269,  269,  269,  269,  269,  552,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      552,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  553,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  553,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69, -549, -549, -549, -549,  554, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549, -549, -549, -549, -549, -549, -549, -549,
+     -549, -549, -549
+
+    },
+
+    {
+       69, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+      555, -550,  555,  555,  555,  555,  555,  555, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550,  555,  555,  555,
+      555,  555,  555, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550, -550, -550, -550, -550, -550, -550, -550,
+     -550, -550, -550
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  556,  269,
+
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  556,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  269,  269,  270,  270,  557,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+
+      269,  271,  269
+    },
+
+    {
+       69,  185,  185,  186,  186,  186,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  187,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  188,  185
+    },
+
+    {
+       69,  558,  558, -554, -554, -554,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558
+    },
+
+    {
+       69, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+      559, -555,  559,  559,  559,  559,  559,  559, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555, -555, -555, -555, -555,  559,  559,  559,
+      559,  559,  559, -555, -555, -555, -555, -555, -555, -555,
+
+     -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
+     -555, -555, -555
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  560,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  560,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69, -557, -557,  270,  270,  561, -557, -557, -557, -557,
+
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557,  187, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557, -557, -557, -557, -557, -557, -557, -557, -557, -557,
+     -557,  153, -557
+    },
+
+    {
+       69,  558,  558, -558, -558, -558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+      563, -559,  563,  563,  563,  563,  563,  563, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559,  563,  563,  563,
+      563,  563,  563, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559, -559, -559, -559, -559, -559, -559, -559,
+     -559, -559, -559
+
+    },
+
+    {
+       69,  269,  269,  270,  270,  270,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  187,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
+      269,  271,  269
+    },
+
+    {
+       69,  558,  558,  270,  270,  270,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+
+      558,  558,  558,  558,  558,  558,  564,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  565,  558
+    },
+
+    {
+       69,  558,  558, -562, -562, -562,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+
+      558,  558,  562
+    },
+
+    {
+       69, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+      566, -563,  566,  566,  566,  566,  566,  566, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563,  566,  566,  566,
+      566,  566,  566, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563, -563, -563, -563, -563, -563, -563, -563,
+     -563, -563, -563
+    },
+
+    {
+       69,  567,  567,  224,  224,  224,  567,  558,  567,  567,
+      567,  567,  568,  569,  570,  571,  567,  572,  567,  567,
+
+      567,  573,  574,  567,  567,  575,  576,  567,  577,  578,
+      567,  567,  567,  567,  567,  567,  567,  568,  569,  570,
+      571,  567,  572,  567,  567,  567,  573,  574,  567,  567,
+      575,  576,  567,  577,  578,  567,  567,  567,  567,  567,
+      567,  567,  579
+    },
+
+    {
+       69,  558,  558, -565, -565, -565,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  580,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+      581, -566,  581,  581,  581,  581,  581,  581, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566,  581,  581,  581,
+      581,  581,  581, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566, -566, -566, -566, -566, -566, -566, -566,
+     -566, -566, -566
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  585,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      585,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  586,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  586,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  587,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      587,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  588,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      588,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  589,  590,  591,  592,  582,  582,  582,  593,
+      582,  582,  594,  595,  596,  597,  582,  582,  598,  599,
+      600,  582,  582,  582,  582,  582,  564,  589,  590,  591,
+      592,  582,  582,  582,  593,  582,  582,  594,  595,  596,
+      597,  582,  582,  598,  599,  600,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  601,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  601,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  602,  582,  582,  603,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  602,  582,  582,  603,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  604,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  604,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  605,
+      582,  582,  582,  582,  606,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  605,  582,  582,  582,  582,  606,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  607,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  607,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  608,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  609,  582,  582,  582,  582,  582,
+      582,  582,  610,  582,  582,  582,  564,  582,  608,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  609,
+      582,  582,  582,  582,  582,  582,  582,  610,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  558,  558, -580, -580, -580,  558,  558,  611,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+      612, -581,  612,  612,  612,  612,  612,  612, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+
+     -581, -581, -581, -581, -581, -581, -581,  612,  612,  612,
+      612,  612,  612, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581, -581, -581, -581, -581, -581, -581, -581,
+     -581, -581, -581
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  613,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  614,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      614,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  615,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  615,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  616,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  616,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  617,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  617,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  618,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  618,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  619,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  619,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  620,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  620,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  621,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  621,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  622,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  622,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  623,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      623,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  624,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      624,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  625,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  625,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  626,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  626,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  627,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      627,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  628,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  629,  582,  582,  564,  582,  582,  628,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  629,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  630,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  630,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  631,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      631,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  632,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  632,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  633,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  633,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      634,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  634,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  635,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  635,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      636,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  636,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  637,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  637,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  638,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  638,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  639,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  639,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -611, -611, -611,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+
+      558,  558,  558,  558,  558,  558,  640,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+      641, -612,  641,  641,  641,  641,  641,  641, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612,  641,  641,  641,
+      641,  641,  641, -612, -612, -612, -612, -612, -612, -612,
+     -612, -612, -612, -612, -612, -612, -612, -612, -612, -612,
+
+     -612, -612, -612
+    },
+
+    {
+       69,  567,  567,  224,  224,  224,  567,  558,  642,  567,
+      567,  567,  568,  569,  570,  571,  567,  572,  567,  567,
+      567,  573,  574,  567,  567,  575,  576,  567,  577,  578,
+      567,  567,  567,  567,  567,  567,  567,  568,  569,  570,
+      571,  567,  572,  567,  567,  567,  573,  574,  567,  567,
+      575,  576,  567,  577,  578,  567,  567,  567,  567,  567,
+      567,  567,  579
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  643,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  643,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  644,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  644,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  645,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      645,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  646,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  646,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      647,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  647,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  648,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      648,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  649,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  649,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  650,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  650,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  651,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  651,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  652,
+      582,  582,  582,  582,  582,  582,  582,  582,  653,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  652,  582,  582,  582,  582,  582,
+      582,  582,  582,  653,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  654,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      654,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  655,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  655,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      656,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  656,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  657,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  657,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  658,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  658,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  659,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  659,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  660,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  660,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  661,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  661,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  662,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  662,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      663,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  663,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  664,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  664,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      665,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  665,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  666,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  666,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  667,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  667,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  668,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  668,
+      582,  583,  584
+
+    },
+
+    {
+       69,  558,  558, -640, -640, -640,  558,  558,  558,  558,
+      558,  558,  558,  669,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  669,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+      641, -641,  641,  641,  641,  641,  641,  641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+
+     -641, -641, -641, -641, -641, -641, -641,  641,  641,  641,
+      641,  641,  641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641, -641, -641, -641, -641, -641, -641, -641,
+     -641, -641, -641
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  670,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      671,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  671,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  672,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  673,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  672,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  673,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  674,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  674,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  675,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  675,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  676,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  676,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  677,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  677,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  678,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      678,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  679,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  679,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  680,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  680,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  681,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  681,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  682,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  682,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  683,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  683,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  684,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  684,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  685,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  685,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  686,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  686,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  687,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      687,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  688,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  688,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  689,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  689,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  690,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  690,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      691,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  691,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  692,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  692,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      693,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  693,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -669, -669, -669,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  694,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  694,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+
+    },
+
+    {
+       69,  567,  567,  224,  224,  224,  567,  558,  567,  567,
+      567,  567,  568,  695,  570,  571,  567,  572,  567,  567,
+      567,  573,  574,  567,  567,  575,  576,  567,  577,  578,
+      567,  567,  567,  567,  567,  567,  567,  568,  695,  570,
+      571,  567,  572,  567,  567,  567,  573,  574,  567,  567,
+      575,  576,  567,  577,  578,  567,  567,  567,  567,  567,
+      567,  567,  579
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  696,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  696,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  697,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  697,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      698,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  698,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      699,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  699,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  700,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  700,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  701,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  701,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  702,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  702,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  703,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  703,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  704,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  704,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  705,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  705,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  706,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  706,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  707,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  707,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  708,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  708,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  709,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  709,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  710,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      710,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  711,  582,  582,  582,  582,  582,
+      712,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  711,
+      582,  582,  582,  582,  582,  712,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  713,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  713,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      714,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  714,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  715,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      715,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -694, -694, -694,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  716,
+
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  716,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  586,  717,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  586,  717,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  718,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  718,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  719,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      719,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  720,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  720,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  721,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  721,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  722,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  722,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      723,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  723,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      724,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  724,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  725,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  725,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  726,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  726,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      727,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  727,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  728,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  728,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  729,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  729,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  730,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  730,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  731,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  731,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  732,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      732,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -716, -716, -716,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  733,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  733,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  734,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  734,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  735,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  735,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  736,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  736,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  737,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  737,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      738,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  738,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  739,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  739,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  740,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  740,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  741,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  741,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  742,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  742,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  743,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  743,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -733, -733, -733,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  744,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  744,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  745,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  745,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      746,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  746,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  747,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  747,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      748,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  748,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -744, -744, -744,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  749,
+
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  749,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  750,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  750,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  751,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  751,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -749, -749, -749,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  752,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      752,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  562
+
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  753,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  753,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  754,  582,
+
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  754,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  558,  558, -752, -752,  549,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
+
+      558,  558,  562
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  755,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      755,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  756,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  756,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  557,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    {
+       69,  582,  582,  270,  270,  270,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  564,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  582,  582,  582,  582,  582,  582,  582,  582,  582,
+      582,  583,  584
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 117
+#define YY_END_OF_BUFFER 118
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[757] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  118,  116,
+      114,  114,  114,  115,  116,  115,  111,  110,    2,    1,
+        4,    3,    6,    5,    8,    7,   10,    9,   12,   11,
+       14,   13,   16,   15,   18,   17,   20,   19,   22,   21,
+
+       24,   23,   26,   25,   28,   27,   30,   29,   32,   31,
+       34,   33,   36,   35,   38,   37,   40,   39,   42,   41,
+       44,   43,   46,   45,   48,   47,   50,   49,   52,   51,
+       54,   53,   56,   55,   58,   57,   60,   59,   62,   61,
+       64,   63,   66,   65,    0,  103,    0,  103,  103,    0,
+        0,    0,    0,    0,  103,  103,    0,  103,  103,  104,
+      104,    0,  102,  102,  102,  102,  102,  102,  102,  102,
+      102,  102,  102,  102,    0,    0,  113,  103,  101,  104,
+      104,  101,  105,    0,  102,  102,    0,  102,  102,  102,
+      102,  102,  102,  102,  102,  102,  102,  102,  102,   80,
+
+      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+      102,  102,   88,   89,    0,    0,  113,  113,  101,  105,
+      105,  106,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  102,  102,  102,  102,
+      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+      102,  102,  102,  102,  102,  102,  102,  102,  102,   95,
+      102,  102,    0,    0,  106,  106,  107,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   80,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   88,   89,    0,  102,  102,
+
+      102,  102,   78,  102,  102,  102,   83,  102,  102,  102,
+       70,  102,  102,  102,  102,  102,  102,  102,  102,  102,
+       87,  102,  102,  102,    0,    0,  107,  107,  108,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   95,    0,    0,    0,  102,  102,  102,
+      102,  102,   77,  102,  102,  102,  102,  102,  102,  102,
+      102,  102,   76,  102,  102,  102,  102,   98,  102,   67,
+        0,    0,  108,  108,  109,  112,    0,    0,    0,    0,
+       78,    0,    0,    0,   83,    0,    0,    0,   70,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,   87,    0,
+        0,    0,    0,  102,  102,  102,  102,   92,  102,   75,
+      102,  102,  102,  102,   71,  102,   72,  102,  102,  102,
+      102,   91,  102,    0,    0,  109,    0,    0,    0,    0,
+        0,   77,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   76,    0,    0,    0,    0,   98,    0,   67,    0,
+      102,   94,  102,  102,  102,   96,   97,   73,  102,   74,
+       68,  102,  102,  102,  102,    0,    0,    0,    0,    0,
+        0,   92,    0,   75,    0,    0,    0,    0,   71,    0,
+       72,    0,    0,    0,    0,   91,    0,    0,   82,  102,
+
+       99,   69,   79,  102,  102,   84,   81,    0,    0,    0,
+       94,    0,    0,    0,   96,   97,   73,    0,   74,   68,
+        0,    0,    0,    0,    0,   93,  102,   85,    0,    0,
+       82,    0,   99,   69,   79,    0,    0,   84,   81,    0,
+      102,    0,    0,   93,    0,   85,    0,  102,    0,    0,
+        0,    0,   86,    0,    0,    0,    0,    0,    0,   86,
+        0,   90,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   90,    0,
+        0,    0,    0,   90,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   80,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,   88,   89,
+        0,  100,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   95,    0,    0,    0,
+      100,    0,    0,    0,    0,    0,   78,    0,    0,    0,
+       83,    0,    0,    0,   70,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   87,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   77,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   76,    0,    0,    0,    0,
+       98,    0,   67,    0,    0,    0,    0,    0,    0,   92,
+
+        0,   75,    0,    0,    0,    0,   71,    0,   72,    0,
+        0,    0,    0,   91,    0,    0,    0,    0,   94,    0,
+        0,    0,   96,   97,   73,    0,   74,   68,    0,    0,
+        0,    0,    0,    0,   82,    0,   99,   69,   79,    0,
+        0,   84,   81,    0,    0,   93,    0,   85,    0,    0,
+        0,    0,    0,    0,    0,   86
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    5,    1,    1,    1,    6,    1,    1,    7,    1,
+        1,    8,    1,    1,    1,    1,    9,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,    1,   11,    9,
+        1,    9,    1,    9,   12,   13,   14,   15,   16,   17,
+        1,   18,   19,   20,   21,   22,   23,   24,   25,   26,
+       27,   28,   29,   30,   31,   32,   33,   34,   35,    1,
+        9,   36,    9,    9,    1,    1,   37,   38,   39,   40,
+
+       41,   42,    1,   43,   44,   45,   46,   47,   48,   49,
+       50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
+       60,    1,   61,    1,   62,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_desrtf.cctmp"
+#line 4 "apertium_desrtf.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "(\\\\|[][<>@^$/{}])", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "''", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+map<string, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution["\\rquote "] = L"'";
+  S1_substitution["'"] = L"'";
+}
+map<string, wstring, Ltstr> S2_substitution;
+
+void S2_init()
+{
+  S2_substitution["\\'c0"] = L"À";
+  S2_substitution["\\'c1"] = L"Á";
+  S2_substitution["\\'c2"] = L"Â";
+  S2_substitution["\\'c3"] = L"Ã";
+  S2_substitution["\\'c4"] = L"Ä";
+  S2_substitution["\\'c5"] = L"Å";
+  S2_substitution["\\'c6"] = L"Æ";
+  S2_substitution["\\'c7"] = L"Ç";
+  S2_substitution["\\'c8"] = L"È";
+  S2_substitution["\\'c9"] = L"É";
+  S2_substitution["\\'ca"] = L"Ê";
+  S2_substitution["\\'cb"] = L"Ë";
+  S2_substitution["\\'cc"] = L"Ì";
+  S2_substitution["\\'cd"] = L"Í";
+  S2_substitution["\\'ce"] = L"Î";
+  S2_substitution["\\'cf"] = L"Ï";
+  S2_substitution["\\'d0"] = L"Ð";
+  S2_substitution["\\'d1"] = L"Ñ";
+  S2_substitution["\\'d2"] = L"Ò";
+  S2_substitution["\\'d3"] = L"Ó";
+  S2_substitution["\\'d4"] = L"Ô";
+  S2_substitution["\\'d5"] = L"Õ";
+  S2_substitution["\\'d6"] = L"Ö";
+  S2_substitution["\\'d8"] = L"Ø";
+  S2_substitution["\\'d9"] = L"Ù";
+  S2_substitution["\\'da"] = L"Ú";
+  S2_substitution["\\'db"] = L"Û";
+  S2_substitution["\\'dc"] = L"Ü";
+  S2_substitution["\\'dd"] = L"Ý";
+  S2_substitution["\\'de"] = L"Þ";
+  S2_substitution["\\'df"] = L"ß";
+  S2_substitution["\\'e0"] = L"à";
+  S2_substitution["\\'e1"] = L"á";
+  S2_substitution["\\'e2"] = L"â";
+  S2_substitution["\\'e3"] = L"ã";
+  S2_substitution["\\'e4"] = L"ä";
+  S2_substitution["\\'e5"] = L"å";
+  S2_substitution["\\'e6"] = L"æ";
+  S2_substitution["\\'e7"] = L"ç";
+  S2_substitution["\\'e8"] = L"è";
+  S2_substitution["\\'e9"] = L"é";
+  S2_substitution["\\'ea"] = L"ê";
+  S2_substitution["\\'eb"] = L"ë";
+  S2_substitution["\\'ec"] = L"ì";
+  S2_substitution["\\'ed"] = L"í";
+  S2_substitution["\\'ee"] = L"î";
+  S2_substitution["\\'ef"] = L"ï";
+  S2_substitution["\\'f0"] = L"ð";
+  S2_substitution["\\'f1"] = L"ñ";
+  S2_substitution["\\'f2"] = L"ò";
+  S2_substitution["\\'f3"] = L"ó";
+  S2_substitution["\\'f4"] = L"ô";
+  S2_substitution["\\'f5"] = L"õ";
+  S2_substitution["\\'f6"] = L"ö";
+  S2_substitution["\\'f8"] = L"ø";
+  S2_substitution["\\'f9"] = L"ù";
+  S2_substitution["\\'fa"] = L"ú";
+  S2_substitution["\\'fb"] = L"û";
+  S2_substitution["\\'fc"] = L"ü";
+  S2_substitution["\\'fd"] = L"ý";
+  S2_substitution["\\'fe"] = L"þ";
+  S2_substitution["\\'ff"] = L"ÿ";
+  S2_substitution["\\'c0\r\n"] = L"À";
+  S2_substitution["\\'c1\r\n"] = L"Á";
+  S2_substitution["\\'c2\r\n"] = L"Â";
+  S2_substitution["\\'c3\r\n"] = L"Ã";
+  S2_substitution["\\'c4\r\n"] = L"Ä";
+  S2_substitution["\\'c5\r\n"] = L"Å";
+  S2_substitution["\\'c6\r\n"] = L"Æ";
+  S2_substitution["\\'c7\r\n"] = L"Ç";
+  S2_substitution["\\'c8\r\n"] = L"È";
+  S2_substitution["\\'c9\r\n"] = L"É";
+  S2_substitution["\\'ca\r\n"] = L"Ê";
+  S2_substitution["\\'cb\r\n"] = L"Ë";
+  S2_substitution["\\'cc\r\n"] = L"Ì";
+  S2_substitution["\\'cd\r\n"] = L"Í";
+  S2_substitution["\\'ce\r\n"] = L"Î";
+  S2_substitution["\\'cf\r\n"] = L"Ï";
+  S2_substitution["\\'d0\r\n"] = L"Ð";
+  S2_substitution["\\'d1\r\n"] = L"Ñ";
+  S2_substitution["\\'d2\r\n"] = L"Ò";
+  S2_substitution["\\'d3\r\n"] = L"Ó";
+  S2_substitution["\\'d4\r\n"] = L"Ô";
+  S2_substitution["\\'d5\r\n"] = L"Õ";
+  S2_substitution["\\'d6\r\n"] = L"Ö";
+  S2_substitution["\\'d8\r\n"] = L"Ø";
+  S2_substitution["\\'d9\r\n"] = L"Ù";
+  S2_substitution["\\'da\r\n"] = L"Ú";
+  S2_substitution["\\'db\r\n"] = L"Û";
+  S2_substitution["\\'dc\r\n"] = L"Ü";
+  S2_substitution["\\'dd\r\n"] = L"Ý";
+  S2_substitution["\\'de\r\n"] = L"Þ";
+  S2_substitution["\\'df\r\n"] = L"ß";
+  S2_substitution["\\'e0\r\n"] = L"à";
+  S2_substitution["\\'e1\r\n"] = L"á";
+  S2_substitution["\\'e2\r\n"] = L"â";
+  S2_substitution["\\'e3\r\n"] = L"ã";
+  S2_substitution["\\'e4\r\n"] = L"ä";
+  S2_substitution["\\'e5\r\n"] = L"å";
+  S2_substitution["\\'e6\r\n"] = L"æ";
+  S2_substitution["\\'e7\r\n"] = L"ç";
+  S2_substitution["\\'e8\r\n"] = L"è";
+  S2_substitution["\\'e9\r\n"] = L"é";
+  S2_substitution["\\'ea\r\n"] = L"ê";
+  S2_substitution["\\'eb\r\n"] = L"ë";
+  S2_substitution["\\'ec\r\n"] = L"ì";
+  S2_substitution["\\'ed\r\n"] = L"í";
+  S2_substitution["\\'ee\r\n"] = L"î";
+  S2_substitution["\\'ef\r\n"] = L"ï";
+  S2_substitution["\\'f0\r\n"] = L"ð";
+  S2_substitution["\\'f1\r\n"] = L"ñ";
+  S2_substitution["\\'f2\r\n"] = L"ò";
+  S2_substitution["\\'f3\r\n"] = L"ó";
+  S2_substitution["\\'f4\r\n"] = L"ô";
+  S2_substitution["\\'f5\r\n"] = L"õ";
+  S2_substitution["\\'f6\r\n"] = L"ö";
+  S2_substitution["\\'f8\r\n"] = L"ø";
+  S2_substitution["\\'f9\r\n"] = L"ù";
+  S2_substitution["\\'fa\r\n"] = L"ú";
+  S2_substitution["\\'fb\r\n"] = L"û";
+  S2_substitution["\\'fc\r\n"] = L"ü";
+  S2_substitution["\\'fd\r\n"] = L"ý";
+  S2_substitution["\\'fe\r\n"] = L"þ";
+  S2_substitution["\\'ff\r\n"] = L"ÿ";
+  S2_substitution["\\'c0\n"] = L"À";
+  S2_substitution["\\'c1\n"] = L"Á";
+  S2_substitution["\\'c2\n"] = L"Â";
+  S2_substitution["\\'c3\n"] = L"Ã";
+  S2_substitution["\\'c4\n"] = L"Ä";
+  S2_substitution["\\'c5\n"] = L"Å";
+  S2_substitution["\\'c6\n"] = L"Æ";
+  S2_substitution["\\'c7\n"] = L"Ç";
+  S2_substitution["\\'c8\n"] = L"È";
+  S2_substitution["\\'c9\n"] = L"É";
+  S2_substitution["\\'ca\n"] = L"Ê";
+  S2_substitution["\\'cb\n"] = L"Ë";
+  S2_substitution["\\'cc\n"] = L"Ì";
+  S2_substitution["\\'cd\n"] = L"Í";
+  S2_substitution["\\'ce\n"] = L"Î";
+  S2_substitution["\\'cf\n"] = L"Ï";
+  S2_substitution["\\'d0\n"] = L"Ð";
+  S2_substitution["\\'d1\n"] = L"Ñ";
+  S2_substitution["\\'d2\n"] = L"Ò";
+  S2_substitution["\\'d3\n"] = L"Ó";
+  S2_substitution["\\'d4\n"] = L"Ô";
+  S2_substitution["\\'d5\n"] = L"Õ";
+  S2_substitution["\\'d6\n"] = L"Ö";
+  S2_substitution["\\'d8\n"] = L"Ø";
+  S2_substitution["\\'d9\n"] = L"Ù";
+  S2_substitution["\\'da\n"] = L"Ú";
+  S2_substitution["\\'db\n"] = L"Û";
+  S2_substitution["\\'dc\n"] = L"Ü";
+  S2_substitution["\\'dd\n"] = L"Ý";
+  S2_substitution["\\'de\n"] = L"Þ";
+  S2_substitution["\\'df\n"] = L"ß";
+  S2_substitution["\\'e0\n"] = L"à";
+  S2_substitution["\\'e1\n"] = L"á";
+  S2_substitution["\\'e2\n"] = L"â";
+  S2_substitution["\\'e3\n"] = L"ã";
+  S2_substitution["\\'e4\n"] = L"ä";
+  S2_substitution["\\'e5\n"] = L"å";
+  S2_substitution["\\'e6\n"] = L"æ";
+  S2_substitution["\\'e7\n"] = L"ç";
+  S2_substitution["\\'e8\n"] = L"è";
+  S2_substitution["\\'e9\n"] = L"é";
+  S2_substitution["\\'ea\n"] = L"ê";
+  S2_substitution["\\'eb\n"] = L"ë";
+  S2_substitution["\\'ec\n"] = L"ì";
+  S2_substitution["\\'ed\n"] = L"í";
+  S2_substitution["\\'ee\n"] = L"î";
+  S2_substitution["\\'ef\n"] = L"ï";
+  S2_substitution["\\'f0\n"] = L"ð";
+  S2_substitution["\\'f1\n"] = L"ñ";
+  S2_substitution["\\'f2\n"] = L"ò";
+  S2_substitution["\\'f3\n"] = L"ó";
+  S2_substitution["\\'f4\n"] = L"ô";
+  S2_substitution["\\'f5\n"] = L"õ";
+  S2_substitution["\\'f6\n"] = L"ö";
+  S2_substitution["\\'f8\n"] = L"ø";
+  S2_substitution["\\'f9\n"] = L"ù";
+  S2_substitution["\\'fa\n"] = L"ú";
+  S2_substitution["\\'fb\n"] = L"û";
+  S2_substitution["\\'fc\n"] = L"ü";
+  S2_substitution["\\'fd\n"] = L"ý";
+  S2_substitution["\\'fe\n"] = L"þ";
+  S2_substitution["\\'ff\n"] = L"ÿ";
+  S2_substitution["\\'c0\r"] = L"À";
+  S2_substitution["\\'c1\r"] = L"Á";
+  S2_substitution["\\'c2\r"] = L"Â";
+  S2_substitution["\\'c3\r"] = L"Ã";
+  S2_substitution["\\'c4\r"] = L"Ä";
+  S2_substitution["\\'c5\r"] = L"Å";
+  S2_substitution["\\'c6\r"] = L"Æ";
+  S2_substitution["\\'c7\r"] = L"Ç";
+  S2_substitution["\\'c8\r"] = L"È";
+  S2_substitution["\\'c9\r"] = L"É";
+  S2_substitution["\\'ca\r"] = L"Ê";
+  S2_substitution["\\'cb\r"] = L"Ë";
+  S2_substitution["\\'cc\r"] = L"Ì";
+  S2_substitution["\\'cd\r"] = L"Í";
+  S2_substitution["\\'ce\r"] = L"Î";
+  S2_substitution["\\'cf\r"] = L"Ï";
+  S2_substitution["\\'d0\r"] = L"Ð";
+  S2_substitution["\\'d1\r"] = L"Ñ";
+  S2_substitution["\\'d2\r"] = L"Ò";
+  S2_substitution["\\'d3\r"] = L"Ó";
+  S2_substitution["\\'d4\r"] = L"Ô";
+  S2_substitution["\\'d5\r"] = L"Õ";
+  S2_substitution["\\'d6\r"] = L"Ö";
+  S2_substitution["\\'d8\r"] = L"Ø";
+  S2_substitution["\\'d9\r"] = L"Ù";
+  S2_substitution["\\'da\r"] = L"Ú";
+  S2_substitution["\\'db\r"] = L"Û";
+  S2_substitution["\\'dc\r"] = L"Ü";
+  S2_substitution["\\'dd\r"] = L"Ý";
+  S2_substitution["\\'de\r"] = L"Þ";
+  S2_substitution["\\'df\r"] = L"ß";
+  S2_substitution["\\'e0\r"] = L"à";
+  S2_substitution["\\'e1\r"] = L"á";
+  S2_substitution["\\'e2\r"] = L"â";
+  S2_substitution["\\'e3\r"] = L"ã";
+  S2_substitution["\\'e4\r"] = L"ä";
+  S2_substitution["\\'e5\r"] = L"å";
+  S2_substitution["\\'e6\r"] = L"æ";
+  S2_substitution["\\'e7\r"] = L"ç";
+  S2_substitution["\\'e8\r"] = L"è";
+  S2_substitution["\\'e9\r"] = L"é";
+  S2_substitution["\\'ea\r"] = L"ê";
+  S2_substitution["\\'eb\r"] = L"ë";
+  S2_substitution["\\'ec\r"] = L"ì";
+  S2_substitution["\\'ed\r"] = L"í";
+  S2_substitution["\\'ee\r"] = L"î";
+  S2_substitution["\\'ef\r"] = L"ï";
+  S2_substitution["\\'f0\r"] = L"ð";
+  S2_substitution["\\'f1\r"] = L"ñ";
+  S2_substitution["\\'f2\r"] = L"ò";
+  S2_substitution["\\'f3\r"] = L"ó";
+  S2_substitution["\\'f4\r"] = L"ô";
+  S2_substitution["\\'f5\r"] = L"õ";
+  S2_substitution["\\'f6\r"] = L"ö";
+  S2_substitution["\\'f8\r"] = L"ø";
+  S2_substitution["\\'f9\r"] = L"ù";
+  S2_substitution["\\'fa\r"] = L"ú";
+  S2_substitution["\\'fb\r"] = L"û";
+  S2_substitution["\\'fc\r"] = L"ü";
+  S2_substitution["\\'fd\r"] = L"ý";
+  S2_substitution["\\'fe\r"] = L"þ";
+  S2_substitution["\\'ff\r"] = L"ÿ";
+  S2_substitution["\\u237"] = L"í";
+  S2_substitution["\\u243"] = L"ó";
+}
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 9133 "apertium_desrtf.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+#define C4 4
+#define C5 5
+#define C6 6
+#define C7 7
+#define C8 8
+#define C9 9
+#define C10 10
+#define C11 11
+#define C12 12
+#define C13 13
+#define C14 14
+#define C15 15
+#define C16 16
+#define C17 17
+#define C18 18
+#define C19 19
+#define C20 20
+#define C21 21
+#define C22 22
+#define C23 23
+#define C24 24
+#define C25 25
+#define C26 26
+#define C27 27
+#define C28 28
+#define C29 29
+#define C30 30
+#define C31 31
+#define C32 32
+#define C33 33
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 528 "apertium_desrtf.cctmp"
+
+
+
+#line 9371 "apertium_desrtf.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 533 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 539 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 548 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 554 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 5:
+YY_RULE_SETUP
+#line 563 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 569 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 7:
+YY_RULE_SETUP
+#line 578 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 584 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 9:
+YY_RULE_SETUP
+#line 593 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 10:
+/* rule 10 can match eol */
+YY_RULE_SETUP
+#line 599 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 11:
+YY_RULE_SETUP
+#line 608 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 12:
+/* rule 12 can match eol */
+YY_RULE_SETUP
+#line 614 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 13:
+YY_RULE_SETUP
+#line 623 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 14:
+/* rule 14 can match eol */
+YY_RULE_SETUP
+#line 629 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 15:
+YY_RULE_SETUP
+#line 638 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 16:
+/* rule 16 can match eol */
+YY_RULE_SETUP
+#line 644 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 17:
+YY_RULE_SETUP
+#line 653 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 18:
+/* rule 18 can match eol */
+YY_RULE_SETUP
+#line 659 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 19:
+YY_RULE_SETUP
+#line 668 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 674 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 21:
+YY_RULE_SETUP
+#line 683 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 689 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 23:
+YY_RULE_SETUP
+#line 698 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 24:
+/* rule 24 can match eol */
+YY_RULE_SETUP
+#line 704 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 25:
+YY_RULE_SETUP
+#line 713 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 719 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 27:
+YY_RULE_SETUP
+#line 728 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 28:
+/* rule 28 can match eol */
+YY_RULE_SETUP
+#line 734 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 29:
+YY_RULE_SETUP
+#line 743 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 30:
+/* rule 30 can match eol */
+YY_RULE_SETUP
+#line 749 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 31:
+YY_RULE_SETUP
+#line 758 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 32:
+/* rule 32 can match eol */
+YY_RULE_SETUP
+#line 764 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 33:
+YY_RULE_SETUP
+#line 773 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 34:
+/* rule 34 can match eol */
+YY_RULE_SETUP
+#line 779 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 35:
+YY_RULE_SETUP
+#line 788 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 36:
+/* rule 36 can match eol */
+YY_RULE_SETUP
+#line 794 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 37:
+YY_RULE_SETUP
+#line 803 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 38:
+/* rule 38 can match eol */
+YY_RULE_SETUP
+#line 809 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 39:
+YY_RULE_SETUP
+#line 818 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 40:
+/* rule 40 can match eol */
+YY_RULE_SETUP
+#line 824 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 41:
+YY_RULE_SETUP
+#line 833 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 42:
+/* rule 42 can match eol */
+YY_RULE_SETUP
+#line 839 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 43:
+YY_RULE_SETUP
+#line 848 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 44:
+/* rule 44 can match eol */
+YY_RULE_SETUP
+#line 854 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 45:
+YY_RULE_SETUP
+#line 863 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 46:
+/* rule 46 can match eol */
+YY_RULE_SETUP
+#line 869 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 47:
+YY_RULE_SETUP
+#line 878 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 48:
+/* rule 48 can match eol */
+YY_RULE_SETUP
+#line 884 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 49:
+YY_RULE_SETUP
+#line 893 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 50:
+/* rule 50 can match eol */
+YY_RULE_SETUP
+#line 899 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 51:
+YY_RULE_SETUP
+#line 908 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 52:
+/* rule 52 can match eol */
+YY_RULE_SETUP
+#line 914 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 53:
+YY_RULE_SETUP
+#line 923 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 54:
+/* rule 54 can match eol */
+YY_RULE_SETUP
+#line 929 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 55:
+YY_RULE_SETUP
+#line 938 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 56:
+/* rule 56 can match eol */
+YY_RULE_SETUP
+#line 944 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 57:
+YY_RULE_SETUP
+#line 953 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 58:
+/* rule 58 can match eol */
+YY_RULE_SETUP
+#line 959 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 59:
+YY_RULE_SETUP
+#line 968 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 60:
+/* rule 60 can match eol */
+YY_RULE_SETUP
+#line 974 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 61:
+YY_RULE_SETUP
+#line 983 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 62:
+/* rule 62 can match eol */
+YY_RULE_SETUP
+#line 989 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 63:
+YY_RULE_SETUP
+#line 998 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 64:
+/* rule 64 can match eol */
+YY_RULE_SETUP
+#line 1004 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 65:
+YY_RULE_SETUP
+#line 1013 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 66:
+/* rule 66 can match eol */
+YY_RULE_SETUP
+#line 1019 "apertium_desrtf.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 67:
+/* rule 67 can match eol */
+YY_RULE_SETUP
+#line 1025 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 68:
+/* rule 68 can match eol */
+YY_RULE_SETUP
+#line 1029 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 69:
+/* rule 69 can match eol */
+YY_RULE_SETUP
+#line 1033 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 70:
+/* rule 70 can match eol */
+YY_RULE_SETUP
+#line 1037 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 71:
+/* rule 71 can match eol */
+YY_RULE_SETUP
+#line 1041 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 72:
+/* rule 72 can match eol */
+YY_RULE_SETUP
+#line 1045 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C6);
+}
+	YY_BREAK
+case 73:
+/* rule 73 can match eol */
+YY_RULE_SETUP
+#line 1049 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C7);
+}
+	YY_BREAK
+case 74:
+/* rule 74 can match eol */
+YY_RULE_SETUP
+#line 1053 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C8);
+}
+	YY_BREAK
+case 75:
+/* rule 75 can match eol */
+YY_RULE_SETUP
+#line 1057 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C9);
+}
+	YY_BREAK
+case 76:
+/* rule 76 can match eol */
+YY_RULE_SETUP
+#line 1061 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C10);
+}
+	YY_BREAK
+case 77:
+/* rule 77 can match eol */
+YY_RULE_SETUP
+#line 1065 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C11);
+}
+	YY_BREAK
+case 78:
+/* rule 78 can match eol */
+YY_RULE_SETUP
+#line 1069 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C12);
+}
+	YY_BREAK
+case 79:
+/* rule 79 can match eol */
+YY_RULE_SETUP
+#line 1073 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C13);
+}
+	YY_BREAK
+case 80:
+/* rule 80 can match eol */
+YY_RULE_SETUP
+#line 1077 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C14);
+}
+	YY_BREAK
+case 81:
+/* rule 81 can match eol */
+YY_RULE_SETUP
+#line 1081 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C15);
+}
+	YY_BREAK
+case 82:
+/* rule 82 can match eol */
+YY_RULE_SETUP
+#line 1085 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C16);
+}
+	YY_BREAK
+case 83:
+/* rule 83 can match eol */
+YY_RULE_SETUP
+#line 1089 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C17);
+}
+	YY_BREAK
+case 84:
+/* rule 84 can match eol */
+YY_RULE_SETUP
+#line 1093 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C18);
+}
+	YY_BREAK
+case 85:
+/* rule 85 can match eol */
+YY_RULE_SETUP
+#line 1097 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C19);
+}
+	YY_BREAK
+case 86:
+/* rule 86 can match eol */
+YY_RULE_SETUP
+#line 1101 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C20);
+}
+	YY_BREAK
+case 87:
+/* rule 87 can match eol */
+YY_RULE_SETUP
+#line 1105 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C21);
+}
+	YY_BREAK
+case 88:
+/* rule 88 can match eol */
+YY_RULE_SETUP
+#line 1109 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C22);
+}
+	YY_BREAK
+case 89:
+/* rule 89 can match eol */
+YY_RULE_SETUP
+#line 1113 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C23);
+}
+	YY_BREAK
+case 90:
+/* rule 90 can match eol */
+YY_RULE_SETUP
+#line 1117 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C24);
+}
+	YY_BREAK
+case 91:
+/* rule 91 can match eol */
+YY_RULE_SETUP
+#line 1121 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C25);
+}
+	YY_BREAK
+case 92:
+/* rule 92 can match eol */
+YY_RULE_SETUP
+#line 1125 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C26);
+}
+	YY_BREAK
+case 93:
+/* rule 93 can match eol */
+YY_RULE_SETUP
+#line 1129 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C27);
+}
+	YY_BREAK
+case 94:
+/* rule 94 can match eol */
+YY_RULE_SETUP
+#line 1133 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C28);
+}
+	YY_BREAK
+case 95:
+/* rule 95 can match eol */
+YY_RULE_SETUP
+#line 1137 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C29);
+}
+	YY_BREAK
+case 96:
+/* rule 96 can match eol */
+YY_RULE_SETUP
+#line 1141 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C30);
+}
+	YY_BREAK
+case 97:
+/* rule 97 can match eol */
+YY_RULE_SETUP
+#line 1145 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C31);
+}
+	YY_BREAK
+case 98:
+/* rule 98 can match eol */
+YY_RULE_SETUP
+#line 1149 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C32);
+}
+	YY_BREAK
+case 99:
+/* rule 99 can match eol */
+YY_RULE_SETUP
+#line 1153 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C33);
+}
+	YY_BREAK
+case 100:
+YY_RULE_SETUP
+#line 1157 "apertium_desrtf.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 101:
+YY_RULE_SETUP
+#line 1161 "apertium_desrtf.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 102:
+/* rule 102 can match eol */
+YY_RULE_SETUP
+#line 1165 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 103:
+/* rule 103 can match eol */
+YY_RULE_SETUP
+#line 1168 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 104:
+/* rule 104 can match eol */
+YY_RULE_SETUP
+#line 1171 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 105:
+/* rule 105 can match eol */
+YY_RULE_SETUP
+#line 1174 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 106:
+/* rule 106 can match eol */
+YY_RULE_SETUP
+#line 1177 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 107:
+/* rule 107 can match eol */
+YY_RULE_SETUP
+#line 1180 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 108:
+/* rule 108 can match eol */
+YY_RULE_SETUP
+#line 1183 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 109:
+/* rule 109 can match eol */
+YY_RULE_SETUP
+#line 1186 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 110:
+YY_RULE_SETUP
+#line 1189 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 111:
+YY_RULE_SETUP
+#line 1192 "apertium_desrtf.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 112:
+YY_RULE_SETUP
+#line 1196 "apertium_desrtf.cctmp"
+{
+  if(S1_substitution.find(yytext) != S1_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
+    offset+=S1_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 113:
+/* rule 113 can match eol */
+YY_RULE_SETUP
+#line 1211 "apertium_desrtf.cctmp"
+{
+  if(S2_substitution.find(yytext) != S2_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S2_substitution[yytext].c_str(), yyout);
+    offset+=S2_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 114:
+/* rule 114 can match eol */
+YY_RULE_SETUP
+#line 1225 "apertium_desrtf.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 115:
+YY_RULE_SETUP
+#line 1233 "apertium_desrtf.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 116:
+YY_RULE_SETUP
+#line 1253 "apertium_desrtf.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+case YY_STATE_EOF(C4):
+case YY_STATE_EOF(C5):
+case YY_STATE_EOF(C6):
+case YY_STATE_EOF(C7):
+case YY_STATE_EOF(C8):
+case YY_STATE_EOF(C9):
+case YY_STATE_EOF(C10):
+case YY_STATE_EOF(C11):
+case YY_STATE_EOF(C12):
+case YY_STATE_EOF(C13):
+case YY_STATE_EOF(C14):
+case YY_STATE_EOF(C15):
+case YY_STATE_EOF(C16):
+case YY_STATE_EOF(C17):
+case YY_STATE_EOF(C18):
+case YY_STATE_EOF(C19):
+case YY_STATE_EOF(C20):
+case YY_STATE_EOF(C21):
+case YY_STATE_EOF(C22):
+case YY_STATE_EOF(C23):
+case YY_STATE_EOF(C24):
+case YY_STATE_EOF(C25):
+case YY_STATE_EOF(C26):
+case YY_STATE_EOF(C27):
+case YY_STATE_EOF(C28):
+case YY_STATE_EOF(C29):
+case YY_STATE_EOF(C30):
+case YY_STATE_EOF(C31):
+case YY_STATE_EOF(C32):
+case YY_STATE_EOF(C33):
+#line 1278 "apertium_desrtf.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 117:
+YY_RULE_SETUP
+#line 1285 "apertium_desrtf.cctmp"
+ECHO;
+	YY_BREAK
+#line 10614 "apertium_desrtf.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 1285 "apertium_desrtf.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "rtf format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  S1_init();
+  S2_init();
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_destxt.cc b/apertium/apertium_destxt.cc
new file mode 100644
index 0000000..90a622c
--- /dev/null
+++ b/apertium/apertium_destxt.cc
@@ -0,0 +1,2148 @@
+#line 2 "apertium_destxt.cc"
+
+#line 4 "apertium_destxt.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][6] =
+    {
+    {
+        0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    5,    6,    7,    8
+    },
+
+    {
+        3,    4,    5,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,    9,   -6,   -6
+    },
+
+    {
+        3,   -7,   -7,   10,   -7,   -7
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   11,   12,   -9
+
+    },
+
+    {
+        3,  -10,  -10,  -10,   13,  -10
+    },
+
+    {
+        3,  -11,  -11,    9,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,   10,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,    9,  -13,  -13
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 5
+#define YY_END_OF_BUFFER 6
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[14] =
+    {   0,
+        0,    0,    6,    4,    2,    2,    2,    3,    1,    0,
+        0,    0,    0
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    1,    1,    1,    5,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    5,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    5,
+        1,    5,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        5,    5,    5,    5,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    5,    1,    5,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_destxt.cctmp"
+#line 4 "apertium_destxt.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][\\\\/@<>^${}]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "''", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+#line 747 "apertium_destxt.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 266 "apertium_destxt.cctmp"
+
+
+#line 951 "apertium_destxt.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+/* rule 1 can match eol */
+YY_RULE_SETUP
+#line 268 "apertium_destxt.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 272 "apertium_destxt.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 280 "apertium_destxt.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 300 "apertium_destxt.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 325 "apertium_destxt.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 332 "apertium_destxt.cctmp"
+ECHO;
+	YY_BREAK
+#line 1083 "apertium_destxt.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 332 "apertium_destxt.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "txt format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_deswxml.cc b/apertium/apertium_deswxml.cc
new file mode 100644
index 0000000..5b7a320
--- /dev/null
+++ b/apertium/apertium_deswxml.cc
@@ -0,0 +1,6191 @@
+#line 2 "apertium_deswxml.cc"
+
+#line 4 "apertium_deswxml.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][57] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+       15,   16,   17,   18,   17,   16,   16,   19,   20,   16,
+       19,   16,   16,   16,   21,   17,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16
+    },
+
+    {
+       15,   16,   17,   18,   17,   16,   16,   19,   20,   16,
+       19,   16,   16,   16,   21,   17,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16
+    },
+
+    {
+       15,   22,   22,   22,   22,   22,   22,   22,   22,   23,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22
+    },
+
+    {
+       15,   22,   22,   22,   22,   22,   22,   22,   22,   23,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22
+
+    },
+
+    {
+       15,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   25,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24
+    },
+
+    {
+       15,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   25,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24
+    },
+
+    {
+       15,   26,   26,   26,   26,   26,   26,   26,   27,   26,
+       26,   26,   26,   26,   28,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26
+    },
+
+    {
+       15,   26,   26,   26,   26,   26,   26,   26,   27,   26,
+       26,   26,   26,   26,   28,   26,   26,   26,   26,   26,
+
+       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26
+    },
+
+    {
+       15,   29,   29,   29,   29,   29,   29,   29,   30,   29,
+       29,   29,   29,   29,   31,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29
+
+    },
+
+    {
+       15,   29,   29,   29,   29,   29,   29,   29,   30,   29,
+       29,   29,   29,   29,   31,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
+       29,   29,   29,   29,   29,   29,   29
+    },
+
+    {
+       15,   32,   32,   32,   32,   32,   32,   32,   33,   32,
+       32,   32,   32,   32,   34,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32
+    },
+
+    {
+       15,   32,   32,   32,   32,   32,   32,   32,   33,   32,
+       32,   32,   32,   32,   34,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
+       32,   32,   32,   32,   32,   32,   32
+    },
+
+    {
+       15,   35,   35,   35,   35,   35,   35,   35,   36,   35,
+       35,   35,   35,   35,   37,   35,   35,   35,   35,   35,
+
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35
+    },
+
+    {
+       15,   35,   35,   35,   35,   35,   35,   35,   36,   35,
+       35,   35,   35,   35,   37,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
+       35,   35,   35,   35,   35,   35,   35
+
+    },
+
+    {
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+       15,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    {
+       15,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17
+    },
+
+    {
+       15,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18
+    },
+
+    {
+       15,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19
+
+    },
+
+    {
+       15,  -20,  -20,  -20,  -20,  -20,   38,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   40,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   40,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39
+    },
+
+    {
+       15,  -21,  -21,  -21,  -21,   41,  -21,  -21,  -21,  -21,
+       42,  -21,  -21,  -21,  -21,  -21,   43,   44,   44,   44,
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
+       45,   44,   44,   44,   44,   46,   44,   44,   44,   44,
+
+       44,   44,   44,   44,   44,   44,   44,   44,   44,   45,
+       44,   44,   44,   44,   46,   44,   44
+    },
+
+    {
+       15,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22
+    },
+
+    {
+       15,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,   47,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23
+    },
+
+    {
+       15,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24
+
+    },
+
+    {
+       15,  -25,  -25,  -25,  -25,   48,  -25,  -25,  -25,  -25,
+       49,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25
+    },
+
+    {
+       15,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26
+    },
+
+    {
+       15,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,   50,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,   50,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27
+    },
+
+    {
+       15,  -28,  -28,  -28,  -28,   51,  -28,  -28,  -28,  -28,
+       52,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+       53,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,   53,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28
+    },
+
+    {
+       15,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29
+
+    },
+
+    {
+       15,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,   54,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,   54,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30
+    },
+
+    {
+       15,  -31,  -31,  -31,  -31,   55,  -31,  -31,  -31,  -31,
+       56,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+       57,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,   57,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31
+    },
+
+    {
+       15,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32
+    },
+
+    {
+       15,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+
+      -33,  -33,  -33,  -33,  -33,  -33,   58,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,   58,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33
+    },
+
+    {
+       15,  -34,  -34,  -34,  -34,   59,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34
+
+    },
+
+    {
+       15,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35
+    },
+
+    {
+       15,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,   60,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+
+      -36,  -36,  -36,  -36,  -36,   60,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36
+    },
+
+    {
+       15,  -37,  -37,  -37,  -37,   61,  -37,  -37,  -37,  -37,
+       62,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+       63,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,   63,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37
+    },
+
+    {
+       15,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,   64,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,   65,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,   65,  -38
+    },
+
+    {
+       15,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,   66,  -39,  -39,  -39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39
+
+    },
+
+    {
+       15,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,   66,  -40,  -40,  -40,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   67,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   67,   39,   39,   39,   39
+    },
+
+    {
+       15,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,   68,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69
+    },
+
+    {
+       15,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   71,   70,   70,   70,   70,
+       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
+       70,   70,   70,   70,   71,   70,   70
+    },
+
+    {
+       15,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,   69,   69,   69,
+
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
+       69,   69,   69,   69,   69,   69,   69
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   74,   72,   72,   72,   72,
+       72,   75,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   74,   72,   72,   72,   72,   72,
+       75,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   76,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,   77,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47
+    },
+
+    {
+       15,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,   78,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48
+    },
+
+    {
+       15,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+       79,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,   79,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49
+
+    },
+
+    {
+       15,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,   80,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,   80,  -50,  -50,  -50,  -50
+    },
+
+    {
+       15,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,   81,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51
+    },
+
+    {
+       15,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+       82,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,   82,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52
+    },
+
+    {
+       15,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,   83,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+       83,  -53,  -53,  -53,  -53,  -53,  -53
+    },
+
+    {
+       15,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,   84,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,   84,  -54,  -54,  -54,  -54
+
+    },
+
+    {
+       15,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,   85,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55
+    },
+
+    {
+       15,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,   86,  -56,  -56,  -56,  -56,
+
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,   86,  -56,  -56
+    },
+
+    {
+       15,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,   87,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+       87,  -57,  -57,  -57,  -57,  -57,  -57
+    },
+
+    {
+       15,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,   88,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,   88,  -58,  -58,  -58,  -58
+    },
+
+    {
+       15,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,   89,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59
+
+    },
+
+    {
+       15,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,   90,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,   90,  -60,  -60,  -60,  -60
+    },
+
+    {
+       15,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,   91,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61
+    },
+
+    {
+       15,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,   92,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,   92,  -62,  -62
+    },
+
+    {
+       15,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,   93,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+       93,  -63,  -63,  -63,  -63,  -63,  -63
+    },
+
+    {
+       15,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,   94,  -64,   66,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64
+
+    },
+
+    {
+       15,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,   95,  -65,  -65,  -65,  -65,  -65,   95,   95,   95,
+       95,   95,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,   95,   95,
+       95,   95,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65
+    },
+
+    {
+       15,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66
+    },
+
+    {
+       15,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,   96,  -67,  -67,  -67,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   39,   39
+    },
+
+    {
+       15,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,   97,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68
+    },
+
+    {
+       15,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   99,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98
+
+    },
+
+    {
+       15,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  101,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100
+    },
+
+    {
+       15,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  102,  100,  100,  101,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,  103,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  103,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,  104,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  104,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+      105,   72,   72,   72,  106,   72,   72,   72,   72,   72,
+      107,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+
+      105,   72,   72,  106,   72,   72,   72,   72,   72,  107,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77
+    },
+
+    {
+       15,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  108,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78
+    },
+
+    {
+       15,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  109,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      109,  -79,  -79,  -79,  -79,  -79,  -79
+
+    },
+
+    {
+       15,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  110,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80
+    },
+
+    {
+       15,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  111,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81
+    },
+
+    {
+       15,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  112,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  112,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82
+    },
+
+    {
+       15,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  113,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  113,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83
+    },
+
+    {
+       15,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  114,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84
+
+    },
+
+    {
+       15,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  115,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85
+    },
+
+    {
+       15,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  116,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86
+    },
+
+    {
+       15,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  117,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  117,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87
+    },
+
+    {
+       15,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  118,  -88,  -88,  -88,  -88,  -88,  -88,
+
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88
+    },
+
+    {
+       15,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  119,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89
+
+    },
+
+    {
+       15,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  120,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90
+    },
+
+    {
+       15,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  121,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91
+    },
+
+    {
+       15,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  122,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92
+    },
+
+    {
+       15,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  123,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  123,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93
+    },
+
+    {
+       15,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  124,  -94,   66,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94
+
+    },
+
+    {
+       15,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  125,  -95,   66,  -95,  -95,  -95,  125,  125,  125,
+      125,  125,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  125,  125,
+      125,  125,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95
+    },
+
+    {
+       15,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  126,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  126,  -96,
+
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96
+    },
+
+    {
+       15,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97
+    },
+
+    {
+       15,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   99,   98,   98,   98,   98,
+
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,   98,   98,   98,   98,   98,   98
+    },
+
+    {
+       15,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99
+
+    },
+
+    {
+       15,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  101,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100
+    },
+
+    {
+       15, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101
+    },
+
+    {
+       15,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  101,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      127,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  127,
+      100,  100,  100,  100,  100,  100,  100
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  128,   72,   72,   73,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+      129,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,  129,
+       72,   72,   72,   72,   72,   72,   72
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  130,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+      130,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  131,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,  131,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,  132,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,  133,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108
+    },
+
+    {
+       15, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109,  134,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109,  134, -109,
+     -109, -109, -109, -109, -109, -109, -109
+
+    },
+
+    {
+       15, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110,  135, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110,  135, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110
+    },
+
+    {
+       15, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111
+    },
+
+    {
+       15, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112,  136, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112,  136, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112
+    },
+
+    {
+       15, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+      137, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113,  137,
+     -113, -113, -113, -113, -113, -113, -113
+    },
+
+    {
+       15, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114,  138, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114,  138, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114
+
+    },
+
+    {
+       15, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115
+    },
+
+    {
+       15, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116,  139, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+
+     -116, -116, -116,  139, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116
+    },
+
+    {
+       15, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+      140, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117,  140,
+     -117, -117, -117, -117, -117, -117, -117
+    },
+
+    {
+       15, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+      141, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118, -118, -118, -118
+    },
+
+    {
+       15, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119
+
+    },
+
+    {
+       15, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120,  142, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120,  142, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120
+    },
+
+    {
+       15, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121
+    },
+
+    {
+       15, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+      143, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+      143, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122
+    },
+
+    {
+       15, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+      144, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123,  144,
+     -123, -123, -123, -123, -123, -123, -123
+    },
+
+    {
+       15, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124,  145, -124,   66, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124
+
+    },
+
+    {
+       15, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125,  146, -125,   66, -125, -125, -125,  146,  146,  146,
+      146,  146, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125,  146,  146,
+      146,  146, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125
+    },
+
+    {
+       15, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+      147, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+
+     -126, -126, -126, -126, -126, -126, -126, -126, -126,  147,
+     -126, -126, -126, -126, -126, -126, -126
+    },
+
+    {
+       15,  100,  100,  100,  148,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  149,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,  150,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,  150,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,  151,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  151,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,  152,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  152,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  153,   72,   72,   72,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  153,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  133,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154
+    },
+
+    {
+       15, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133, -133, -133, -133
+    },
+
+    {
+       15, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+      155, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134,  155,
+     -134, -134, -134, -134, -134, -134, -134
+
+    },
+
+    {
+       15, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+      156, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135,  156,
+     -135, -135, -135, -135, -135, -135, -135
+    },
+
+    {
+       15, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136,  157, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136
+    },
+
+    {
+       15, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137,  158, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137,  158, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137
+    },
+
+    {
+       15, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+      159, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138,  159,
+     -138, -138, -138, -138, -138, -138, -138
+    },
+
+    {
+       15, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139,  160, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139,  160, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139
+
+    },
+
+    {
+       15, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140,  161, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140,  161, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140, -140, -140, -140
+    },
+
+    {
+       15, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141,  162, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141, -141,  162, -141,
+
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141, -141, -141, -141
+    },
+
+    {
+       15, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+      163, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142,  163,
+     -142, -142, -142, -142, -142, -142, -142
+    },
+
+    {
+       15, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143,  164, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+      164, -143, -143, -143, -143, -143, -143
+    },
+
+    {
+       15, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144,  165, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144,  165, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144
+
+    },
+
+    {
+       15, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145,  166, -145,   66, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145
+    },
+
+    {
+       15, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146,  167, -146,   66, -146, -146, -146,  167,  167,  167,
+      167,  167, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146,  167,  167,
+
+      167,  167, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146
+    },
+
+    {
+       15, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147,  168, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147,  168, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147
+    },
+
+    {
+       15,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  149,  169,  169,  169,  169,
+
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169
+    },
+
+    {
+       15, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,  170,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  170,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  171,   72,   72,   72,   72,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+      171,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,  172,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,  172,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  173,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  173,   72,   72,   72,   72
+    },
+
+    {
+       15,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  133,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
+      154,  154,  154,  154,  154,  154,  154
+
+    },
+
+    {
+       15, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155,  174, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155,  174, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155
+    },
+
+    {
+       15, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156,  175, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+
+     -156,  175, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156
+    },
+
+    {
+       15, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157,  176, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157,  176,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157
+    },
+
+    {
+       15, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158,  177, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+      177, -158, -158, -158, -158, -158, -158
+    },
+
+    {
+       15, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159,  178, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159,  178, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159
+
+    },
+
+    {
+       15, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160,  179, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160,  179, -160, -160, -160, -160, -160
+    },
+
+    {
+       15, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161,  180, -161, -161, -161, -161, -161, -161, -161, -161,
+
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+      180, -161, -161, -161, -161, -161, -161
+    },
+
+    {
+       15, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+      181, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162,  181,
+     -162, -162, -162, -162, -162, -162, -162
+    },
+
+    {
+       15, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+
+     -163,  182, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163,  182, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163
+    },
+
+    {
+       15, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164,  183, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164,  183, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164
+
+    },
+
+    {
+       15, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165,  184, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+      184, -165, -165, -165, -165, -165, -165
+    },
+
+    {
+       15, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166,  185, -166,   66, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166
+    },
+
+    {
+       15, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167,   66, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167
+    },
+
+    {
+       15, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168,  186, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+      186, -168, -168, -168, -168, -168, -168
+    },
+
+    {
+       15,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  149,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,  169
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  187,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,  187,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  188,   72,   72,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  188,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,  189,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  189,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  190,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+      190,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174,  191, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+      191, -174, -174, -174, -174, -174, -174
+
+    },
+
+    {
+       15, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175,  192, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+      192, -175, -175, -175, -175, -175, -175
+    },
+
+    {
+       15, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176,  193, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+
+     -176, -176, -176,  193, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176
+    },
+
+    {
+       15, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177,  194, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177,  194, -177, -177, -177, -177
+    },
+
+    {
+       15, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178,  195, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+      195, -178, -178, -178, -178, -178, -178
+    },
+
+    {
+       15, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179,  196, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179,  196, -179, -179, -179, -179
+
+    },
+
+    {
+       15, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180,  197, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180,  197, -180, -180, -180, -180
+    },
+
+    {
+       15, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181,  198, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+
+     -181,  198, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181
+    },
+
+    {
+       15, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182,  199, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+      199, -182, -182, -182, -182, -182, -182
+    },
+
+    {
+       15, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183,  200, -183, -183, -183, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183,  200, -183, -183
+    },
+
+    {
+       15, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184,  201, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184,  201, -184, -184, -184, -184
+
+    },
+
+    {
+       15, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185,  202, -185,   66, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185
+    },
+
+    {
+       15, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186,  203, -186, -186, -186, -186, -186, -186,
+
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186,  203, -186, -186, -186, -186
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,  204,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  204,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+
+       72,   72,   72,   72,  205,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  205,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  206,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,  206,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  207,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  207,   72,   72,   72,   72
+    },
+
+    {
+       15, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191,  208, -191, -191, -191, -191, -191, -191,
+
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191,  208, -191, -191, -191, -191
+    },
+
+    {
+       15, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192,  209, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192,  209, -192, -192, -192, -192
+    },
+
+    {
+       15, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+
+     -193, -193, -193, -193, -193, -193, -193, -193,  210, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193,  210, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193
+    },
+
+    {
+       15, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194,  211, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194,  211, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194
+
+    },
+
+    {
+       15, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195,  212, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195,  212, -195, -195, -195, -195
+    },
+
+    {
+       15, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196,  213, -196, -196, -196, -196, -196, -196, -196, -196,
+
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+      213, -196, -196, -196, -196, -196, -196
+    },
+
+    {
+       15, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197,  214, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197,  214, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197
+    },
+
+    {
+       15, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198,  215, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+      215, -198, -198, -198, -198, -198, -198
+    },
+
+    {
+       15, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199,  216, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199,  216, -199, -199, -199, -199
+
+    },
+
+    {
+       15, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200,  217, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200,  217, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200
+    },
+
+    {
+       15, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201,  218, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+
+     -201, -201, -201,  218, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201
+    },
+
+    {
+       15, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202,  219, -202,   66, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202, -202, -202, -202,
+     -202, -202, -202, -202, -202, -202, -202
+    },
+
+    {
+       15, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+
+     -203, -203, -203, -203,  220, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203,  220, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  221,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+      221,   72,   72,   72,   72,   72,   72
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,  222,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  222,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,  223,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+
+       72,   72,  223,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,  224,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  224,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+
+     -208, -208, -208, -208,  225, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208,  225, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208
+    },
+
+    {
+       15, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209,  226, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209,  226, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209, -209, -209, -209
+
+    },
+
+    {
+       15, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210,  227, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210,  227, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210
+    },
+
+    {
+       15, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211,  228, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+
+     -211,  228, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211
+    },
+
+    {
+       15, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212,  229, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212,  229, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212
+    },
+
+    {
+       15, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213,  230, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213,  230, -213, -213, -213, -213
+    },
+
+    {
+       15, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214,  231, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214,  231, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214, -214, -214, -214
+
+    },
+
+    {
+       15, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215,  232, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215,  232, -215, -215, -215, -215
+    },
+
+    {
+       15, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216,  233, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+
+     -216, -216, -216,  233, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216
+    },
+
+    {
+       15, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217,  234, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217,  234, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217
+    },
+
+    {
+       15, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+
+     -218,  235, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218,  235, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218
+    },
+
+    {
+       15, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219,   66, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219, -219, -219, -219
+
+    },
+
+    {
+       15, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220,  236, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220,  236, -220, -220, -220
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,  237,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,  237
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  238,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,  238,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,  239,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,  240,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,  241,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,  241,   72
+
+    },
+
+    {
+       15, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225,  242, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225,  242, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225, -225, -225, -225
+    },
+
+    {
+       15, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226,  243, -226, -226, -226, -226, -226,
+
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226,  243, -226, -226, -226
+    },
+
+    {
+       15, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227,  244, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+      244, -227, -227, -227, -227, -227, -227
+    },
+
+    {
+       15, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228,  245, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228,  245, -228, -228, -228, -228, -228
+    },
+
+    {
+       15, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229,  246, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229,  246, -229, -229, -229
+
+    },
+
+    {
+       15, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230,  247, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230,  247, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230, -230, -230, -230
+    },
+
+    {
+       15, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231,  248, -231, -231, -231, -231, -231, -231, -231,
+
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231,  248, -231, -231, -231, -231, -231
+    },
+
+    {
+       15, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232,  249, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232,  249, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232
+    },
+
+    {
+       15, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233,  250, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233,  250, -233, -233, -233
+    },
+
+    {
+       15, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234,  251, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234,  251, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234
+
+    },
+
+    {
+       15, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235,  252, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235,  252, -235, -235, -235, -235, -235
+    },
+
+    {
+       15, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236,  253, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+
+     -236, -236, -236, -236, -236, -236,  253, -236, -236, -236,
+     -236, -236, -236, -236, -236, -236, -236
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+      254,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+      254,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,   72,   72,   72,  255,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,  256,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  240,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257
+
+    },
+
+    {
+       15, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  258,   72,   72,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  258,   72,   72,   72,   72
+    },
+
+    {
+       15, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242,  259, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242,  259, -242, -242, -242, -242, -242
+    },
+
+    {
+       15, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+
+     -243, -243, -243, -243, -243, -243, -243,  260, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243,  260, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243
+    },
+
+    {
+       15, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244,  261, -244, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244, -244, -244,  261
+
+    },
+
+    {
+       15, -245, -245, -245,  262, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245,  263, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245, -245, -245, -245
+    },
+
+    {
+       15, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246,  264, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+
+     -246, -246, -246, -246, -246, -246,  264, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246
+    },
+
+    {
+       15, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247,  265, -247, -247, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247, -247,  265, -247
+    },
+
+    {
+       15, -248, -248, -248,  266, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248,  267, -248, -248, -248, -248,
+
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248
+    },
+
+    {
+       15, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249,  268, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249,  268, -249, -249, -249
+
+    },
+
+    {
+       15, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250,  269, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250,  269, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250
+    },
+
+    {
+       15, -251, -251, -251,  270, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251,  271, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+
+     -251, -251, -251, -251, -251, -251, -251, -251, -251, -251,
+     -251, -251, -251, -251, -251, -251, -251
+    },
+
+    {
+       15, -252, -252, -252,  272, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252,  273, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252, -252, -252, -252,
+     -252, -252, -252, -252, -252, -252, -252
+    },
+
+    {
+       15, -253, -253, -253, -253, -253, -253, -253, -253,  274,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253, -253, -253, -253,
+     -253, -253, -253, -253, -253, -253, -253
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,  275,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  275,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+
+    },
+
+    {
+       15,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  256,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  276,  276
+    },
+
+    {
+       15, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+
+     -256, -256, -256, -256, -256, -256, -256, -256, -256, -256,
+     -256, -256, -256, -256, -256, -256, -256
+    },
+
+    {
+       15,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  240,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+      257,  257,  257,  257,  257,  257,  257
+    },
+
+    {
+       15,   72,   72,   72,  277,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,  278,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15, -259, -259, -259,  279, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259,  280, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259, -259, -259, -259,
+     -259, -259, -259, -259, -259, -259, -259
+
+    },
+
+    {
+       15, -260, -260, -260, -260, -260, -260, -260, -260,  281,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260, -260, -260, -260,
+     -260, -260, -260, -260, -260, -260, -260
+    },
+
+    {
+       15, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+      282, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+
+      282, -261, -261, -261, -261, -261, -261, -261, -261, -261,
+     -261, -261, -261, -261, -261, -261, -261
+    },
+
+    {
+       15,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  263,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  283,  283
+    },
+
+    {
+       15, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263, -263, -263, -263,
+     -263, -263, -263, -263, -263, -263, -263
+    },
+
+    {
+       15, -264, -264, -264, -264, -264, -264, -264, -264,  284,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264, -264, -264, -264,
+     -264, -264, -264, -264, -264, -264, -264
+
+    },
+
+    {
+       15, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265,  285, -265, -265, -265, -265, -265, -265,
+     -265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
+     -265, -265,  285, -265, -265, -265, -265
+    },
+
+    {
+       15,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  267,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+
+      286,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  286,  286
+    },
+
+    {
+       15, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267, -267, -267, -267,
+     -267, -267, -267, -267, -267, -267, -267
+    },
+
+    {
+       15, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+
+     -268, -268, -268, -268, -268, -268, -268,  287, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268,  287, -268, -268, -268,
+     -268, -268, -268, -268, -268, -268, -268
+    },
+
+    {
+       15, -269, -269, -269, -269, -269, -269, -269, -269,  288,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269, -269, -269, -269,
+     -269, -269, -269, -269, -269, -269, -269
+
+    },
+
+    {
+       15,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  271,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289
+    },
+
+    {
+       15, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+
+     -271, -271, -271, -271, -271, -271, -271, -271, -271, -271,
+     -271, -271, -271, -271, -271, -271, -271
+    },
+
+    {
+       15,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  273,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290
+    },
+
+    {
+       15, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273, -273, -273, -273,
+     -273, -273, -273, -273, -273, -273, -273
+    },
+
+    {
+       15, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274,  291, -274,
+     -274, -274, -274, -274, -274, -274, -274, -274, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274,  291, -274, -274,
+     -274, -274, -274, -274, -274, -274, -274
+
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,  292,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,  292,   72,   72,   72,   72
+    },
+
+    {
+       15,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  256,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+
+      276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
+      276,  276,  276,  276,  276,  276,  276
+    },
+
+    {
+       15,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  278,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293
+    },
+
+    {
+       15, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278, -278, -278, -278,
+     -278, -278, -278, -278, -278, -278, -278
+    },
+
+    {
+       15,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  280,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294
+
+    },
+
+    {
+       15, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280, -280, -280, -280,
+     -280, -280, -280, -280, -280, -280, -280
+    },
+
+    {
+       15, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281,  295, -281,
+     -281, -281, -281, -281, -281, -281, -281, -281, -281, -281,
+
+     -281, -281, -281, -281, -281, -281, -281,  295, -281, -281,
+     -281, -281, -281, -281, -281, -281, -281
+    },
+
+    {
+       15, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282,  296, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282,  296, -282,
+     -282, -282, -282, -282, -282, -282, -282, -282, -282, -282,
+     -282, -282, -282, -282, -282, -282, -282
+    },
+
+    {
+       15,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  263,  283,  283,  283,  283,
+
+      283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
+      283,  283,  283,  283,  283,  283,  283
+    },
+
+    {
+       15, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284,  297, -284,
+     -284, -284, -284, -284, -284, -284, -284, -284, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284,  297, -284, -284,
+     -284, -284, -284, -284, -284, -284, -284
+
+    },
+
+    {
+       15, -285, -285, -285,  298, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285,  299, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285, -285, -285, -285,
+     -285, -285, -285, -285, -285, -285, -285
+    },
+
+    {
+       15,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  267,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+
+      286,  286,  286,  286,  286,  286,  286,  286,  286,  286,
+      286,  286,  286,  286,  286,  286,  286
+    },
+
+    {
+       15, -287, -287, -287, -287, -287, -287, -287, -287,  300,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287, -287, -287, -287,
+     -287, -287, -287, -287, -287, -287, -287
+    },
+
+    {
+       15, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+
+     -288, -288, -288, -288, -288, -288, -288, -288,  301, -288,
+     -288, -288, -288, -288, -288, -288, -288, -288, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288,  301, -288, -288,
+     -288, -288, -288, -288, -288, -288, -288
+    },
+
+    {
+       15,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  271,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
+      289,  289,  289,  289,  289,  289,  289
+
+    },
+
+    {
+       15,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  273,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
+      290,  290,  290,  290,  290,  290,  290
+    },
+
+    {
+       15, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291,  302,
+     -291, -291, -291, -291, -291, -291, -291, -291, -291, -291,
+
+     -291, -291, -291, -291, -291, -291, -291, -291,  302, -291,
+     -291, -291, -291, -291, -291, -291, -291
+    },
+
+    {
+       15,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   73,   72,  303,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,  303,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  278,  293,  293,  293,  293,
+
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293,  293,  293,  293,
+      293,  293,  293,  293,  293,  293,  293
+    },
+
+    {
+       15,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  280,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294,  294,  294,  294,
+      294,  294,  294,  294,  294,  294,  294
+
+    },
+
+    {
+       15, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295,  304,
+     -295, -295, -295, -295, -295, -295, -295, -295, -295, -295,
+     -295, -295, -295, -295, -295, -295, -295, -295,  304, -295,
+     -295, -295, -295, -295, -295, -295, -295
+    },
+
+    {
+       15, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296, -296,  305, -296, -296, -296, -296, -296, -296,
+
+     -296, -296, -296, -296, -296, -296, -296, -296, -296, -296,
+     -296, -296,  305, -296, -296, -296, -296
+    },
+
+    {
+       15, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297,  306,
+     -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
+     -297, -297, -297, -297, -297, -297, -297, -297,  306, -297,
+     -297, -297, -297, -297, -297, -297, -297
+    },
+
+    {
+       15,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  299,  307,  307,  307,  307,
+
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307
+    },
+
+    {
+       15, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
+     -299, -299, -299, -299, -299, -299, -299
+
+    },
+
+    {
+       15, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300,  308, -300,
+     -300, -300, -300, -300, -300, -300, -300, -300, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300,  308, -300, -300,
+     -300, -300, -300, -300, -300, -300, -300
+    },
+
+    {
+       15, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301,  309,
+     -301, -301, -301, -301, -301, -301, -301, -301, -301, -301,
+
+     -301, -301, -301, -301, -301, -301, -301, -301,  309, -301,
+     -301, -301, -301, -301, -301, -301, -301
+    },
+
+    {
+       15, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302,  310, -302, -302, -302, -302, -302, -302,
+     -302, -302, -302, -302, -302, -302, -302, -302, -302, -302,
+     -302, -302,  310, -302, -302, -302, -302
+    },
+
+    {
+       15,   72,   72,   72,  311,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,  312,   72,   72,   72,   72,
+
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   72
+    },
+
+    {
+       15, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304,  313, -304, -304, -304, -304, -304, -304,
+     -304, -304, -304, -304, -304, -304, -304, -304, -304, -304,
+     -304, -304,  313, -304, -304, -304, -304
+
+    },
+
+    {
+       15, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305,  314, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305,  314, -305,
+     -305, -305, -305, -305, -305, -305, -305, -305, -305, -305,
+     -305, -305, -305, -305, -305, -305, -305
+    },
+
+    {
+       15, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306, -306,  315, -306, -306, -306, -306, -306, -306,
+
+     -306, -306, -306, -306, -306, -306, -306, -306, -306, -306,
+     -306, -306,  315, -306, -306, -306, -306
+    },
+
+    {
+       15,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  299,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307,  307,  307,  307,
+      307,  307,  307,  307,  307,  307,  307
+    },
+
+    {
+       15, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+
+     -308, -308, -308, -308, -308, -308, -308, -308, -308,  316,
+     -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
+     -308, -308, -308, -308, -308, -308, -308, -308,  316, -308,
+     -308, -308, -308, -308, -308, -308, -308
+    },
+
+    {
+       15, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309,  317, -309, -309, -309, -309, -309, -309,
+     -309, -309, -309, -309, -309, -309, -309, -309, -309, -309,
+     -309, -309,  317, -309, -309, -309, -309
+
+    },
+
+    {
+       15, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310,  318, -310, -310, -310, -310, -310, -310, -310, -310,
+     -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
+      318, -310, -310, -310, -310, -310, -310
+    },
+
+    {
+       15,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  312,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+
+      319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  319,  319
+    },
+
+    {
+       15, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312, -312, -312, -312,
+     -312, -312, -312, -312, -312, -312, -312
+    },
+
+    {
+       15, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+
+     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313,  320, -313, -313, -313, -313, -313, -313, -313, -313,
+     -313, -313, -313, -313, -313, -313, -313, -313, -313, -313,
+      320, -313, -313, -313, -313, -313, -313
+    },
+
+    {
+       15, -314, -314, -314,  321, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314,  322, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314, -314, -314, -314,
+     -314, -314, -314, -314, -314, -314, -314
+
+    },
+
+    {
+       15, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315,  323, -315, -315, -315, -315, -315, -315, -315, -315,
+     -315, -315, -315, -315, -315, -315, -315, -315, -315, -315,
+      323, -315, -315, -315, -315, -315, -315
+    },
+
+    {
+       15, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316, -316,  324, -316, -316, -316, -316, -316, -316,
+
+     -316, -316, -316, -316, -316, -316, -316, -316, -316, -316,
+     -316, -316,  324, -316, -316, -316, -316
+    },
+
+    {
+       15, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317,  325, -317, -317, -317, -317, -317, -317, -317, -317,
+     -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
+      325, -317, -317, -317, -317, -317, -317
+    },
+
+    {
+       15, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318,  326, -318, -318,
+
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318,  326, -318,
+     -318, -318, -318, -318, -318, -318, -318, -318, -318, -318,
+     -318, -318, -318, -318, -318, -318, -318
+    },
+
+    {
+       15,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  312,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  319,  319,  319,  319,  319,
+      319,  319,  319,  319,  319,  319,  319
+
+    },
+
+    {
+       15, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320, -320, -320, -320, -320,  327, -320, -320,
+     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320, -320, -320, -320, -320, -320,  327, -320,
+     -320, -320, -320, -320, -320, -320, -320, -320, -320, -320,
+     -320, -320, -320, -320, -320, -320, -320
+    },
+
+    {
+       15,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  322,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328
+    },
+
+    {
+       15, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322, -322, -322, -322,
+     -322, -322, -322, -322, -322, -322, -322
+    },
+
+    {
+       15, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323,  329, -323, -323,
+
+     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323, -323,  329, -323,
+     -323, -323, -323, -323, -323, -323, -323, -323, -323, -323,
+     -323, -323, -323, -323, -323, -323, -323
+    },
+
+    {
+       15, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324,  330, -324, -324, -324, -324, -324, -324, -324, -324,
+     -324, -324, -324, -324, -324, -324, -324, -324, -324, -324,
+      330, -324, -324, -324, -324, -324, -324
+
+    },
+
+    {
+       15, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325,  331, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325,  331, -325,
+     -325, -325, -325, -325, -325, -325, -325, -325, -325, -325,
+     -325, -325, -325, -325, -325, -325, -325
+    },
+
+    {
+       15, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326,  332, -326,
+     -326, -326, -326, -326, -326, -326, -326, -326, -326, -326,
+
+     -326, -326, -326, -326, -326, -326, -326,  332, -326, -326,
+     -326, -326, -326, -326, -326, -326, -326
+    },
+
+    {
+       15, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327,  333, -327,
+     -327, -327, -327, -327, -327, -327, -327, -327, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327,  333, -327, -327,
+     -327, -327, -327, -327, -327, -327, -327
+    },
+
+    {
+       15,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  322,  328,  328,  328,  328,
+
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328
+    },
+
+    {
+       15, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329,  334, -329,
+     -329, -329, -329, -329, -329, -329, -329, -329, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329,  334, -329, -329,
+     -329, -329, -329, -329, -329, -329, -329
+
+    },
+
+    {
+       15, -330, -330, -330, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330, -330, -330, -330, -330,  335, -330, -330,
+     -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330, -330, -330, -330, -330, -330,  335, -330,
+     -330, -330, -330, -330, -330, -330, -330, -330, -330, -330,
+     -330, -330, -330, -330, -330, -330, -330
+    },
+
+    {
+       15, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+     -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+     -331, -331, -331, -331, -331, -331, -331, -331,  336, -331,
+     -331, -331, -331, -331, -331, -331, -331, -331, -331, -331,
+
+     -331, -331, -331, -331, -331, -331, -331,  336, -331, -331,
+     -331, -331, -331, -331, -331, -331, -331
+    },
+
+    {
+       15, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332,  337, -332, -332, -332, -332, -332, -332, -332,
+     -332, -332, -332, -332, -332, -332, -332, -332, -332, -332,
+     -332,  337, -332, -332, -332, -332, -332
+    },
+
+    {
+       15, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+
+     -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333,  338, -333, -333, -333, -333, -333, -333, -333,
+     -333, -333, -333, -333, -333, -333, -333, -333, -333, -333,
+     -333,  338, -333, -333, -333, -333, -333
+    },
+
+    {
+       15, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334,  339, -334, -334, -334, -334, -334, -334, -334,
+     -334, -334, -334, -334, -334, -334, -334, -334, -334, -334,
+     -334,  339, -334, -334, -334, -334, -334
+
+    },
+
+    {
+       15, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335, -335, -335, -335, -335, -335,  340, -335,
+     -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
+     -335, -335, -335, -335, -335, -335, -335,  340, -335, -335,
+     -335, -335, -335, -335, -335, -335, -335
+    },
+
+    {
+       15, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336, -336,  341, -336, -336, -336, -336, -336, -336, -336,
+
+     -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
+     -336,  341, -336, -336, -336, -336, -336
+    },
+
+    {
+       15, -337, -337, -337,  342, -337, -337, -337,  343, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337, -337, -337, -337,
+     -337, -337, -337, -337, -337, -337, -337
+    },
+
+    {
+       15, -338, -338, -338,  344, -338, -338, -338,  345, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338, -338, -338, -338,
+     -338, -338, -338, -338, -338, -338, -338
+    },
+
+    {
+       15, -339, -339, -339,  346, -339, -339, -339,  347, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339, -339, -339, -339,
+     -339, -339, -339, -339, -339, -339, -339
+
+    },
+
+    {
+       15, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340,  348, -340, -340, -340, -340, -340, -340, -340,
+     -340, -340, -340, -340, -340, -340, -340, -340, -340, -340,
+     -340,  348, -340, -340, -340, -340, -340
+    },
+
+    {
+       15, -341, -341, -341,  349, -341, -341, -341,  350, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+
+     -341, -341, -341, -341, -341, -341, -341, -341, -341, -341,
+     -341, -341, -341, -341, -341, -341, -341
+    },
+
+    {
+       15,  351,  351,  351,  351,  351,  351,  351,  352,  351,
+      351,  351,  351,  351,  351, -342,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351
+    },
+
+    {
+       15, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+
+     -343, -343,  353, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343,  353, -343, -343, -343, -343, -343, -343, -343,
+     -343, -343, -343, -343, -343, -343, -343
+    },
+
+    {
+       15,  354,  354,  354,  354,  354,  354,  354,  355,  354,
+      354,  354,  354,  354,  354, -344,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354
+
+    },
+
+    {
+       15, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345,  356, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345,  356, -345, -345, -345, -345, -345, -345, -345,
+     -345, -345, -345, -345, -345, -345, -345
+    },
+
+    {
+       15,  357,  357,  357,  357,  357,  357,  357,  358,  357,
+      357,  357,  357,  357,  357, -346,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357
+    },
+
+    {
+       15, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347,  359, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347,  359, -347, -347, -347, -347, -347, -347, -347,
+     -347, -347, -347, -347, -347, -347, -347
+    },
+
+    {
+       15, -348, -348, -348, -348, -348, -348, -348,  360, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348, -348, -348, -348,
+     -348, -348, -348, -348, -348, -348, -348
+    },
+
+    {
+       15,  361,  361,  361,  361,  361,  361,  361,  362,  361,
+      361,  361,  361,  361,  361, -349,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361
+
+    },
+
+    {
+       15, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350,  363, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350,  363, -350, -350, -350, -350, -350, -350, -350,
+     -350, -350, -350, -350, -350, -350, -350
+    },
+
+    {
+       15,  351,  351,  351,  351,  351,  351,  351,  352,  351,
+      351,  351,  351,  351,  351, -351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351
+    },
+
+    {
+       15,  351,  351,  351,  351,  351,  351,  351,  352,  351,
+      351,  351,  351,  351,  351, -352,  351,  351,  351,  351,
+      351,  351,  364,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  364,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351
+    },
+
+    {
+       15, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353,  365, -353, -353, -353, -353, -353, -353,
+     -353, -353, -353, -353, -353, -353, -353, -353, -353, -353,
+     -353, -353,  365, -353, -353, -353, -353
+    },
+
+    {
+       15,  354,  354,  354,  354,  354,  354,  354,  355,  354,
+      354,  354,  354,  354,  354, -354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354
+
+    },
+
+    {
+       15,  354,  354,  354,  354,  354,  354,  354,  355,  354,
+      354,  354,  354,  354,  354, -355,  354,  354,  354,  354,
+      354,  354,  366,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  366,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354
+    },
+
+    {
+       15, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356, -356,  367, -356, -356, -356, -356, -356, -356,
+
+     -356, -356, -356, -356, -356, -356, -356, -356, -356, -356,
+     -356, -356,  367, -356, -356, -356, -356
+    },
+
+    {
+       15,  357,  357,  357,  357,  357,  357,  357,  358,  357,
+      357,  357,  357,  357,  357, -357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357
+    },
+
+    {
+       15,  357,  357,  357,  357,  357,  357,  357,  358,  357,
+      357,  357,  357,  357,  357, -358,  357,  357,  357,  357,
+
+      357,  357,  368,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  368,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357
+    },
+
+    {
+       15, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359,  369, -359, -359, -359, -359, -359, -359,
+     -359, -359, -359, -359, -359, -359, -359, -359, -359, -359,
+     -359, -359,  369, -359, -359, -359, -359
+
+    },
+
+    {
+       15, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360,  370, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360,  370, -360, -360, -360, -360, -360, -360, -360,
+     -360, -360, -360, -360, -360, -360, -360
+    },
+
+    {
+       15,  361,  361,  361,  361,  361,  361,  361,  362,  361,
+      361,  361,  361,  361,  361, -361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361
+    },
+
+    {
+       15,  361,  361,  361,  361,  361,  361,  361,  362,  361,
+      361,  361,  361,  361,  361, -362,  361,  361,  361,  361,
+      361,  361,  371,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  371,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361
+    },
+
+    {
+       15, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363,  372, -363, -363, -363, -363, -363, -363,
+     -363, -363, -363, -363, -363, -363, -363, -363, -363, -363,
+     -363, -363,  372, -363, -363, -363, -363
+    },
+
+    {
+       15,  351,  351,  351,  351,  351,  351,  351,  352,  351,
+      351,  351,  351,  351,  351, -364,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  373,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  373,  351,  351,  351,  351
+
+    },
+
+    {
+       15, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365,  374, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365, -365, -365, -365,
+     -365, -365, -365, -365, -365, -365, -365
+    },
+
+    {
+       15,  354,  354,  354,  354,  354,  354,  354,  355,  354,
+      354,  354,  354,  354,  354, -366,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  375,  354,  354,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  375,  354,  354,  354,  354
+    },
+
+    {
+       15, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367,  376, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
+     -367, -367, -367, -367, -367, -367, -367
+    },
+
+    {
+       15,  357,  357,  357,  357,  357,  357,  357,  358,  357,
+      357,  357,  357,  357,  357, -368,  357,  357,  357,  357,
+
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  377,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  377,  357,  357,  357,  357
+    },
+
+    {
+       15, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369,  378, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369, -369, -369, -369,
+     -369, -369, -369, -369, -369, -369, -369
+
+    },
+
+    {
+       15, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370,  379, -370, -370, -370, -370, -370, -370,
+     -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
+     -370, -370,  379, -370, -370, -370, -370
+    },
+
+    {
+       15,  361,  361,  361,  361,  361,  361,  361,  362,  361,
+      361,  361,  361,  361,  361, -371,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  380,  361,  361,  361,  361,  361,  361,
+
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  380,  361,  361,  361,  361
+    },
+
+    {
+       15, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372,  381, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372, -372, -372, -372,
+     -372, -372, -372, -372, -372, -372, -372
+    },
+
+    {
+       15,  351,  351,  351,  351,  351,  351,  351,  352,  351,
+      351,  351,  351,  382,  351, -373,  351,  351,  351,  351,
+
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351
+    },
+
+    {
+       15, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+     -374, -374, -374, -374, -374, -374, -374
+
+    },
+
+    {
+       15,  354,  354,  354,  354,  354,  354,  354,  355,  354,
+      354,  354,  354,  383,  354, -375,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354
+    },
+
+    {
+       15, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+
+     -376, -376, -376, -376, -376, -376, -376, -376, -376, -376,
+     -376, -376, -376, -376, -376, -376, -376
+    },
+
+    {
+       15,  357,  357,  357,  357,  357,  357,  357,  358,  357,
+      357,  357,  357,  384,  357, -377,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357
+    },
+
+    {
+       15, -378, -378, -378, -378, -378, -378, -378, -378, -378,
+     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
+
+     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
+     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
+     -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
+     -378, -378, -378, -378, -378, -378, -378
+    },
+
+    {
+       15, -379, -379, -379, -379, -379, -379, -379, -379, -379,
+     -379, -379, -379,  385, -379, -379, -379, -379, -379, -379,
+     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
+     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
+     -379, -379, -379, -379, -379, -379, -379, -379, -379, -379,
+     -379, -379, -379, -379, -379, -379, -379
+
+    },
+
+    {
+       15,  361,  361,  361,  361,  361,  361,  361,  362,  361,
+      361,  361,  361,  386,  361, -380,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361
+    },
+
+    {
+       15, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+
+     -381, -381, -381, -381, -381, -381, -381, -381, -381, -381,
+     -381, -381, -381, -381, -381, -381, -381
+    },
+
+    {
+       15,  351,  351,  351,  351,  351,  351,  351,  352,  351,
+      351,  351,  351,  351,  351, -382,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351,  351,  351,  351,
+      351,  351,  351,  351,  351,  351,  351
+    },
+
+    {
+       15,  354,  354,  354,  354,  354,  354,  354,  355,  354,
+      354,  354,  354,  354,  354, -383,  354,  354,  354,  354,
+
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
+      354,  354,  354,  354,  354,  354,  354
+    },
+
+    {
+       15,  357,  357,  357,  357,  357,  357,  357,  358,  357,
+      357,  357,  357,  357,  357, -384,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  357
+
+    },
+
+    {
+       15, -385, -385, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385, -385, -385, -385, -385, -385, -385, -385, -385,
+     -385, -385, -385, -385, -385, -385, -385
+    },
+
+    {
+       15,  361,  361,  361,  361,  361,  361,  361,  362,  361,
+      361,  361,  361,  361,  361, -386,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+
+      361,  361,  361,  361,  361,  361,  361,  361,  361,  361,
+      361,  361,  361,  361,  361,  361,  361
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 39
+#define YY_END_OF_BUFFER 40
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[387] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   40,   38,   36,   36,   37,   38,
+       36,    2,    2,    5,    5,   10,   10,   10,   15,   15,
+       15,   18,   18,   18,   23,   23,   23,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   35,    0,    0,    0,    0,
+        0,    0,   33,    0,    0,    0,    1,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   35,   24,    0,   32,    0,
+
+       34,    0,    0,    0,    0,    0,    0,    3,    0,    0,
+        6,    0,    0,    0,   11,    0,    0,    0,   16,    0,
+       19,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   30,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   31,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   29,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   25,    0,    0,    0,    0,
+        0,    0,    7,    0,    0,    0,   12,    0,    0,    0,
+       22,    0,   20,    0,    0,    0,    0,   27,    0,    4,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   14,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   26,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    9,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   28,    0,    8,    0,   13,    0,    0,
+       21,   28,    8,   13,   17,   21
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    4,    5,    1,    6,    7,    1,    8,    1,    1,
+        1,    1,    1,    1,    9,    1,   10,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   12,   13,   14,
+        1,   15,   16,    7,   17,   18,   19,   20,   21,   19,
+       22,   23,   24,   23,   25,   26,   27,   28,   29,   30,
+       23,   31,   32,   33,   34,   23,   35,   36,   37,   23,
+        7,    7,    7,    7,    1,    1,   38,   39,   19,   40,
+
+       41,   19,   42,   23,   43,   23,   44,   45,   46,   47,
+       48,   49,   23,   50,   51,   52,   53,   23,   54,   55,
+       56,   23,    7,    1,    7,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_deswxml.cctmp"
+#line 4 "apertium_deswxml.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/${}]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+map<string, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution["'"] = L"'";
+}
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 4452 "apertium_deswxml.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+#define C4 4
+#define C5 5
+#define C6 6
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 272 "apertium_deswxml.cctmp"
+
+
+
+#line 4663 "apertium_deswxml.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 277 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 283 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 292 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 296 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 302 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 6:
+YY_RULE_SETUP
+#line 311 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 7:
+/* rule 7 can match eol */
+YY_RULE_SETUP
+#line 315 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 319 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 9:
+/* rule 9 can match eol */
+YY_RULE_SETUP
+#line 323 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 10:
+/* rule 10 can match eol */
+YY_RULE_SETUP
+#line 329 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 11:
+YY_RULE_SETUP
+#line 338 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 12:
+/* rule 12 can match eol */
+YY_RULE_SETUP
+#line 342 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 13:
+/* rule 13 can match eol */
+YY_RULE_SETUP
+#line 346 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 14:
+/* rule 14 can match eol */
+YY_RULE_SETUP
+#line 350 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 15:
+/* rule 15 can match eol */
+YY_RULE_SETUP
+#line 356 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 16:
+YY_RULE_SETUP
+#line 365 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 369 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 18:
+/* rule 18 can match eol */
+YY_RULE_SETUP
+#line 375 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 19:
+YY_RULE_SETUP
+#line 384 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 388 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 21:
+/* rule 21 can match eol */
+YY_RULE_SETUP
+#line 392 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 396 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 23:
+/* rule 23 can match eol */
+YY_RULE_SETUP
+#line 402 "apertium_deswxml.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 24:
+YY_RULE_SETUP
+#line 408 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 25:
+/* rule 25 can match eol */
+YY_RULE_SETUP
+#line 412 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 416 "apertium_deswxml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 27:
+/* rule 27 can match eol */
+YY_RULE_SETUP
+#line 421 "apertium_deswxml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C4);
+}
+	YY_BREAK
+case 28:
+/* rule 28 can match eol */
+YY_RULE_SETUP
+#line 426 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C5);
+}
+	YY_BREAK
+case 29:
+/* rule 29 can match eol */
+YY_RULE_SETUP
+#line 430 "apertium_deswxml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C6);
+}
+	YY_BREAK
+case 30:
+/* rule 30 can match eol */
+YY_RULE_SETUP
+#line 435 "apertium_deswxml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 31:
+/* rule 31 can match eol */
+YY_RULE_SETUP
+#line 439 "apertium_deswxml.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 32:
+/* rule 32 can match eol */
+YY_RULE_SETUP
+#line 443 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 33:
+/* rule 33 can match eol */
+YY_RULE_SETUP
+#line 446 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 34:
+/* rule 34 can match eol */
+YY_RULE_SETUP
+#line 449 "apertium_deswxml.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 453 "apertium_deswxml.cctmp"
+{
+  if(S1_substitution.find(yytext) != S1_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
+    offset+=S1_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 36:
+/* rule 36 can match eol */
+YY_RULE_SETUP
+#line 467 "apertium_deswxml.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 475 "apertium_deswxml.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 495 "apertium_deswxml.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+case YY_STATE_EOF(C4):
+case YY_STATE_EOF(C5):
+case YY_STATE_EOF(C6):
+#line 520 "apertium_deswxml.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 527 "apertium_deswxml.cctmp"
+ECHO;
+	YY_BREAK
+#line 5125 "apertium_deswxml.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 527 "apertium_deswxml.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  S1_init();
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_desxlsx.cc b/apertium/apertium_desxlsx.cc
new file mode 100644
index 0000000..a5dd13d
--- /dev/null
+++ b/apertium/apertium_desxlsx.cc
@@ -0,0 +1,3403 @@
+#line 2 "apertium_desxlsx.cc"
+
+#line 4 "apertium_desxlsx.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][48] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        9,   10,   11,   12,   11,   10,   10,   13,   14,   10,
+       13,   10,   10,   15,   11,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10
+
+    },
+
+    {
+        9,   10,   11,   12,   11,   10,   10,   13,   14,   10,
+       13,   10,   10,   15,   11,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
+       10,   10,   10,   10,   10,   10,   10,   10
+    },
+
+    {
+        9,   16,   16,   16,   16,   16,   16,   16,   16,   17,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16
+
+    },
+
+    {
+        9,   16,   16,   16,   16,   16,   16,   16,   16,   17,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+       16,   16,   16,   16,   16,   16,   16,   16
+    },
+
+    {
+        9,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   19,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18
+
+    },
+
+    {
+        9,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   19,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,   18
+    },
+
+    {
+        9,   20,   20,   20,   20,   20,   20,   20,   21,   20,
+       20,   20,   20,   22,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20
+
+    },
+
+    {
+        9,   20,   20,   20,   20,   20,   20,   20,   21,   20,
+       20,   20,   20,   22,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
+       20,   20,   20,   20,   20,   20,   20,   20
+    },
+
+    {
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9
+
+    },
+
+    {
+        9,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10
+    },
+
+    {
+        9,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11
+
+    },
+
+    {
+        9,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        9,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+
+    },
+
+    {
+        9,  -14,  -14,  -14,  -14,  -14,   23,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,   24,   24,   24,   24,
+       24,   24,   24,   25,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   25,   24,
+       24,   24,   24,   24,   24,   24,   24,   24
+    },
+
+    {
+        9,  -15,  -15,  -15,  -15,   26,  -15,  -15,  -15,  -15,
+       27,  -15,  -15,  -15,  -15,   28,   29,   29,   29,   30,
+       29,   29,   29,   29,   29,   29,   29,   29,   29,   31,
+       29,   29,   29,   29,   29,   30,   29,   29,   29,   29,
+       29,   29,   29,   29,   31,   29,   29,   29
+
+    },
+
+    {
+        9,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    {
+        9,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,   32,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17
+
+    },
+
+    {
+        9,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18
+    },
+
+    {
+        9,  -19,  -19,  -19,  -19,   33,  -19,  -19,  -19,  -19,
+       34,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19
+
+    },
+
+    {
+        9,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20
+    },
+
+    {
+        9,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,   35,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,   35,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21
+
+    },
+
+    {
+        9,  -22,  -22,  -22,  -22,   36,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22
+    },
+
+    {
+        9,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,   37,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,   38,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,   38
+
+    },
+
+    {
+        9,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,   39,  -24,  -24,  -24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24
+    },
+
+    {
+        9,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,   39,  -25,  -25,  -25,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       40,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   40,   24,   24
+
+    },
+
+    {
+        9,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,   41,
+      -26,  -26,  -26,  -26,  -26,  -26,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42
+    },
+
+    {
+        9,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,   43,   43,   43,   43,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   44,
+       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
+       43,   43,   43,   43,   44,   43,   43,   43
+
+    },
+
+    {
+        9,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
+       42,   42,   42,   42,   42,   42,   42,   42
+    },
+
+    {
+        9,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   46,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45
+
+    },
+
+    {
+        9,   45,   45,   45,   47,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   48,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45
+    },
+
+    {
+        9,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   46,   45,   45,   45,   45,   45,
+       45,   45,   49,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   49,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45
+
+    },
+
+    {
+        9,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,   50,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32
+    },
+
+    {
+        9,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,   51,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33
+
+    },
+
+    {
+        9,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,   52,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,   52,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34
+    },
+
+    {
+        9,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+       53,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,   53,  -35,  -35
+
+    },
+
+    {
+        9,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,   54,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36
+    },
+
+    {
+        9,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,   55,   39,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37
+
+    },
+
+    {
+        9,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,   56,  -38,  -38,  -38,  -38,   56,   56,   56,   56,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,   56,   56,   56,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38
+    },
+
+    {
+        9,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39
+
+    },
+
+    {
+        9,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,   57,  -40,  -40,  -40,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24
+    },
+
+    {
+        9,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,   58,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41
+
+    },
+
+    {
+        9,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   60,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59
+    },
+
+    {
+        9,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   62,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61
+
+    },
+
+    {
+        9,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   62,   61,   61,   61,   61,   61,
+       61,   61,   63,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   63,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61
+    },
+
+    {
+        9,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   46,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45
+
+    },
+
+    {
+        9,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46
+    },
+
+    {
+        9,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   48,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64
+
+    },
+
+    {
+        9,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48
+    },
+
+    {
+        9,   45,   45,   45,   65,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   66,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45
+
+    },
+
+    {
+        9,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50
+    },
+
+    {
+        9,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,   67,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51
+
+    },
+
+    {
+        9,  -52,  -52,  -52,   68,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,   69,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52
+    },
+
+    {
+        9,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,   70,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53
+
+    },
+
+    {
+        9,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,   71,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54
+    },
+
+    {
+        9,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,   72,   39,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55
+
+    },
+
+    {
+        9,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,   73,   39,  -56,  -56,  -56,   73,   73,   73,   73,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,   73,   73,   73,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56
+    },
+
+    {
+        9,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,   74,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,   74,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57
+
+    },
+
+    {
+        9,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58
+    },
+
+    {
+        9,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   60,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   59
+
+    },
+
+    {
+        9,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60
+    },
+
+    {
+        9,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   62,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61
+
+    },
+
+    {
+        9,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62
+    },
+
+    {
+        9,   61,   61,   61,   75,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   76,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       61,   61,   61,   61,   61,   61,   61,   61
+
+    },
+
+    {
+        9,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   48,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
+       64,   64,   64,   64,   64,   64,   64,   64
+    },
+
+    {
+        9,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   66,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   77,   77,   77
+
+    },
+
+    {
+        9,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66
+    },
+
+    {
+        9,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67
+
+    },
+
+    {
+        9,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   69,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   78,   78,   78,   78
+    },
+
+    {
+        9,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69
+
+    },
+
+    {
+        9,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+       79,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70
+    },
+
+    {
+        9,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71
+
+    },
+
+    {
+        9,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,   80,   39,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72
+    },
+
+    {
+        9,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,   81,   39,  -73,  -73,  -73,   81,   81,   81,   81,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,   81,   81,   81,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73
+
+    },
+
+    {
+        9,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,   82,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,   82,  -74,  -74,  -74,  -74,  -74
+    },
+
+    {
+        9,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   76,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83
+
+    },
+
+    {
+        9,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76
+    },
+
+    {
+        9,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   66,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   77,   77,   77
+
+    },
+
+    {
+        9,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   69,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
+       78,   78,   78,   78,   78,   78,   78,   78
+    },
+
+    {
+        9,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,   84,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,   84,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79
+
+    },
+
+    {
+        9,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,   85,   39,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80
+    },
+
+    {
+        9,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,   86,   39,  -81,  -81,  -81,   86,   86,   86,   86,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,   86,   86,   86,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81
+
+    },
+
+    {
+        9,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,   87,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,   87,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82
+    },
+
+    {
+        9,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   76,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
+       83,   83,   83,   83,   83,   83,   83,   83
+
+    },
+
+    {
+        9,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,   88,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,   88,  -84,  -84,  -84,  -84,  -84
+    },
+
+    {
+        9,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,   89,   39,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85
+
+    },
+
+    {
+        9,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,   39,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86
+    },
+
+    {
+        9,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,   90,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,   90,  -87,  -87,  -87,  -87
+
+    },
+
+    {
+        9,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,   91,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,   91,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88
+    },
+
+    {
+        9,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,   92,   39,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89
+
+    },
+
+    {
+        9,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+       93,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,  -90,   93,  -90,  -90
+    },
+
+    {
+        9,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,   94,  -91,
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,   94,  -91,  -91,  -91,  -91
+
+    },
+
+    {
+        9,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,   95,   39,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92
+    },
+
+    {
+        9,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,   96,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,   96,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93
+
+    },
+
+    {
+        9,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+       97,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,   97,  -94,  -94
+    },
+
+    {
+        9,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,   39,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95
+
+    },
+
+    {
+        9,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,   98,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,   98,  -96
+    },
+
+    {
+        9,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,   99,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,   99,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97
+
+    },
+
+    {
+        9,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  100,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  100,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98
+    },
+
+    {
+        9,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  101,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  101,  -99
+
+    },
+
+    {
+        9, -100, -100, -100, -100, -100, -100, -100, -100,  102,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100
+    },
+
+    {
+        9, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101,  103, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101,  103,
+     -101, -101, -101, -101, -101, -101, -101, -101
+
+    },
+
+    {
+        9, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102,  104, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+      104, -102, -102, -102, -102, -102, -102, -102
+    },
+
+    {
+        9, -103, -103, -103, -103, -103, -103, -103, -103,  105,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103
+
+    },
+
+    {
+        9, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104,  106, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104,  106, -104, -104, -104, -104, -104, -104
+    },
+
+    {
+        9, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105,  107, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+      107, -105, -105, -105, -105, -105, -105, -105
+
+    },
+
+    {
+        9, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+      108, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106,  108, -106, -106
+    },
+
+    {
+        9, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107,  109, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107,  109, -107, -107, -107, -107, -107, -107
+
+    },
+
+    {
+        9, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108,  110, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108,  110, -108, -108, -108, -108
+    },
+
+    {
+        9, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+      111, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109,  111, -109, -109
+
+    },
+
+    {
+        9, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110,  112, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110,  112, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110
+    },
+
+    {
+        9, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111,  113, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111,  113, -111, -111, -111, -111
+
+    },
+
+    {
+        9, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112,  114, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+      114, -112, -112, -112, -112, -112, -112, -112
+    },
+
+    {
+        9, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113,  115, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113,  115, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113
+
+    },
+
+    {
+        9, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114,  116,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114,  116, -114, -114, -114
+    },
+
+    {
+        9, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115,  117, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+      117, -115, -115, -115, -115, -115, -115, -115
+
+    },
+
+    {
+        9, -116, -116, -116,  118, -116, -116, -116,  119, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116
+    },
+
+    {
+        9, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117,  120,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117,  120, -117, -117, -117
+
+    },
+
+    {
+        9,  121,  121,  121,  121,  121,  121,  121,  122,  121,
+      121,  121,  121,  121, -118,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121
+    },
+
+    {
+        9, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+      123, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119,  123, -119, -119, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119
+
+    },
+
+    {
+        9, -120, -120, -120, -120, -120, -120, -120,  124, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120
+    },
+
+    {
+        9,  121,  121,  121,  121,  121,  121,  121,  122,  121,
+      121,  121,  121,  121, -121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121
+
+    },
+
+    {
+        9,  121,  121,  121,  121,  121,  121,  121,  122,  121,
+      121,  121,  121,  121, -122,  121,  121,  121,  121,  121,
+      125,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  125,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121
+    },
+
+    {
+        9, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+      126, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123,  126, -123, -123
+
+    },
+
+    {
+        9, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+      127, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124,  127, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124
+    },
+
+    {
+        9,  121,  121,  121,  121,  121,  121,  121,  122,  121,
+      121,  121,  121,  121, -125,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      128,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  128,  121,  121
+
+    },
+
+    {
+        9, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126,  129, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126
+    },
+
+    {
+        9, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+      130, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127, -127,  130, -127, -127
+
+    },
+
+    {
+        9,  121,  121,  121,  121,  121,  121,  121,  122,  121,
+      121,  121,  131,  121, -128,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121
+    },
+
+    {
+        9, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129
+
+    },
+
+    {
+        9, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130,  132, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130
+    },
+
+    {
+        9,  121,  121,  121,  121,  121,  121,  121,  122,  121,
+      121,  121,  121,  121, -131,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
+      121,  121,  121,  121,  121,  121,  121,  121
+
+    },
+
+    {
+        9, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 21
+#define YY_END_OF_BUFFER 22
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[133] =
+    {   0,
+        0,    0,    0,    0,    0,    0,    0,    0,   22,   20,
+       18,   18,   19,   20,   18,    2,    2,    5,    5,    8,
+        8,    8,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
+        0,    0,    0,    0,    0,   15,    0,   10,    0,    1,
+        0,    0,    0,    0,    0,    0,   17,    9,    0,   13,
+        0,   16,    0,    0,    0,   11,    3,    0,    4,    0,
+        6,    0,    0,    0,    0,   12,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   14,    0,
+       14,    7
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    4,    5,    1,    6,    7,    1,    8,    1,    1,
+        1,    1,    1,    1,    9,    1,   10,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,    1,   12,   13,
+        1,   14,   15,    7,   16,   17,   17,   17,   18,   19,
+       20,   21,   22,   21,   21,   23,   24,   25,   26,   27,
+       21,   28,   29,   30,   31,   21,   21,   32,   21,   21,
+        7,    7,    7,    7,    1,    1,   33,   17,   17,   17,
+
+       34,   35,   36,   21,   37,   21,   21,   38,   39,   40,
+       41,   42,   21,   43,   44,   45,   46,   21,   21,   47,
+       21,   21,    7,    1,    7,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_desxlsx.cctmp"
+#line 4 "apertium_desxlsx.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/${}]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+map<string, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution["'"] = L"'";
+}
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+
+#line 1840 "apertium_desxlsx.cc"
+
+#define INITIAL 0
+#define C1 1
+#define C2 2
+#define C3 3
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 272 "apertium_desxlsx.cctmp"
+
+
+
+#line 2048 "apertium_desxlsx.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 277 "apertium_desxlsx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 283 "apertium_desxlsx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 3:
+YY_RULE_SETUP
+#line 292 "apertium_desxlsx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 296 "apertium_desxlsx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 302 "apertium_desxlsx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+
+case 6:
+YY_RULE_SETUP
+#line 311 "apertium_desxlsx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 315 "apertium_desxlsx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+  yy_pop_state();
+}
+	YY_BREAK
+case 8:
+/* rule 8 can match eol */
+YY_RULE_SETUP
+#line 321 "apertium_desxlsx.cctmp"
+{
+  last = "buffer";
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+
+case 9:
+YY_RULE_SETUP
+#line 327 "apertium_desxlsx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C1);
+}
+	YY_BREAK
+case 10:
+/* rule 10 can match eol */
+YY_RULE_SETUP
+#line 331 "apertium_desxlsx.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+  yy_push_state(C2);
+}
+	YY_BREAK
+case 11:
+/* rule 11 can match eol */
+YY_RULE_SETUP
+#line 336 "apertium_desxlsx.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 12:
+/* rule 12 can match eol */
+YY_RULE_SETUP
+#line 340 "apertium_desxlsx.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 13:
+/* rule 13 can match eol */
+YY_RULE_SETUP
+#line 344 "apertium_desxlsx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 14:
+/* rule 14 can match eol */
+YY_RULE_SETUP
+#line 347 "apertium_desxlsx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+  yy_push_state(C3);
+}
+	YY_BREAK
+case 15:
+/* rule 15 can match eol */
+YY_RULE_SETUP
+#line 351 "apertium_desxlsx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 16:
+/* rule 16 can match eol */
+YY_RULE_SETUP
+#line 354 "apertium_desxlsx.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 358 "apertium_desxlsx.cctmp"
+{
+  if(S1_substitution.find(yytext) != S1_substitution.end())
+  {
+    printBuffer();
+    fputws_unlocked(S1_substitution[yytext].c_str(), yyout);
+    offset+=S1_substitution[yytext].size();
+    hasWrite_dot = hasWrite_white = true;
+  }
+  else
+  {
+    last="buffer";
+    bufferAppend(buffer, yytext);
+  }
+}
+	YY_BREAK
+case 18:
+/* rule 18 can match eol */
+YY_RULE_SETUP
+#line 372 "apertium_desxlsx.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 380 "apertium_desxlsx.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 400 "apertium_desxlsx.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(C1):
+case YY_STATE_EOF(C2):
+case YY_STATE_EOF(C3):
+#line 425 "apertium_desxlsx.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 432 "apertium_desxlsx.cctmp"
+ECHO;
+	YY_BREAK
+#line 2337 "apertium_desxlsx.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 432 "apertium_desxlsx.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  S1_init();
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_desxpresstag.cc b/apertium/apertium_desxpresstag.cc
new file mode 100644
index 0000000..d2dba49
--- /dev/null
+++ b/apertium/apertium_desxpresstag.cc
@@ -0,0 +1,2277 @@
+#line 2 "apertium_desxpresstag.cc"
+
+#line 4 "apertium_desxpresstag.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][13] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0
+    },
+
+    {
+        3,    4,    5,    6,    7,    4,    4,    8,    4,    5,
+        9,    7,    7
+    },
+
+    {
+        3,    4,    5,    6,    7,    4,    4,    8,    4,    5,
+        9,    7,    7
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,
+       -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4,
+       -4,   -4,   -4
+
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,   -5,
+       -5,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,   -6,
+       -6,   -6,   -6
+    },
+
+    {
+        3,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7
+    },
+
+    {
+        3,   10,   10,   10,   10,   11,   10,   10,   10,   -8,
+       10,   10,   10
+    },
+
+    {
+        3,   12,   12,   12,   12,   12,   13,   -9,   14,   12,
+       12,   12,   12
+
+    },
+
+    {
+        3,   10,   10,   10,   10,   15,   10,   10,   10,   16,
+       10,   10,   10
+    },
+
+    {
+        3,   11,   11,   11,   11,   11,   11,   11,   11,   16,
+       11,   11,   11
+    },
+
+    {
+        3,   12,   12,   12,   12,   12,   17,  -12,   18,   12,
+       12,   12,   12
+    },
+
+    {
+        3,   13,   13,   13,   13,   13,   13,  -13,   19,   13,
+       13,   13,   13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   20,  -14,   14,   14,
+       14,   14,   14
+
+    },
+
+    {
+        3,   11,   11,   11,   11,   11,   11,   11,   11,   21,
+       11,   11,   11
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16
+    },
+
+    {
+        3,   13,   13,   13,   13,   13,   13,  -17,   19,   13,
+       13,   13,   13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   20,  -18,   14,   14,
+       14,   22,   14
+    },
+
+    {
+        3,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,   23,  -19
+
+    },
+
+    {
+        3,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20
+    },
+
+    {
+        3,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21
+    },
+
+    {
+        3,   24,   24,   24,   24,   24,   25,   26,   24,   24,
+       24,   24,   14
+    },
+
+    {
+        3,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,  -23
+    },
+
+    {
+        3,   24,   24,   24,   24,   24,   25,   26,   24,   24,
+       24,   24,   27
+
+    },
+
+    {
+        3,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   28
+    },
+
+    {
+        3,   26,   26,   26,   26,   26,   26,   26,   26,   26,
+       26,   26,   28
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   20,  -27,   14,   14,
+       14,   14,   14
+    },
+
+    {
+        3,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 9
+#define YY_END_OF_BUFFER 10
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[29] =
+    {   0,
+        0,    0,   10,    8,    6,    6,    7,    6,    7,    0,
+        0,    0,    0,    0,    0,    2,    3,    4,    4,    3,
+        1,    0,    0,    0,    3,    0,    5,    5
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    1,    1,    1,    4,    1,    1,    1,    1,
+        1,    2,    1,    1,    5,    1,    4,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    6,    1,    7,
+        8,    9,    1,   10,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+       11,    4,   12,    4,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    4,    1,    4,    2,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_desxpresstag.cctmp"
+#line 4 "apertium_desxpresstag.cctmp"
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+wstring buffer;
+string symbuf;
+bool isDot, hasWrite_dot, hasWrite_white;
+bool eosIncond;
+FILE *formatfile;
+string last;
+int current;
+long int offset;
+
+
+vector<long int> offsets;
+vector<wstring> tags;
+vector<int> orders;
+
+regex_t escape_chars;
+regex_t names_regexp;
+
+void bufferAppend(wstring &buf, string const &str)
+{
+  symbuf.append(str);
+
+  for(size_t i = 0, limit = symbuf.size(); i < limit;)
+  {
+    wchar_t symbol;
+    int gap = mbtowc(&symbol, symbuf.c_str() + i, MB_CUR_MAX);
+    if(gap == -1)
+    {
+      if(i + MB_CUR_MAX < limit)
+      {
+        buf += L'?';
+        gap = 1;
+      }
+      else
+      {
+        symbuf = symbuf.substr(i);
+        return;
+      }
+    }
+    else
+    {
+      buf += symbol;
+    }
+
+    i += gap;
+  }
+
+  symbuf = "";
+  return;
+}
+
+
+void init_escape()
+{
+  if(regcomp(&escape_chars, "[][^@\\\\/${}]", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for escape characters" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+void init_tagNames()
+{
+  if(regcomp(&names_regexp, "[a-zA-Z]+", REG_EXTENDED))
+  {
+    cerr << "ERROR: Illegal regular expression for tag-names" << endl;
+    exit(EXIT_FAILURE);
+  }
+}
+
+string backslash(string const &str)
+{
+  string new_str;
+
+  for(unsigned int i = 0; i < str.size(); i++)
+  {
+    if(str[i] == '\\')
+    {
+      new_str += str[i];
+    }
+    new_str += str[i];
+  }
+
+  return new_str;
+}
+
+
+wstring escape(string const &str)
+{
+  regmatch_t pmatch;
+
+  char const *mystring = str.c_str();
+  int base = 0;
+  wstring result;
+
+  while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
+  {
+    bufferAppend(result, str.substr(base, pmatch.rm_so));
+    result += L'\\';
+    wchar_t micaracter;
+    int pos = mbtowc(&micaracter, str.c_str() + base + pmatch.rm_so, MB_CUR_MAX);
+    if(pos == -1)
+    {
+      wcerr << L"Uno" << endl;
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+
+    result += micaracter;
+    base += pmatch.rm_eo;
+  }
+
+  bufferAppend(result, str.substr(base));
+  return result;
+}
+
+wstring escape(wstring const &str)
+{
+  string dest;
+
+  for(size_t i = 0, limit = str.size(); i < limit; i++)
+  {
+#ifdef __GNUC__
+    char symbol[MB_CUR_MAX+1];
+#else
+    std::string _symbol(MB_CUR_MAX+1, 0);
+    char *symbol = &_symbol[0];
+#endif
+    int pos = wctomb(symbol, str[i]);
+    if(pos == -1)
+    {
+      symbol[0]='?';
+      pos = 1;
+    }
+    symbol[pos] = 0;
+    dest.append(symbol);
+  }
+  return escape(dest);
+}
+
+string get_tagName(string tag){
+  regmatch_t pmatch;
+
+  char const *mystring = tag.c_str();
+  string result;
+  if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
+  {
+    result=tag.substr(pmatch.rm_so, pmatch.rm_eo - pmatch.rm_so);
+    return result;
+  }
+
+  return "";
+}
+
+
+
+
+void preDot()
+{
+  if(eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+  }
+}
+
+void printBuffer()
+{
+  if(isDot && !eosIncond)
+  {
+    fputws_unlocked(L".[]", yyout);
+    isDot = false;
+  }
+  if(buffer.size() > 8192)
+  {
+    string filename = tmpnam(NULL);
+    FILE *largeblock = fopen(filename.c_str(), "w");
+    fputws_unlocked(buffer.c_str(), largeblock);
+    fclose(largeblock);
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    fputwc_unlocked(L'@', yyout);
+    wchar_t cad[filename.size()];
+    size_t pos = mbstowcs(cad, filename.c_str(), filename.size());
+    if(pos == (size_t) -1)
+    {
+      wcerr << L"Tres" << endl;
+
+      wcerr << L"Encoding error." << endl;
+      exit(EXIT_FAILURE);
+    }
+    cad[pos] = 0;
+    fputws_unlocked(cad, yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() > 1)
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+    fputwc_unlocked(L']', yyout);
+  }
+  else if(buffer.size() == 1 && buffer[0] != L' ')
+  {
+    preDot();
+    fputwc_unlocked(L'[', yyout);
+    wstring const tmp = escape(buffer);
+    if(tmp[0] == L'@')
+    {
+      fputwc_unlocked(L'\\', yyout);
+    }
+    fputws_unlocked(tmp.c_str(), yyout);
+
+    fputwc_unlocked(L']', yyout);
+  }
+  else
+  {
+    fputws_unlocked(buffer.c_str(), yyout);
+  }
+
+  buffer = L"";
+}
+  
+#line 841 "apertium_desxpresstag.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 266 "apertium_desxpresstag.cctmp"
+
+
+#line 1045 "apertium_desxpresstag.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+/* rule 1 can match eol */
+YY_RULE_SETUP
+#line 268 "apertium_desxpresstag.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 272 "apertium_desxpresstag.cctmp"
+{
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 3:
+/* rule 3 can match eol */
+YY_RULE_SETUP
+#line 275 "apertium_desxpresstag.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 4:
+/* rule 4 can match eol */
+YY_RULE_SETUP
+#line 279 "apertium_desxpresstag.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 5:
+/* rule 5 can match eol */
+YY_RULE_SETUP
+#line 283 "apertium_desxpresstag.cctmp"
+{
+  isDot = true;
+  bufferAppend(buffer, yytext);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 287 "apertium_desxpresstag.cctmp"
+{
+  if (last == "open_tag")
+    bufferAppend(tags.back(), yytext);
+  else
+    bufferAppend(buffer, yytext);
+
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 295 "apertium_desxpresstag.cctmp"
+{
+  printBuffer();
+  fputwc_unlocked(L'\\', yyout);
+  offset++;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, yytext, MB_CUR_MAX);
+  if(pos == -1)
+  {
+      wcerr << L"Cuatro" << endl;
+
+    wcerr << L"Encoding error." << endl;
+    exit(EXIT_FAILURE);
+  }
+
+  fputwc_unlocked(symbol, yyout);
+  offset++;
+  hasWrite_dot = hasWrite_white = true;
+
+}
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 315 "apertium_desxpresstag.cctmp"
+{
+  printBuffer();
+  symbuf += yytext;
+  wchar_t symbol;
+  int pos = mbtowc(&symbol, symbuf.c_str(), MB_CUR_MAX);
+  if(pos == -1)
+  {
+    if(symbuf.size() > (size_t) MB_CUR_MAX)
+    {
+      // unknown character
+      symbuf = "";
+      fputwc_unlocked(L'?', yyout);
+      offset++;
+      hasWrite_dot = hasWrite_white = true;
+    }
+  }
+  else
+  {
+    symbuf = "";
+    fputwc_unlocked(symbol, yyout);
+    offset++;
+    hasWrite_dot = hasWrite_white = true;
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 340 "apertium_desxpresstag.cctmp"
+{
+  isDot = true;
+
+  preDot();
+  printBuffer();
+  return 0;
+}
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 347 "apertium_desxpresstag.cctmp"
+ECHO;
+	YY_BREAK
+#line 1212 "apertium_desxpresstag.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 347 "apertium_desxpresstag.cctmp"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  
+  cerr << "xpresstag format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+  eosIncond = false;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    eosIncond = true;
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+  
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+
+
+  last = "";
+  buffer = L"";
+  isDot = hasWrite_dot = hasWrite_white = false;
+  current=0;
+  offset = 0;
+  init_escape();
+  init_tagNames();
+  yylex();
+
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_gen_wlist_lextor_translation.cc b/apertium/apertium_gen_wlist_lextor_translation.cc
deleted file mode 100644
index 49b2c81..0000000
--- a/apertium/apertium_gen_wlist_lextor_translation.cc
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2006 Universitat d'Alacant / Universidad de Alicante
- * 
- * author: Felipe S�nchez-Mart�nez
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <iostream>
-#include <fstream>
-#include <getopt.h>
-#include <string>
-
-#include <lttoolbox/fst_processor.h>
-
-#include <apertium/lextor_word.h>
-#include <apertium/utf_converter.h>
-#include <apertium/string_utils.h>
-
-using namespace Apertium;
-using namespace std;
-
-
-void help(char *name) {
-  wcerr<<L"USAGE:\n";
-  wcerr<<name<<L" --mono dic.bin --bil bildic.bin --wlist wlistfile\n\n";
-  wcerr<<L"ARGUMENTS: \n"
-      <<L"   --mono|-m: Specifies the monolingual lexical selection dictionary to use.\n"
-      <<L"   --bil|-b: Specifies the bilingual lexical selection dictionary to use.\n"
-      <<L"   --wlist|-w: Specifies the list of words to translate.\n"
-      <<L"   --help|-h: Show this help\n"
-      <<L"   --version|-v: Show version information\n\n"
-      <<L"Write to standard output all possible translations of words found in wlistfile\n";
-}
-
-int main(int argc, char* argv[]) {
-  int c;
-  
-#if HAVE_GETOPT_LONG
-  int option_index=0;
-#endif
-  string monodic_file="";
-  string bildic_file="";
-  string wlist_file="";
-
-  while (true) {
-#if HAVE_GETOPT_LONG
-    static struct option long_options[] =
-      {
-	{"mono",    required_argument, 0, 'm'},
-	{"bil",     required_argument, 0, 'b'},
-	{"wlist",   required_argument, 0, 'w'},
-	{"help",        no_argument,   0, 'h'},
-	{"version",     no_argument,   0, 'v'},
-	{0, 0, 0, 0}
-      };
-
-    c=getopt_long(argc, argv, "m:b:w:hv",long_options, &option_index);
-#else
-    c=getopt(argc, argv, "m:b:w:hv");
-#endif
-    if (c==-1)
-      break;
-      
-    switch (c) {
-    case 'm':
-      monodic_file=optarg;
-      break;
-    case 'b':
-      bildic_file=optarg;
-      break;
-    case 'w':
-      wlist_file=optarg;
-      break;
-    case 'h': 
-      help(argv[0]);
-      exit(EXIT_SUCCESS);
-      break;
-    case 'v':
-      wcerr<<L"APERTIUM"<<L"\n"; //"APERTIUM" era PACKAGE_STRING
-      wcerr<<L"LICENSE:\n\n"
-	  <<L"   Copyright (C) 2006 Universitat d'Alacant / Universidad de Alicante\n\n"
-	  <<L"   This program is free software; you can redistribute it and/or\n"
-	  <<L"   modify it under the terms of the GNU General Public License as\n"
-	  <<L"   published by the Free Software Foundation; either version 2 of the\n"
-	  <<L"   License, or (at your option) any later version.\n"
-	  <<L"   This program is distributed in the hope that it will be useful, but\n"
-	  <<L"   WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-	  <<L"   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
-	  <<L"   General Public License for more details.\n"
-	  <<L"\n"
-	  <<L"   You should have received a copy of the GNU General Public License\n"
-	  <<L"   along with this program; if not, write to the Free Software\n"
-	  <<L"   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA\n"
-	  <<L"   02111-1307, USA.\n";
-      exit(EXIT_SUCCESS);
-      break;    
-    default:
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-      break;
-    }
-  }
-
-  if(monodic_file=="") {
-    wcerr<<L"Error: no monolingual dictionary file was given\n";
-    help(argv[0]);
-    exit(EXIT_FAILURE);
-  }
-
-  if (bildic_file=="") {
-    wcerr<<L"Error: no bilingual dictionary file was given\n";
-    help(argv[0]);
-    exit(EXIT_FAILURE);
-  }
-
-  if (wlist_file=="") {
-    wcerr<<L"Error: no word list file was given\n";
-    help(argv[0]);
-    exit(EXIT_FAILURE);
-  }
-
-  wifstream fwlist;
-  FILE *fmonodic, *fbildic;
-
-  fmonodic=fopen(monodic_file.c_str(), "rb");
-  if (!fmonodic) {
-    wcerr<<L"Error: Cannot open file '"
-         <<UtfConverter::fromUtf8(monodic_file)<<L"'\n";
-    exit(EXIT_FAILURE);
-  }
-
-  fbildic=fopen(bildic_file.c_str(), "rb");
-  if (!fbildic) {
-    wcerr<<L"Error: Cannot open file '"
-         <<UtfConverter::fromUtf8(bildic_file)<<L"'\n";
-    exit(EXIT_FAILURE);
-  }
-
-  fwlist.open(wlist_file.c_str(), ios::in);
-  if (fwlist.fail()) {
-    wcerr<<L"Error: Cannot open file '"
-         <<UtfConverter::fromUtf8(wlist_file)<<L"'\n";
-    exit(EXIT_FAILURE);
-  }
-
-  FSTProcessor fstp_monodic, fstp_bildic;
-
-  fstp_monodic.load(fmonodic);
-  fstp_monodic.initBiltrans();
-  fclose(fmonodic);
-
-  fstp_bildic.load(fbildic);
-  fstp_bildic.initBiltrans();
-  fclose(fbildic);
-
-  wstring strword=L"";
-  while (!fwlist.eof()) {
-    getline(fwlist, strword);
-    if (!fwlist.eof()) {
-      LexTorWord word(strword, &fstp_monodic);
-      wcerr<<strword<<L" =>\n";
-      for (int i=0; i<word.n_lexical_choices(); i++) {
-	wcerr<<L"\t"<<word.translate(fstp_bildic,i)<<L" ("<<word.get_lexical_choice(i)<<L")\n";
-	wcout<<word.translate(fstp_bildic,i)<<L"\n";
-      }
-      if (word.n_lexical_choices()<=1) {
-        wcerr<<L"Warning: word '"<<strword<<L"' is supossed to be polysemous, but it has "<<word.n_lexical_choices()<<L" different translations\n";
-      }
-    }
-  }
-
-  fwlist.close();
-}
diff --git a/apertium/apertium_lextor.cc b/apertium/apertium_lextor.cc
deleted file mode 100644
index 9247ba9..0000000
--- a/apertium/apertium_lextor.cc
+++ /dev/null
@@ -1,656 +0,0 @@
-/*
- * Copyright (C) 2006 Universitat d'Alacant / Universidad de Alicante
- * 
- * author: Felipe S�nchez-Mart�nez
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <iostream>
-#include <fstream>
-#include <getopt.h>
-
-#include <lttoolbox/fst_processor.h>
-
-#include <apertium/lextor.h>
-#include <apertium/lextor_word.h>
-#include <apertium/lextor_data.h>
-#include <apertium/utf_converter.h>
-#include <clocale>
-#include <cstdlib>
-#include <apertium/string_utils.h>
-
-using namespace Apertium;
-
-#define MODE_TRAINWRD 0
-#define MODE_TRAINLCH 1
-#define MODE_LEXTOR 2
-#define MODE_LEXTORTL 3
-
-using namespace std;
-
-
-void help(char *name) {
-  cerr<<"USAGE:\n";
-  cerr<<name<<" --trainwrd stopwords words n left right corpus model [--weightexp w]\nOR\n";
-  cerr<<name<<" --trainlch stopwords lexchoices n left right corpus wordmodel dic bildic model [--weightexp w]\nOR\n";
-  cerr<<name<<" --lextor model dic left right [--debug] [--weightexp w]\n\n";
-  //cerr<<name<<" --lextortl stopwords words tlmodel dic bildic left right [--debug] [--weightexp w]\n\n"; 
-  cerr<<"ARGUMENTS: \n"
-      <<"   --trainwrd|-t: Train word co-occurrences model.\n"
-      <<"   Required parameters:\n"
-      <<"      stopwords: file containing a list of stop words. Stop words are ignored\n"
-      <<"      words: file containing a list of words. For each word a co-occurrence model is built\n"
-      <<"      n: number of words per co-occurrence model (for each model, the n most frequent words)\n"
-      <<"      left: left-side context to take into account (number of words)\n"
-      <<"      right: right-side context to take into account (number of words)\n"
-      <<"      corpus: file containing the training corpus\n"
-      <<"      model: output file on which the co-occurrence models are saved\n\n"
-
-      <<"   --trainlch|-r: Train lexical choices co-occurrences model using a target-language co-occurrence model.\n"
-      <<"   Required parameters:\n"
-      <<"      stopwords: file containing a list of stop words. Stop words are ignored\n"
-      <<"      lexchoices: file containing a list of lexical choices. For each lexical choice a co-occurrence model is built\n"
-      <<"      n: number of words per co-occurrence model (for each model, the n most frequent words)\n"
-      <<"      left: left-side context to take into account (number of words)\n"
-      <<"      right: right-side context to take into account (number of words)\n"
-      <<"      corpus: file containing the training corpus\n"
-      <<"      wordmodel: target-language word co-occurrence model (previously trained by means of the --trainwrd option)\n"
-      <<"      dic: lexical-selection dictionary (binary format)\n"
-      <<"      bildic: bilingual dictionary (binary format)\n"
-      <<"      model: output file on which the co-occurrence models are saved\n\n"
-
-      <<"   --lextor|-l: Perform the lexical selection on the input stream.\n"
-      <<"   Required parameters:\n"
-      <<"      model: file containing the model to be used for the lexical selection\n"
-      <<"      dic: lexical-selection dictionary (binary format)\n"
-      <<"      left: left-side context to take into account (number of words)\n"
-      <<"      right: right-side context to take into account (number of words)\n\n"
-
-    //      <<"   --lextortl|-e: Perform the lexical selection on the input stream by using a tl model.\n"
-    //      <<"   Required parameters:\n"
-    //      <<"      stopwords: file containing a list of stop words in the source language. Stop words are ignored\n"
-    //      <<"      words: file containing the list of polysemous words in the source language\n"
-    //      <<"      tlmodel: file containing the target-language model to be used for the lexical selection\n"
-    //      <<"      dic: lexical-selection dictionary (binary format)\n"
-    //      <<"      bildic: bilingual dictionary (binary format)\n"
-    //      <<"      left: left-side context to take into account (number of words)\n"
-    //      <<"      right: right-side context to take into account (number of words)\n\n"
-
-      <<"   --weightexp|-w: Specify a weight value to change the influence of surrounding words while training or\n"
-      <<"     performing the lexica selection. It must be positive.\n\n"
-
-      <<"   --debug|-d: Show debug information while operating\n"
-      <<"   --help|-h: Show this help\n"
-      <<"   --version|-v: Show version information\n\n";
-  cerr<<"Reads from standard input and writes to standard output\n";
-}
-
-int main(int argc, char* argv[]) {
-  int c;
-#if HAVE_GETOPT_LONG
-  int option_index=0;
-#endif
-  int mode=-1;
-
-  //Parameters for the "trainwrd" or the "trainlch" mode option
-  string stopwords_file="";
-  string words_file="";
-  string corpus_file="";
-  int nwords_model=0;
-  int nwords_left=-1;
-  int nwords_right=-1;
-
-  string model_file="";
-
-  string lexchoices_file="";
-  string wordmodel_file="";
-  string bildic_file="";
-
-  //Parameters for the "lextor" option
-  string dic_file="";
-
-  double weight_exponent=0.0;
-
-  LexTor::debug=false;
-
-  //cerr<<"LOCALE: "<<setlocale(LC_ALL,"")<<"\n";
-
-  while (true) {
-#if HAVE_GETOPT_LONG
-    static struct option long_options[] =
-      {
-	{"trainwrd",  required_argument, 0, 't'},
-	{"trainlch",  required_argument, 0, 'r'},
-	{"lextor",    required_argument, 0, 'l'},
-	//	{"lextortl",  required_argument, 0, 'e'},
-        {"weightexp", required_argument, 0, 'w'},
-	{"debug",        no_argument,    0, 'd'},
-	{"help",         no_argument,    0, 'h'},
-	{"version",      no_argument,    0, 'v'},
-	{0, 0, 0, 0}
-      };
-
-    c=getopt_long(argc, argv, "t:r:l:e:w:dhv",long_options, &option_index);
-#else
-    c=getopt(argc, argv, "t:r:l:e:w:dhv");
-#endif
-    if (c==-1)
-      break;
-      
-    switch (c) {
-    case 't':
-      mode=MODE_TRAINWRD;
-      stopwords_file=optarg;
-      words_file=argv[optind++];
-      nwords_model=atoi(argv[optind++]);
-      nwords_left=atoi(argv[optind++]);
-      nwords_right=atoi(argv[optind++]);
-      corpus_file=argv[optind++];
-      model_file=argv[optind++];
-      break;
-    case 'r':
-      //--trainlch stopwords lexchoices n left right corpus wordmodel dic bildic model
-      mode=MODE_TRAINLCH;
-      stopwords_file=optarg;
-      lexchoices_file=argv[optind++];
-      nwords_model=atoi(argv[optind++]);
-      nwords_left=atoi(argv[optind++]);
-      nwords_right=atoi(argv[optind++]);
-      corpus_file=argv[optind++];
-      wordmodel_file=argv[optind++];
-      dic_file=argv[optind++];
-      bildic_file=argv[optind++];
-      model_file=argv[optind++];
-      break;
-    case 'l':
-      mode=MODE_LEXTOR;
-      model_file=optarg;
-      dic_file=argv[optind++];
-      nwords_left=atoi(argv[optind++]);
-      nwords_right=atoi(argv[optind++]);
-      break;
-    case 'e':
-      mode=MODE_LEXTORTL;
-      stopwords_file=optarg;
-      words_file=argv[optind++];
-      model_file=argv[optind++];
-      dic_file=argv[optind++];
-      bildic_file=argv[optind++];
-      nwords_left=atoi(argv[optind++]);
-      nwords_right=atoi(argv[optind++]);
-      break;
-    case 'w':
-      weight_exponent=atof(optarg);
-      break;
-    case 'd':
-      LexTor::debug=true;
-      break;
-    case 'h': 
-      help(argv[0]);
-      exit(EXIT_SUCCESS);
-      break;
-    case 'v':
-      wcerr<<L"APERTIUM"<<L"\n"; //"APERTIUM" era PACKAGE_STRING
-      wcerr<<L"LICENSE:\n\n"
-	  <<L"   Copyright (C) 2006 Universitat d'Alacant / Universidad de Alicante\n\n"
-	  <<L"   This program is free software; you can redistribute it and/or\n"
-	  <<L"   modify it under the terms of the GNU General Public License as\n"
-	  <<L"   published by the Free Software Foundation; either version 2 of the\n"
-	  <<L"   License, or (at your option) any later version.\n"
-	  <<L"   This program is distributed in the hope that it will be useful, but\n"
-	  <<L"   WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-	  <<L"   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
-	  <<L"   General Public License for more details.\n"
-	  <<L"\n"
-	  <<L"   You should have received a copy of the GNU General Public License\n"
-	  <<L"   along with this program; if not, write to the Free Software\n"
-	  <<L"   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA\n"
-	  <<L"   02111-1307, USA.\n";
-      exit(EXIT_SUCCESS);
-      break;    
-    default:
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-      break;
-    }
-  }
-
-  if (weight_exponent<0) {
-    wcerr<<L"Error: the weight exponent provided is less than zero. It must be positive\n";
-    help(argv[0]);
-    exit(EXIT_FAILURE);
-  }
-
-  //When reading from the input stream '*all* characters must be
-  //processed, including ' ','\n', .....
-  wcin.unsetf(ios::skipws);
-
-  if (mode==MODE_TRAINWRD) {
-    if(stopwords_file=="") {
-      wcerr<<L"Error: no stopwords file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (words_file=="") {
-      wcerr<<L"Error: no words file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_model==0) {
-      wcerr<<L"Error: the number of word per co-occurrence model must be greater than 0\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_left<0) {
-      wcerr<<L"Error: no left-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_right<0) {
-      wcerr<<L"Error: no right-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (corpus_file=="") {
-      wcerr<<L"Error: No training corpus file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (model_file=="") {
-      wcerr<<L"Error: No output file to save the co-occurrence models was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-
-    wifstream fstopwords, fwords, fcorpus;
-
-    fstopwords.open(stopwords_file.c_str(), ios::in);
-    if (fstopwords.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(stopwords_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fwords.open(words_file.c_str(), ios::in);
-    if (fwords.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(words_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fcorpus.open(corpus_file.c_str(), ios::in);
-    if(fcorpus.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(corpus_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    FILE *fmodel = fopen(model_file.c_str(), "wb");
-    if(!fmodel)
-    {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(model_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-    
-    LexTorData lextor_data;
-
-    lextor_data.read_stopwords(fstopwords);
-    lextor_data.read_words(fwords);
-    lextor_data.set_nwords_per_set(nwords_model);
-
-    fstopwords.close();
-    fwords.close();
-
-    LexTor lexical_selector;
-    lexical_selector.set_lextor_data(&lextor_data);
-
-    //Whe reading from the input corpus '*all* characters must be
-    //processed, including ' ','\n', .....
-    fcorpus.unsetf(ios::skipws);
-
-    //Train
-    lexical_selector.trainwrd(fcorpus, nwords_left, nwords_right, weight_exponent);
-    fcorpus.close();
-
-    //Write parameters
-    lextor_data.write(fmodel);
-    fclose(fmodel);
-  } 
-
-  else if (mode==MODE_TRAINLCH) {
-    if(stopwords_file=="") {
-      wcerr<<L"Error: no stopwords file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (lexchoices_file=="") {
-      wcerr<<L"Error: no lexical choices file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_model==0) {
-      wcerr<<L"Error: the number of word per co-occurrence model must be greater than 0\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_left<0) {
-      wcerr<<L"Error: no left-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_right<0) {
-      wcerr<<L"Error: no rigth-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (corpus_file=="") {
-      wcerr<<L"Error: No training corpus file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if(wordmodel_file=="") {
-      wcerr<<L"Error: No target-language word co-occurrence model was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (dic_file=="") {
-      wcerr<<L"Error: No lexical-selection dictionary was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (bildic_file=="") {
-      cerr<<"Error: No bilingual dictionary was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (model_file=="") {
-      wcerr<<L"Error: No output file to save the co-occurrence models was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-
-    wifstream fstopwords, flexchoices, fcorpus;
-    FILE *fdic=NULL, *fbildic=NULL, *fwordmodel=NULL;
-
-    fstopwords.open(stopwords_file.c_str(), ios::in);
-    if (fstopwords.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(stopwords_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    flexchoices.open(lexchoices_file.c_str(), ios::in);
-    if (flexchoices.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(lexchoices_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fcorpus.open(corpus_file.c_str(), ios::in);
-    if(fcorpus.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(corpus_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fwordmodel = fopen(wordmodel_file.c_str(), "rb");
-    if(!fwordmodel) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(wordmodel_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fdic=fopen(dic_file.c_str(), "rb");
-    if(!fdic) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(dic_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fbildic=fopen(bildic_file.c_str(), "rb");
-    if(!fbildic) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(bildic_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    FILE *fmodel = fopen(model_file.c_str(), "wb");
-    if(!fmodel) {
-      wcerr<<L"Error: Cannot open file '"
-          <<UtfConverter::fromUtf8(model_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    LexTorData lextor_data;
-
-    lextor_data.read_stopwords(fstopwords);
-    lextor_data.read_words(flexchoices);
-    lextor_data.set_nwords_per_set(nwords_model);
-
-    fstopwords.close();
-    flexchoices.close();
-
-    LexTor lexical_selector;
-    lexical_selector.set_lextor_data(&lextor_data);
-
-    LexTorData wordmodel;
-    wordmodel.read(fwordmodel);
-    fclose(fwordmodel);
-
-    FSTProcessor fstpdic;
-    fstpdic.load(fdic);
-    fstpdic.initBiltrans();
-    fclose(fdic);
-
-    lextor_data.read_lexical_choices(fstpdic);
-
-    FSTProcessor fstpbildic;
-    fstpbildic.load(fbildic);
-    fstpbildic.initBiltrans();
-    fclose(fbildic);
-
-
-    //Whe reading from the input corpus '*all* characters must be
-    //processed, including ' ','\n', .....
-    fcorpus.unsetf(ios::skipws);
-
-    //Train
-    lexical_selector.trainlch(fcorpus, nwords_left, nwords_right, wordmodel, fstpdic, fstpbildic, weight_exponent);
-
-    fcorpus.close();
-
-    //Write parameters
-    lextor_data.write(fmodel);
-    fclose(fmodel);
-  }
-
-  else if (mode==MODE_LEXTOR) {
-    if(model_file=="") {
-      wcerr<<L"Error: no model file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (dic_file=="") {
-      wcerr<<L"Error: no dic file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_left<0) {
-      wcerr<<L"Error: no left-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_right<0) {
-      wcerr<<L"Error: no rigth-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-
-    FILE *fdic=NULL;
-    fdic=fopen(dic_file.c_str(), "rb");
-    if (!fdic) {
-      wcerr<<L"Error: Cannot open dictionary file '"
-           <<UtfConverter::fromUtf8(dic_file)<<L"' for lexical selection\n";
-      exit(EXIT_FAILURE);
-    }
-    FSTProcessor fstp;
-    fstp.load(fdic);
-    fstp.initBiltrans();
-    fclose(fdic);
-
-    FILE *fmodel = fopen(model_file.c_str(), "rb");
-    if(!fmodel) {
-      wcerr<<L"Error: Cannot open file '"
-	   <<UtfConverter::fromUtf8(model_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    //Whe reading from the input stream '*all* characters must be
-    //processed, including ' ','\n', .....
-    wcin.unsetf(ios::skipws);
-
-    LexTorData lextor_model;
-    lextor_model.read(fmodel);
-    fclose(fmodel);
-
-    LexTor lexical_selector;
-    lexical_selector.set_lextor_data(&lextor_model);
-
-    lexical_selector.lexical_selector(wcin, fstp, nwords_left, nwords_right, weight_exponent);
-  } 
-
-  else if (mode==MODE_LEXTORTL) {
-    if(stopwords_file=="") {
-      wcerr<<L"Error: no stopwords file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if(words_file=="") {
-      wcerr<<L"Error: no words file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if(model_file=="") {
-      wcerr<<L"Error: no target-language model file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (dic_file=="") {
-      wcerr<<L"Error: No lexical-selection dictionary was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (bildic_file=="") {
-      wcerr<<L"Error: No bilingual dictionary was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_left<0) {
-      wcerr<<L"Error: no left-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_right<0) {
-      wcerr<<L"Error: no rigth-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-
-    wifstream fstopwords, fwords;
-    FILE *fdic=NULL, *fbildic=NULL, *fmodel = NULL;
-
-    fstopwords.open(stopwords_file.c_str(), ios::in);
-    if (fstopwords.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(stopwords_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fwords.open(words_file.c_str(), ios::in);
-    if (fwords.fail()) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(words_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fmodel = fopen(model_file.c_str(), "rb");
-    if(!fmodel) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(model_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fdic=fopen(dic_file.c_str(), "rb");
-    if(!fdic) {
-      wcerr<<L"Error: Cannot open file '"
-           <<UtfConverter::fromUtf8(dic_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fbildic=fopen(bildic_file.c_str(), "rb");
-    if(!fbildic) {
-      wcerr<<L"Error: Cannot open file '"
-	   <<UtfConverter::fromUtf8(bildic_file)<<L"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    LexTorData lextor_data;
-
-    lextor_data.read_stopwords(fstopwords);
-    fstopwords.close();
-
-    lextor_data.read_words(fwords);
-    fwords.close();
-
-    LexTor lexical_selector;
-    lexical_selector.set_lextor_data(&lextor_data);
-
-    LexTorData tlmodel;
-    tlmodel.read(fmodel);
-    fclose(fmodel);
-
-    FSTProcessor fstpdic;
-    fstpdic.load(fdic);
-    fstpdic.initBiltrans();
-    fclose(fdic);
-
-    FSTProcessor fstpbildic;
-    fstpbildic.load(fbildic);
-    fstpbildic.initBiltrans();
-    fclose(fbildic);
-
-
-    lextor_data.read_lexical_choices(fstpdic);
-
-    //Whe reading from the input stream '*all* characters must be
-    //processed, including ' ','\n', .....
-    wcin.unsetf(ios::skipws);
-
-
-    lexical_selector.set_tlmodel(&tlmodel);
-    lexical_selector.set_bildic(&fstpbildic);
-
-    lexical_selector.lexical_selector(wcin, fstpdic, nwords_left, nwords_right, weight_exponent);
-  } 
-
-  else {
-    wcerr<<L"Error: No operation mode was provided\n";
-    help(argv[0]);
-    exit(EXIT_FAILURE);
-  }
-}
diff --git a/apertium/apertium_lextor_eval.cc b/apertium/apertium_lextor_eval.cc
deleted file mode 100644
index 62a249b..0000000
--- a/apertium/apertium_lextor_eval.cc
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (C) 2006 Universitat d'Alacant / Universidad de Alicante
- * 
- * author: Felipe S�nchez-Mart�nez
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- */
-
-#include <iostream>
-#include <fstream>
-#include <getopt.h>
-
-#include <lttoolbox/fst_processor.h>
-
-#include <apertium/lextor.h>
-#include <apertium/lextor_word.h>
-#include <apertium/lextor_data.h>
-#include <apertium/lextor_eval.h>
-#include <clocale>
-#include <apertium/string_utils.h>
-
-using namespace Apertium;
-#define MODE_LEXTOR 1
-#define MODE_LEXTORTL 2
-
-using namespace std;
-
-
-void help(char *name) {
-  cerr<<"USAGE:\n";
-  cerr<<name<<" --angle ang --reference reftext --parameters|-p model dic left right [--debug]\n\n";
-  cerr<<"ARGUMENTS: \n"
-      <<"  --angle|-a: To specify the angle threshold to use............\n"
-      <<"   --reference|-r: To specify the reference corpus used for evaluation (one word per\n"
-      <<"               line with the correct translation sense for those words with more than one)\n"
-      <<"   --parameters|-p: to specify the parameters used for the lexical selection task:\n"
-      <<"   Required parameters:\n"
-      <<"      model: file containing the model to be used for the lexical selection\n"
-      <<"      dic: lexical-selection dictionary (binary format)\n"
-      <<"      left: left-side context to take into account (number of words)\n"
-      <<"      right: right-side context to take into account (number of words)\n"
-      <<"   --weightexp|-w: Specify a weight value to change the influence of surrounding words while\n"
-      <<"     performing the lexical selection. It must be positive.\n"
-      <<"   --help|-h: Show this help\n"
-      <<"   --version|-v: Show version information\n\n";
-
-  cerr<<"NOTE: It reads from the standard input the corpus to work with. That corpus must be\n"
-      <<"      in the intermediate format used by Apertium.\n";
-}
-
-int main(int argc, char* argv[]) {
-  int c;
-  int option_index=0;
-
-  int mode=MODE_LEXTOR;
-
-  string model_file="";
-  string dic_file="";
-  int nwords_left=-1;
-  int nwords_right=-1;
-
-  //string in_file;
-  string ref_file;
-
-  double weight_exponent=0.0;
-
-  LexTor::angleth=0.0;
-
-
-  //For mode LEXTORTL
-  string stopwords_file;
-  string words_file;
-  string bildic_file;
-
-  //cerr<<"LOCALE: "<<setlocale(LC_ALL,"")<<"\n";
-  cerr<<"Command line: ";
-  for(int i=0; i<argc; i++)
-    cerr<<argv[i]<<" ";
-  cerr<<"\n";
-
-  while (true) {
-#if HAVE_GETOPT_LONG
-    static struct option long_options[] =
-      {
-	//{"input",       required_argument, 0, 'i'},
-	{"reference",   required_argument, 0, 'r'},
-	{"parameters",  required_argument, 0, 'p'},
-        {"weightexp",   required_argument, 0, 'w'},
-	{"angle",       required_argument, 0, 'a'},
-	{"lextortl",    required_argument, 0, 'e'},
-	{"debug",       no_argument,    0, 'd'},
-	{"help",        no_argument,    0, 'h'},
-	{"version",     no_argument,    0, 'v'},
-	{0, 0, 0, 0}
-      };
-
-    c=getopt_long(argc, argv, "r:p:w:a:e:dhv",long_options, &option_index);
-#else
-    c=getopt(argc, argv, "r:p:w:a:e:dhv");
-#endif
-    if (c==-1)
-      break;
-      
-    switch (c) {
-      //case 'i':
-      //in_file=optarg;
-      //break;
-    case 'r':
-      ref_file=optarg;
-      break;
-    case 'p':
-      mode=MODE_LEXTOR;
-      model_file=optarg;
-      dic_file=argv[optind++];
-      nwords_left=atoi(argv[optind++]);
-      nwords_right=atoi(argv[optind++]);
-      break;
-    case 'e':
-      mode=MODE_LEXTORTL;
-      stopwords_file=optarg;
-      words_file=argv[optind++];
-      model_file=argv[optind++];
-      dic_file=argv[optind++];
-      bildic_file=argv[optind++];
-      nwords_left=atoi(argv[optind++]);
-      nwords_right=atoi(argv[optind++]);
-      break;
-    case 'w':
-      weight_exponent=atof(optarg);
-      break;
-    case 'a':
-      LexTor::angleth=atof(optarg);
-      break;
-    case 'd':
-      LexTor::debug=true;
-      break;
-    case 'h': 
-      help(argv[0]);
-      exit(EXIT_SUCCESS);
-      break;
-    case 'v':
-      cerr<<"APERTIUM"<<"\n"; //"APERTIUM" era PACKAGE_STRING
-      cerr<<"LICENSE:\n\n"
-	  <<"   Copyright (C) 2006 Universitat d'Alacant / Universidad de Alicante\n\n"
-	  <<"   This program is free software; you can redistribute it and/or\n"
-	  <<"   modify it under the terms of the GNU General Public License as\n"
-	  <<"   published by the Free Software Foundation; either version 2 of the\n"
-	  <<"   License, or (at your option) any later version.\n"
-	  <<"   This program is distributed in the hope that it will be useful, but\n"
-	  <<"   WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-	  <<"   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
-	  <<"   General Public License for more details.\n"
-	  <<"\n"
-	  <<"   You should have received a copy of the GNU General Public License\n"
-	  <<"   along with this program; if not, write to the Free Software\n"
-	  <<"   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA\n"
-	  <<"   02111-1307, USA.\n";
-      exit(EXIT_SUCCESS);
-      break;    
-    default:
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-      break;
-    }
-  }
-
-  cerr<<"TH ANGLE: "<<LexTor::angleth<<"\n";
-
-  if (ref_file=="") {
-    cerr<<"Error: No reference corpus was given\n";
-    help(argv[0]);
-    exit(EXIT_FAILURE);
-  }
-  ifstream fref;
-
-  fref.open(ref_file.c_str(), ios::in);
-  if (fref.fail()) {
-    cerr<<"Error: Cannot open file '"<<ref_file<<"'\n";
-    exit(EXIT_FAILURE);
-  }
-
-  if (mode==MODE_LEXTOR) {
-    if (nwords_left<0) {
-      cerr<<"Error: no left-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_right<0) {
-      cerr<<"Error: no right-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    //if (in_file=="") {
-    //  cerr<<"Error: No input corpus was given\n";
-    //  help(argv[0]);
-    //  exit(EXIT_FAILURE);
-    //}
- 
-    if (model_file=="") {
-      cerr<<"Error: No model file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (dic_file=="") {
-      cerr<<"Error: No dictionary file (bin format) was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-
-    if (weight_exponent<0) {
-      cerr<<"Error: the weight exponent provided is less than zero. It must be positive\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-
-    ifstream fin, fmodel;
-
-    //fin.open(in_file.c_str(), ios::in);
-    //if (fin.fail()) {
-    //  cerr<<"Error: Cannot open file '"<<in_file<<"'\n";
-    //  exit(EXIT_FAILURE);
-    //}
-
-    fmodel.open(model_file.c_str(), ios::in);
-    if(fmodel.fail()) {
-      cerr<<"Error: Cannot open file '"<<model_file<<"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    FILE *fdic=NULL;
-    fdic=fopen(dic_file.c_str(), "rb");
-    if (!fdic) {
-      cerr<<"Error: Cannot open file '"<<dic_file<<"'\n";
-      exit(EXIT_FAILURE);
-    }
-    FSTProcessor fstp;
-    fstp.load(fdic);
-    fstp.initBiltrans();
-    fclose(fdic);
-
-
-    //When reading from the input stream '*all* characters must be
-    //processed, including ' ','\n', .....
-    cin.unsetf(ios::skipws);
-
-
-    LexTorData lextor_model;
-    lextor_model.read(fmodel);
-    fmodel.close();
-
-    LexTor lexical_selector;
-    lexical_selector.set_lextor_data(&lextor_model);
-
-    LexTorEval lteval(&fref);
-    lexical_selector.lexical_selector(cin, fstp, nwords_left, nwords_right, weight_exponent, &lteval);
-    lteval.print_evaluation();
-
-    fref.close();
-  }
-
-  else if (mode==MODE_LEXTORTL) {
-    if(stopwords_file=="") {
-      cerr<<"Error: no stopwords file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if(words_file=="") {
-      cerr<<"Error: no words file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if(model_file=="") {
-      cerr<<"Error: no target-language model file was given\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (dic_file=="") {
-      cerr<<"Error: No lexical-selection dictionary was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (bildic_file=="") {
-      cerr<<"Error: No bilingual dictionary was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_left<0) {
-      cerr<<"Error: no left-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-    if (nwords_right<0) {
-      cerr<<"Error: no right-side context number of words was provided\n";
-      help(argv[0]);
-      exit(EXIT_FAILURE);
-    }
-
-    ifstream fstopwords, fwords, fmodel;
-    FILE *fdic=NULL, *fbildic=NULL;
-
-    fstopwords.open(stopwords_file.c_str(), ios::in);
-    if (fstopwords.fail()) {
-      cerr<<"Error: Cannot open file '"<<stopwords_file<<"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fwords.open(words_file.c_str(), ios::in);
-    if (fwords.fail()) {
-      cerr<<"Error: Cannot open file '"<<words_file<<"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fmodel.open(model_file.c_str(), ios::in);
-    if(fmodel.fail()) {
-      cerr<<"Error: Cannot open file '"<<model_file<<"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fdic=fopen(dic_file.c_str(), "rb");
-    if(!fdic) {
-      cerr<<"Error: Cannot open file '"<<dic_file<<"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    fbildic=fopen(bildic_file.c_str(), "rb");
-    if(!fbildic) {
-      cerr<<"Error: Cannot open file '"<<bildic_file<<"'\n";
-      exit(EXIT_FAILURE);
-    }
-
-    LexTorData lextor_data;
-
-    lextor_data.read_stopwords(fstopwords);
-    fstopwords.close();
-
-    lextor_data.read_words(fwords);
-    fwords.close();
-
-    LexTor lexical_selector;
-    lexical_selector.set_lextor_data(&lextor_data);
-
-    LexTorData tlmodel;
-    tlmodel.read(fmodel);
-    fmodel.close();
-
-    FSTProcessor fstpdic;
-    fstpdic.load(fdic);
-    fstpdic.initBiltrans();
-    fclose(fdic);
-
-    FSTProcessor fstpbildic;
-    fstpbildic.load(fbildic);
-    fstpbildic.initBiltrans();
-    fclose(fbildic);
-
-
-    lextor_data.read_lexical_choices(fstpdic);
-
-    //Whe reading from the input stream '*all* characters must be
-    //processed, including ' ','\n', .....
-    cin.unsetf(ios::skipws);
-
-
-    lexical_selector.set_tlmodel(&tlmodel);
-    lexical_selector.set_bildic(&fstpbildic);
-
-
-    LexTorEval lteval(&fref);
-    lexical_selector.lexical_selector(cin, fstpdic, nwords_left, nwords_right, weight_exponent, &lteval);
-    lteval.print_evaluation();
-
-    fref.close();
-  } 
-}
diff --git a/apertium/apertium_postlatex.cc b/apertium/apertium_postlatex.cc
new file mode 100644
index 0000000..b86bf27
--- /dev/null
+++ b/apertium/apertium_postlatex.cc
@@ -0,0 +1,4621 @@
+#line 2 "apertium_postlatex.cc"
+
+#line 4 "apertium_postlatex.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][54] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0
+    },
+
+    {
+        7,    8,    9,   10,    8,    8,    8,   11,    8,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    8,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    8,
+
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,   12,   13,   14
+    },
+
+    {
+        7,    8,    9,   10,    8,    8,    8,   11,    8,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    8,    9,
+        9,    9,    9,    9,    9,    9,    9,    9,    9,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,   12,   13,   14
+    },
+
+    {
+        7,   15,   15,   15,   15,   15,   15,   16,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15
+    },
+
+    {
+        7,   15,   15,   15,   15,   15,   15,   16,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15
+
+    },
+
+    {
+        7,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17
+    },
+
+    {
+        7,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+
+       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
+       17,   17,   17,   17
+    },
+
+    {
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7
+    },
+
+    {
+        7,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8
+    },
+
+    {
+        7,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9
+
+    },
+
+    {
+        7,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,   18,  -10,  -10,  -10,  -10,  -10,  -10,  -10,   19,
+       20,   21,  -10,  -10,  -10,   22,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10
+    },
+
+    {
+        7,  -11,  -11,  -11,   23,   24,  -11,  -11,  -11,   25,
+       26,   27,   24,   28,   24,   24,   29,   24,   24,   30,
+       31,   24,   24,   32,   33,   24,   24,   34,  -11,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -11,
+
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11
+    },
+
+    {
+        7,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,   35,  -12,  -12,  -12,
+       36,  -12,  -12,  -12
+    },
+
+    {
+        7,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+       37,   38,  -13,  -13,   39,   40,  -13,   41,   42,   43,
+      -13,  -13,  -13,  -13
+    },
+
+    {
+        7,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,   44,
+      -14,  -14,   45,   46,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14
+
+    },
+
+    {
+        7,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15
+    },
+
+    {
+        7,  -16,  -16,  -16,   47,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16
+    },
+
+    {
+        7,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17
+    },
+
+    {
+        7,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+       48,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18
+    },
+
+    {
+        7,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,   49,  -19,   50,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19
+
+    },
+
+    {
+        7,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,   51,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20
+    },
+
+    {
+        7,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,   52,  -21,  -21,
+
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21
+    },
+
+    {
+        7,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,   53,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22
+    },
+
+    {
+        7,  -23,  -23,  -23,  -23,   54,  -23,  -23,  -23,   54,
+       54,   55,   54,   54,   54,   54,   54,   54,   54,   54,
+
+       56,   54,   54,   57,   54,   54,   54,   58,  -23,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23
+    },
+
+    {
+        7,  -24,  -24,  -24,   59,   24,  -24,  -24,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24
+
+    },
+
+    {
+        7,  -25,  -25,  -25,   59,   24,  -25,  -25,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       62,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25
+    },
+
+    {
+        7,  -26,  -26,  -26,   59,   24,  -26,  -26,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   63,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -26,
+
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26
+    },
+
+    {
+        7,  -27,  -27,  -27,   59,   24,  -27,  -27,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   64,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27
+    },
+
+    {
+        7,  -28,  -28,  -28,   59,   24,  -28,  -28,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   65,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -28,
+      -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28
+    },
+
+    {
+        7,  -29,  -29,  -29,   59,   24,  -29,  -29,   60,   66,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29
+
+    },
+
+    {
+        7,  -30,  -30,  -30,   59,   24,  -30,  -30,   60,   24,
+       24,   24,   24,   67,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30
+    },
+
+    {
+        7,  -31,  -31,  -31,   59,   24,  -31,  -31,   60,   68,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -31,
+
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31
+    },
+
+    {
+        7,  -32,  -32,  -32,   59,   24,  -32,  -32,   60,   69,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32
+    },
+
+    {
+        7,  -33,  -33,  -33,   59,   24,  -33,  -33,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   70,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33
+    },
+
+    {
+        7,  -34,  -34,  -34,   59,   24,  -34,  -34,   60,   24,
+       24,   24,   24,   71,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34
+
+    },
+
+    {
+        7,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35
+    },
+
+    {
+        7,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36
+    },
+
+    {
+        7,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37
+    },
+
+    {
+        7,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38
+    },
+
+    {
+        7,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39
+
+    },
+
+    {
+        7,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40
+    },
+
+    {
+        7,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41
+    },
+
+    {
+        7,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42
+    },
+
+    {
+        7,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43
+    },
+
+    {
+        7,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
+      -44,  -44,  -44,  -44
+
+    },
+
+    {
+        7,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45
+    },
+
+    {
+        7,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46
+    },
+
+    {
+        7,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+       72,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47
+    },
+
+    {
+        7,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+
+      -48,  -48,  -48,  -48,  -48,   73,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48
+    },
+
+    {
+        7,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,   74,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49
+
+    },
+
+    {
+        7,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,   75,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
+      -50,  -50,  -50,  -50
+    },
+
+    {
+        7,  -51,  -51,  -51,  -51,  -51,   76,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+
+      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51
+    },
+
+    {
+        7,  -52,  -52,  -52,  -52,  -52,   77,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52
+    },
+
+    {
+        7,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,   78,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53
+    },
+
+    {
+        7,  -54,  -54,  -54,  -54,   54,  -54,  -54,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -54,
+      -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,  -54,
+      -54,  -54,  -54,  -54
+
+    },
+
+    {
+        7,  -55,  -55,  -55,  -55,   54,  -55,  -55,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   81,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -55,
+      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
+      -55,  -55,  -55,  -55
+    },
+
+    {
+        7,  -56,  -56,  -56,  -56,   54,  -56,  -56,   79,   82,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -56,
+
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56
+    },
+
+    {
+        7,  -57,  -57,  -57,  -57,   54,  -57,  -57,   79,   83,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57
+    },
+
+    {
+        7,  -58,  -58,  -58,  -58,   54,  -58,  -58,   79,   54,
+       54,   54,   54,   84,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58
+    },
+
+    {
+        7,  -59,  -59,  -59,  -59,  -59,  -59,  -59,   85,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59
+
+    },
+
+    {
+        7,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60
+    },
+
+    {
+        7,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,   86,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61
+    },
+
+    {
+        7,  -62,  -62,  -62,   59,   24,  -62,  -62,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   87,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62
+    },
+
+    {
+        7,  -63,  -63,  -63,   88,   24,  -63,  -63,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63
+    },
+
+    {
+        7,  -64,  -64,  -64,   59,   24,  -64,  -64,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       89,   90,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64
+
+    },
+
+    {
+        7,  -65,  -65,  -65,   59,   24,  -65,  -65,   60,   24,
+       24,   91,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65
+    },
+
+    {
+        7,  -66,  -66,  -66,   59,   24,  -66,  -66,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   92,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -66,
+
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66
+    },
+
+    {
+        7,  -67,  -67,  -67,   59,   24,  -67,  -67,   60,   24,
+       24,   24,   24,   24,   93,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67
+    },
+
+    {
+        7,  -68,  -68,  -68,   59,   24,  -68,  -68,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   94,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -68,
+      -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
+      -68,  -68,  -68,  -68
+    },
+
+    {
+        7,  -69,  -69,  -69,   59,   24,  -69,  -69,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   95,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69
+
+    },
+
+    {
+        7,  -70,  -70,  -70,   59,   24,  -70,  -70,   60,   24,
+       24,   24,   24,   24,   24,   96,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -70,
+      -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
+      -70,  -70,  -70,  -70
+    },
+
+    {
+        7,  -71,  -71,  -71,   59,   24,  -71,  -71,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   97,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -71,
+
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71
+    },
+
+    {
+        7,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,   98,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72
+    },
+
+    {
+        7,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+
+      -73,  -73,  -73,   99,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73
+    },
+
+    {
+        7,  -74,  -74,  -74,  -74,  -74,  100,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74
+
+    },
+
+    {
+        7,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  101,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75
+    },
+
+    {
+        7,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+
+      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
+      -76,  -76,  -76,  -76
+    },
+
+    {
+        7,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77
+    },
+
+    {
+        7,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  102,  -78,  -78,
+      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78
+    },
+
+    {
+        7,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79
+
+    },
+
+    {
+        7,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  103,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80
+    },
+
+    {
+        7,  -81,  -81,  -81,  -81,   54,  -81,  -81,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+      104,  105,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -81,
+
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81
+    },
+
+    {
+        7,  -82,  -82,  -82,  -82,   54,  -82,  -82,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,  106,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82
+    },
+
+    {
+        7,  -83,  -83,  -83,  -83,   54,  -83,  -83,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,  107,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83
+    },
+
+    {
+        7,  -84,  -84,  -84,  -84,   54,  -84,  -84,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,  108,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84
+
+    },
+
+    {
+        7,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85
+    },
+
+    {
+        7,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  109,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86
+    },
+
+    {
+        7,  -87,  -87,  -87,  110,   24,  -87,  -87,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87
+    },
+
+    {
+        7,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  111,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88
+    },
+
+    {
+        7,  -89,  -89,  -89,   59,   24,  -89,  -89,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+      112,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -89,
+      -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
+      -89,  -89,  -89,  -89
+
+    },
+
+    {
+        7,  -90,  -90,  -90,   59,   24,  -90,  -90,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,  113,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -90,
+      -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90
+    },
+
+    {
+        7,  -91,  -91,  -91,   59,   24,  -91,  -91,   60,  114,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -91,
+
+      -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91
+    },
+
+    {
+        7,  -92,  -92,  -92,   59,   24,  -92,  -92,   60,   24,
+       24,   24,   24,   24,   24,   24,  115,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92
+    },
+
+    {
+        7,  -93,  -93,  -93,   59,   24,  -93,  -93,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,  116,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93
+    },
+
+    {
+        7,  -94,  -94,  -94,   59,   24,  -94,  -94,   60,   24,
+       24,   24,   24,   24,   24,   24,  117,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94
+
+    },
+
+    {
+        7,  -95,  -95,  -95,   59,   24,  -95,  -95,   60,  118,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95
+    },
+
+    {
+        7,  -96,  -96,  -96,   59,   24,  -96,  -96,   60,   24,
+       24,   24,   24,   24,   24,   24,  119,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -96,
+
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96
+    },
+
+    {
+        7,  -97,  -97,  -97,   59,   24,  -97,  -97,   60,   24,
+      120,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97
+    },
+
+    {
+        7,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+
+      -98,  -98,  -98,  -98,  -98,  -98,  121,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98
+    },
+
+    {
+        7,  -99,  -99,  -99,  -99,  -99,  122,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99
+
+    },
+
+    {
+        7, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100
+    },
+
+    {
+        7, -101, -101, -101, -101, -101,  123, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101
+    },
+
+    {
+        7, -102, -102, -102, -102, -102,  124, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102
+    },
+
+    {
+        7, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+
+     -103, -103, -103, -103, -103, -103,  125, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103
+    },
+
+    {
+        7, -104, -104, -104, -104,   54, -104, -104,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+      126,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104
+
+    },
+
+    {
+        7, -105, -105, -105, -105,   54, -105, -105,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,  127,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105
+    },
+
+    {
+        7, -106, -106, -106, -106,   54, -106, -106,   79,   54,
+       54,   54,   54,   54,   54,   54,  128,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -106,
+
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106
+    },
+
+    {
+        7, -107, -107, -107, -107,   54, -107, -107,   79,  129,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107
+    },
+
+    {
+        7, -108, -108, -108, -108,   54, -108, -108,   79,   54,
+      130,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108
+    },
+
+    {
+        7, -109, -109, -109, -109, -109, -109, -109, -109,  131,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109
+
+    },
+
+    {
+        7, -110, -110, -110, -110, -110, -110, -110,  132, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110
+    },
+
+    {
+        7, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111
+    },
+
+    {
+        7, -112, -112, -112,   59,   24, -112, -112,   60,   24,
+       24,   24,   24,  133,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112
+    },
+
+    {
+        7, -113, -113, -113,   59,   24, -113, -113,   60,   24,
+       24,   24,   24,  134,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113
+    },
+
+    {
+        7, -114, -114, -114,   59,   24, -114, -114,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,  135,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114
+
+    },
+
+    {
+        7, -115, -115, -115,  136,   24, -115, -115,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,  137,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115
+    },
+
+    {
+        7, -116, -116, -116,   59,   24, -116, -116,   60,   24,
+       24,   24,   24,  138,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -116,
+
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116
+    },
+
+    {
+        7, -117, -117, -117,   59,   24, -117, -117,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,  139,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -117,
+     -117, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117
+    },
+
+    {
+        7, -118, -118, -118,   59,   24, -118, -118,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+      140,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -118,
+     -118, -118, -118, -118, -118, -118, -118, -118, -118, -118,
+     -118, -118, -118, -118
+    },
+
+    {
+        7, -119, -119, -119,   59,   24, -119, -119,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,  141,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -119,
+     -119, -119, -119, -119, -119, -119, -119, -119, -119, -119,
+     -119, -119, -119, -119
+
+    },
+
+    {
+        7, -120, -120, -120,   59,   24, -120, -120,  142,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -120,
+     -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+     -120, -120, -120, -120
+    },
+
+    {
+        7, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121,  143, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121, -121
+    },
+
+    {
+        7, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122, -122, -122, -122, -122, -122, -122,
+     -122, -122, -122, -122
+    },
+
+    {
+        7, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
+     -123, -123, -123, -123
+    },
+
+    {
+        7, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124
+
+    },
+
+    {
+        7, -125, -125, -125, -125, -125, -125, -125, -125,  144,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125
+    },
+
+    {
+        7, -126, -126, -126, -126,   54, -126, -126,   79,   54,
+       54,   54,   54,  145,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -126,
+
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126
+    },
+
+    {
+        7, -127, -127, -127, -127,   54, -127, -127,   79,   54,
+       54,   54,   54,  146,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -127,
+     -127, -127, -127, -127, -127, -127, -127, -127, -127, -127,
+     -127, -127, -127, -127
+    },
+
+    {
+        7, -128, -128, -128, -128,   54, -128, -128,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,   54,   54,   54,   54,  147,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -128,
+     -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+     -128, -128, -128, -128
+    },
+
+    {
+        7, -129, -129, -129, -129,   54, -129, -129,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+      148,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129, -129
+
+    },
+
+    {
+        7, -130, -130, -130, -130,   54, -130, -130,  149,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -130,
+     -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
+     -130, -130, -130, -130
+    },
+
+    {
+        7, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131,  150, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131
+    },
+
+    {
+        7, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132
+    },
+
+    {
+        7, -133, -133, -133,   59,   24, -133, -133,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,  151,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -133,
+     -133, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133
+    },
+
+    {
+        7, -134, -134, -134,   59,   24, -134, -134,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,  152,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134
+
+    },
+
+    {
+        7, -135, -135, -135,   59,   24, -135, -135,   60,   24,
+       24,   24,   24,  153,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135
+    },
+
+    {
+        7, -136, -136, -136, -136, -136, -136, -136,  154, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136
+    },
+
+    {
+        7, -137, -137, -137, -137,  155, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137,   86, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137
+    },
+
+    {
+        7, -138, -138, -138,   59,   24, -138, -138,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,  156,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138
+    },
+
+    {
+        7, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+      157, -139,  158, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139,  159, -139,   86, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139
+
+    },
+
+    {
+        7, -140, -140, -140,   59,   24, -140, -140,  160,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -140,
+     -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140
+    },
+
+    {
+        7, -141, -141, -141,   59,   24, -141, -141,   60,   24,
+       24,   24,   24,  161,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -141,
+
+     -141, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141
+    },
+
+    {
+        7, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142
+    },
+
+    {
+        7, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+
+     -143, -143, -143, -143, -143, -143, -143, -143,  162, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143
+    },
+
+    {
+        7, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144,  163, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144, -144, -144, -144, -144, -144, -144,
+     -144, -144, -144, -144
+
+    },
+
+    {
+        7, -145, -145, -145, -145,   54, -145, -145,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,  164,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145
+    },
+
+    {
+        7, -146, -146, -146, -146,   54, -146, -146,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,  165,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -146,
+
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146
+    },
+
+    {
+        7, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+      166, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147,  167, -147,  103, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147
+    },
+
+    {
+        7, -148, -148, -148, -148,   54, -148, -148,  168,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148
+    },
+
+    {
+        7, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149
+
+    },
+
+    {
+        7, -150, -150, -150,  169, -150, -150, -150,  170, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150
+    },
+
+    {
+        7, -151, -151, -151,   59,   24, -151, -151,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,  171,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -151,
+
+     -151, -151, -151, -151, -151, -151, -151, -151, -151, -151,
+     -151, -151, -151, -151
+    },
+
+    {
+        7, -152, -152, -152,   59,   24, -152, -152,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,  172,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -152,
+     -152, -152, -152, -152, -152, -152, -152, -152, -152, -152,
+     -152, -152, -152, -152
+    },
+
+    {
+        7, -153, -153, -153,   59,   24, -153, -153,   60,   24,
+       24,   24,  173,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -153,
+     -153, -153, -153, -153, -153, -153, -153, -153, -153, -153,
+     -153, -153, -153, -153
+    },
+
+    {
+        7, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154, -154, -154, -154, -154, -154, -154,
+     -154, -154, -154, -154
+
+    },
+
+    {
+        7, -155, -155, -155,  174,  155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155
+    },
+
+    {
+        7, -156, -156, -156,   59,   24, -156, -156,   60,   24,
+       24,  175,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -156,
+
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156
+    },
+
+    {
+        7, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157,  176, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157
+    },
+
+    {
+        7, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+
+     -158, -158,  177, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+     -158, -158, -158, -158
+    },
+
+    {
+        7, -159, -159, -159, -159, -159, -159, -159, -159,  178,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159, -159, -159, -159, -159, -159, -159,
+     -159, -159, -159, -159
+
+    },
+
+    {
+        7,  179,  179,  179,  179,  179,  179, -160,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179
+    },
+
+    {
+        7, -161, -161, -161,   59,   24, -161, -161,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,  180,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -161,
+
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161
+    },
+
+    {
+        7, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162,  181, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
+     -162, -162, -162, -162
+    },
+
+    {
+        7, -163, -163, -163, -163, -163, -163, -163,  182, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163, -163, -163, -163, -163, -163, -163,
+     -163, -163, -163, -163
+    },
+
+    {
+        7, -164, -164, -164, -164,   54, -164, -164,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,  183,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164
+
+    },
+
+    {
+        7, -165, -165, -165, -165,   54, -165, -165,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,  184,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165
+    },
+
+    {
+        7, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166,  185, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166
+    },
+
+    {
+        7, -167, -167, -167, -167, -167, -167, -167, -167,  186,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167, -167, -167, -167, -167, -167, -167,
+     -167, -167, -167, -167
+    },
+
+    {
+        7, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168, -168, -168, -168, -168, -168, -168,
+     -168, -168, -168, -168
+    },
+
+    {
+        7, -169, -169, -169, -169, -169, -169, -169,  187, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169, -169, -169, -169, -169, -169, -169,
+     -169, -169, -169, -169
+
+    },
+
+    {
+        7, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170, -170, -170, -170, -170, -170, -170,
+     -170, -170, -170, -170
+    },
+
+    {
+        7, -171, -171, -171,   59,   24, -171, -171,  188,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -171,
+
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171
+    },
+
+    {
+        7, -172, -172, -172,   59,   24, -172, -172,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,  189,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172
+    },
+
+    {
+        7, -173, -173, -173,   59,   24, -173, -173,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,  190,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173
+    },
+
+    {
+        7, -174, -174, -174, -174, -174, -174, -174,  191, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174, -174, -174, -174, -174, -174, -174,
+     -174, -174, -174, -174
+
+    },
+
+    {
+        7, -175, -175, -175,   59,   24, -175, -175,   60,  192,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175
+    },
+
+    {
+        7, -176, -176, -176, -176, -176, -176, -176, -176,  193,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176
+    },
+
+    {
+        7, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177,  194,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
+     -177, -177, -177, -177
+    },
+
+    {
+        7, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+
+     -178, -178, -178, -178,  195, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178
+    },
+
+    {
+        7,  179,  179,  179,  179,  179,  179, -179,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
+      179,  179,  179,  179
+
+    },
+
+    {
+        7, -180, -180, -180,   59,   24, -180, -180,   60,   24,
+       24,  196,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -180,
+     -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+     -180, -180, -180, -180
+    },
+
+    {
+        7, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181,  197, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181
+    },
+
+    {
+        7, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182, -182, -182, -182, -182, -182, -182,
+     -182, -182, -182, -182
+    },
+
+    {
+        7, -183, -183, -183, -183,   54, -183, -183,  198,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -183,
+     -183, -183, -183, -183, -183, -183, -183, -183, -183, -183,
+     -183, -183, -183, -183
+    },
+
+    {
+        7, -184, -184, -184, -184,   54, -184, -184,   79,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,  199,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184
+
+    },
+
+    {
+        7, -185, -185, -185, -185, -185, -185, -185, -185,  200,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185
+    },
+
+    {
+        7, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186,  201, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186
+    },
+
+    {
+        7, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187, -187, -187, -187, -187, -187, -187,
+     -187, -187, -187, -187
+    },
+
+    {
+        7,  202,  202,  202,  202,  202,  202, -188,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+      202,  202,  202,  202
+    },
+
+    {
+        7, -189, -189, -189,   59,   24, -189, -189,  203,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189
+
+    },
+
+    {
+        7, -190, -190, -190,   59,   24, -190, -190,   60,   24,
+       24,   24,   24,  204,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190
+    },
+
+    {
+        7, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191
+    },
+
+    {
+        7, -192, -192, -192,   59,   24, -192, -192,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,  205,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -192,
+     -192, -192, -192, -192, -192, -192, -192, -192, -192, -192,
+     -192, -192, -192, -192
+    },
+
+    {
+        7, -193, -193, -193, -193, -193, -193, -193,  206, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193, -193, -193, -193, -193, -193, -193,
+     -193, -193, -193, -193
+    },
+
+    {
+        7, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194,  207,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194
+
+    },
+
+    {
+        7, -195, -195, -195, -195, -195, -195, -195,  208, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195, -195, -195, -195, -195, -195, -195,
+     -195, -195, -195, -195
+    },
+
+    {
+        7, -196, -196, -196,   59,   24, -196, -196,   60,  209,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -196,
+
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196
+    },
+
+    {
+        7, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197,  210,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197, -197, -197, -197, -197, -197, -197,
+     -197, -197, -197, -197
+    },
+
+    {
+        7, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198, -198, -198, -198, -198, -198, -198,
+     -198, -198, -198, -198
+    },
+
+    {
+        7, -199, -199, -199, -199,   54, -199, -199,  211,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   80,   54,
+       54,   54,   54,   54,   54,   54,   54,   54,   54, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199
+
+    },
+
+    {
+        7, -200, -200, -200, -200, -200, -200, -200,  212, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+     -200, -200, -200, -200
+    },
+
+    {
+        7, -201, -201, -201, -201, -201, -201, -201,  213, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201
+    },
+
+    {
+        7,  202,  202,  202,  202,  202,  202, -202,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
+      202,  202,  202,  202
+    },
+
+    {
+        7, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203, -203, -203, -203, -203, -203, -203,
+     -203, -203, -203, -203
+    },
+
+    {
+        7, -204, -204, -204,   59,   24, -204, -204,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,  214,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204
+
+    },
+
+    {
+        7, -205, -205, -205,   59,   24, -205, -205,   60,   24,
+       24,   24,   24,  215,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -205,
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205
+    },
+
+    {
+        7, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+
+     -206, -206, -206, -206, -206, -206, -206, -206, -206, -206,
+     -206, -206, -206, -206
+    },
+
+    {
+        7, -207, -207, -207, -207, -207, -207, -207, -207,  216,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207
+    },
+
+    {
+        7, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208, -208, -208, -208, -208, -208, -208,
+     -208, -208, -208, -208
+    },
+
+    {
+        7, -209, -209, -209,   59,   24, -209, -209,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,  217,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -209,
+     -209, -209, -209, -209, -209, -209, -209, -209, -209, -209,
+     -209, -209, -209, -209
+
+    },
+
+    {
+        7, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210,  218,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210
+    },
+
+    {
+        7, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+
+     -211, -211, -211, -211, -211, -211, -211, -211, -211, -211,
+     -211, -211, -211, -211
+    },
+
+    {
+        7, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212
+    },
+
+    {
+        7, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213
+    },
+
+    {
+        7, -214, -214, -214,   59,   24, -214, -214,   60,   24,
+       24,  219,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -214,
+     -214, -214, -214, -214, -214, -214, -214, -214, -214, -214,
+     -214, -214, -214, -214
+
+    },
+
+    {
+        7, -215, -215, -215,   59,   24, -215, -215,   60,   24,
+       24,   24,  220,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -215,
+     -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
+     -215, -215, -215, -215
+    },
+
+    {
+        7, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216,  221, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+
+     -216, -216, -216, -216, -216, -216, -216, -216, -216, -216,
+     -216, -216, -216, -216
+    },
+
+    {
+        7, -217, -217, -217,   59,   24, -217, -217,   60,   24,
+       24,   24,   24,  222,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217
+    },
+
+    {
+        7, -218, -218, -218, -218, -218, -218, -218, -218,  223,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218
+    },
+
+    {
+        7, -219, -219, -219,   59,   24, -219, -219,   60,   24,
+       24,   24,   24,  224,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -219,
+     -219, -219, -219, -219, -219, -219, -219, -219, -219, -219,
+     -219, -219, -219, -219
+
+    },
+
+    {
+        7, -220, -220, -220,   59,   24, -220, -220,   60,   24,
+      225,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -220,
+     -220, -220, -220, -220, -220, -220, -220, -220, -220, -220,
+     -220, -220, -220, -220
+    },
+
+    {
+        7, -221, -221, -221, -221, -221, -221, -221,  226, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221,  227, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221
+    },
+
+    {
+        7, -222, -222, -222,   59,   24, -222, -222,   60,   24,
+       24,   24,  228,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -222,
+     -222, -222, -222, -222, -222, -222, -222, -222, -222, -222,
+     -222, -222, -222, -222
+    },
+
+    {
+        7, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+
+     -223, -223, -223, -223,  229, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223, -223, -223, -223, -223, -223, -223,
+     -223, -223, -223, -223
+    },
+
+    {
+        7, -224, -224, -224,   59,   24, -224, -224,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,  230,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224
+
+    },
+
+    {
+        7, -225, -225, -225,   59,   24, -225, -225,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,  231,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -225,
+     -225, -225, -225, -225, -225, -225, -225, -225, -225, -225,
+     -225, -225, -225, -225
+    },
+
+    {
+        7, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226
+    },
+
+    {
+        7, -227, -227, -227, -227, -227, -227, -227,  232, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227
+    },
+
+    {
+        7, -228, -228, -228,   59,   24, -228, -228,   60,   24,
+      233,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228
+    },
+
+    {
+        7, -229, -229, -229, -229, -229, -229, -229,  234, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229,  235, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229, -229, -229, -229, -229, -229, -229,
+     -229, -229, -229, -229
+
+    },
+
+    {
+        7, -230, -230, -230,   59,   24, -230, -230,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,  236,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -230,
+     -230, -230, -230, -230, -230, -230, -230, -230, -230, -230,
+     -230, -230, -230, -230
+    },
+
+    {
+        7, -231, -231, -231,   59,   24, -231, -231,   60,  237,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -231,
+
+     -231, -231, -231, -231, -231, -231, -231, -231, -231, -231,
+     -231, -231, -231, -231
+    },
+
+    {
+        7, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232, -232, -232, -232, -232, -232, -232,
+     -232, -232, -232, -232
+    },
+
+    {
+        7, -233, -233, -233,   59,   24, -233, -233,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,  238,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -233,
+     -233, -233, -233, -233, -233, -233, -233, -233, -233, -233,
+     -233, -233, -233, -233
+    },
+
+    {
+        7, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234, -234, -234, -234, -234, -234, -234,
+     -234, -234, -234, -234
+
+    },
+
+    {
+        7, -235, -235, -235, -235, -235, -235, -235,  239, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235, -235, -235, -235, -235, -235, -235,
+     -235, -235, -235, -235
+    },
+
+    {
+        7, -236, -236, -236,  240,   24, -236, -236,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -236,
+
+     -236, -236, -236, -236, -236, -236, -236, -236, -236, -236,
+     -236, -236, -236, -236
+    },
+
+    {
+        7, -237, -237, -237,   59,   24, -237, -237,   60,   24,
+       24,  241,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -237,
+     -237, -237, -237, -237, -237, -237, -237, -237, -237, -237,
+     -237, -237, -237, -237
+    },
+
+    {
+        7, -238, -238, -238,   59,   24, -238, -238,   60,  242,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -238,
+     -238, -238, -238, -238, -238, -238, -238, -238, -238, -238,
+     -238, -238, -238, -238
+    },
+
+    {
+        7, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239, -239, -239, -239, -239, -239, -239,
+     -239, -239, -239, -239
+
+    },
+
+    {
+        7, -240, -240, -240, -240, -240, -240, -240,  243, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240, -240, -240, -240, -240, -240, -240,
+     -240, -240, -240, -240
+    },
+
+    {
+        7, -241, -241, -241,   59,   24, -241, -241,   60,   24,
+       24,   24,   24,  244,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -241,
+
+     -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
+     -241, -241, -241, -241
+    },
+
+    {
+        7, -242, -242, -242,   59,   24, -242, -242,   60,   24,
+       24,  245,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -242,
+     -242, -242, -242, -242, -242, -242, -242, -242, -242, -242,
+     -242, -242, -242, -242
+    },
+
+    {
+        7, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243, -243, -243, -243, -243, -243, -243,
+     -243, -243, -243, -243
+    },
+
+    {
+        7, -244, -244, -244,  246,   24, -244, -244,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -244,
+     -244, -244, -244, -244, -244, -244, -244, -244, -244, -244,
+     -244, -244, -244, -244
+
+    },
+
+    {
+        7, -245, -245, -245,   59,   24, -245, -245,   60,   24,
+       24,   24,   24,  247,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -245,
+     -245, -245, -245, -245, -245, -245, -245, -245, -245, -245,
+     -245, -245, -245, -245
+    },
+
+    {
+        7, -246, -246, -246, -246, -246, -246, -246,  248, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+
+     -246, -246, -246, -246, -246, -246, -246, -246, -246, -246,
+     -246, -246, -246, -246
+    },
+
+    {
+        7, -247, -247, -247,  249,   24, -247, -247,   60,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   61,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24, -247,
+     -247, -247, -247, -247, -247, -247, -247, -247, -247, -247,
+     -247, -247, -247, -247
+    },
+
+    {
+        7, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248, -248, -248, -248, -248, -248, -248,
+     -248, -248, -248, -248
+    },
+
+    {
+        7, -249, -249, -249, -249, -249, -249, -249,  250, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249, -249, -249, -249, -249, -249, -249,
+     -249, -249, -249, -249
+
+    },
+
+    {
+        7, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250, -250, -250, -250, -250, -250, -250,
+     -250, -250, -250, -250
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 51
+#define YY_END_OF_BUFFER 52
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[251] =
+    {   0,
+        0,    0,    0,    0,    0,    0,   52,   48,   49,   48,
+       48,   48,   48,   48,   50,   50,   51,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   11,   10,   36,   34,   38,   39,
+       35,   33,   37,   30,   32,   31,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   40,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    4,    3,    0,   44,    0,
+        0,    0,    0,    0,   46,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    5,
+
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       23,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   22,    2,    1,    0,    0,    0,    0,    0,    0,
+        0,    6,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   28,    0,    0,    0,    0,    0,    0,   29,    0,
+        0,    0,    0,   42,    0,    0,    0,    0,    0,   26,
+        0,    0,    0,    0,    0,    0,    0,   27,    0,   43,
+        0,    0,    0,    0,    0,    0,    0,    0,   26,    0,
+        0,   45,    0,    0,    0,    0,   47,   24,    0,    0,
+       41,    0,    0,    0,    0,    0,    0,   25,    0,    0,
+
+        0,   24,   20,    0,    0,   18,    0,   16,    0,    0,
+       21,   19,   17,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   14,    0,    0,    0,    0,
+        0,   12,    0,   15,    0,    0,    0,    0,   13,    0,
+        0,    0,    9,    0,    0,    0,    0,    7,    0,    8
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    3,    1,    1,
+        1,    1,    1,    1,    1,    1,    4,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    5,    1,    6,    7,
+        1,    8,    1,    1,    9,   10,   11,   12,   13,   14,
+       15,   16,   17,   18,   18,   19,   20,   21,   22,   23,
+       18,   24,   25,   26,   18,   27,   18,   18,   18,   18,
+        1,    1,    1,    1,   28,    1,   29,   18,   18,   18,
+
+       18,   18,   30,   18,   18,   18,   18,   31,   32,   18,
+       33,   34,   35,   18,   36,   37,   38,   18,   18,   18,
+       18,   18,    1,    1,    1,    1,    1,    1,    1,   39,
+        1,    1,   40,   41,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,   42,   43,    1,    1,    1,
+        1,   44,    1,    1,    1,    1,    1,    1,   45,    1,
+       46,    1,    1,    1,   47,   48,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,   49,    1,    1,    1,    1,    1,    1,
+       50,    1,    1,   51,   52,    1,   53,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium-postlatex.l"
+#line 4 "apertium-postlatex.l"
+
+
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+#include <apertium/latex_accentsmap.h>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+AccentsMap accentsMap(true);
+wstring closesym = L"";
+string memconv = "";
+
+wstring convertir(string const &multibyte, int const length)
+{
+  memconv.append(multibyte.c_str(), length);
+  int tam = memconv.size();
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    delete[] retval;
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    delete[] retval;
+    return ret;
+  }
+}
+
+
+
+
+
+
+#line 2936 "apertium_postlatex.cc"
+
+#define INITIAL 0
+#define mathenv 1
+#define readbrackets 2
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 78 "apertium-postlatex.l"
+
+
+
+
+#line 3144 "apertium_postlatex.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 82 "apertium-postlatex.l"
+{
+	fputws(L"\"",yyout);
+}
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 85 "apertium-postlatex.l"
+{
+	fputws(L"\'",yyout);
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 88 "apertium-postlatex.l"
+{
+	fputws(L"<",yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 91 "apertium-postlatex.l"
+{
+	fputws(L">",yyout);
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 94 "apertium-postlatex.l"
+{
+	fputws(L"\\&",yyout);
+}
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 97 "apertium-postlatex.l"
+{
+	fputws(L"&",yyout);
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 101 "apertium-postlatex.l"
+{
+        fputws(L"\\{", yyout);
+}
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 105 "apertium-postlatex.l"
+{
+        fputws(L"\\}", yyout);
+}
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 109 "apertium-postlatex.l"
+{
+        fputws(L"\\%", yyout);
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 113 "apertium-postlatex.l"
+{
+	fputws(L"?`",yyout);
+}
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 117 "apertium-postlatex.l"
+{
+	fputws(L"!`",yyout);
+}
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 123 "apertium-postlatex.l"
+{
+	BEGIN(mathenv);
+	fputws(L"$$",yyout);
+}
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 128 "apertium-postlatex.l"
+{
+	fputws(L"$$",yyout);
+	BEGIN(0);
+}
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 134 "apertium-postlatex.l"
+{
+	BEGIN(mathenv);
+	fputws(L"$",yyout);
+}
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 139 "apertium-postlatex.l"
+{
+	fputws(L"$",yyout);
+	BEGIN(0);
+}
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 144 "apertium-postlatex.l"
+{
+	fputws(L"\\(",yyout);
+}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 148 "apertium-postlatex.l"
+{
+	fputws(L"\\)",yyout);
+}
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 152 "apertium-postlatex.l"
+{
+	fputws(L"\\[",yyout);
+}
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 156 "apertium-postlatex.l"
+{
+	fputws(L"\\]",yyout);
+}
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 161 "apertium-postlatex.l"
+{
+	fputws(L"{",yyout);
+}
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 165 "apertium-postlatex.l"
+{
+	fputws(L"}",yyout);
+}
+	YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 169 "apertium-postlatex.l"
+{
+	fputws(L"~",yyout);
+}
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 175 "apertium-postlatex.l"
+{
+	fputws(L"\\\\",yyout);
+}
+	YY_BREAK
+case 24:
+/* rule 24 can match eol */
+YY_RULE_SETUP
+#line 179 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\%")+convertir(yytext+9,yyleng-9)).c_str(),yyout);
+}
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 183 "apertium-postlatex.l"
+{
+}
+	YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 187 "apertium-postlatex.l"
+{
+	fputws((wstring(L"[")+convertir(yytext+7,yyleng-7)).c_str(),yyout);
+}
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 190 "apertium-postlatex.l"
+{
+	fputws(L"]", yyout);
+}
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 194 "apertium-postlatex.l"
+{
+        fputws(L"\\verb", yyout);
+}
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 198 "apertium-postlatex.l"
+{
+        ;
+}
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 204 "apertium-postlatex.l"
+{
+	fputws(L"\\l", yyout);
+}
+	YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 209 "apertium-postlatex.l"
+{
+	fputws(L"{\\oe}",yyout);
+}
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 213 "apertium-postlatex.l"
+{
+	fputws(L"{\\OE}",yyout);
+}
+	YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 217 "apertium-postlatex.l"
+{
+	fputws(L"{\\ae}",yyout);
+}
+	YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 221 "apertium-postlatex.l"
+{
+	fputws(L"{\\AE}",yyout);
+}
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 225 "apertium-postlatex.l"
+{
+	fputws(L"{\\aa}",yyout);
+}
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 229 "apertium-postlatex.l"
+{
+	fputws(L"{\\AA}",yyout);
+}
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 233 "apertium-postlatex.l"
+{
+	fputws(L"{\\o}",yyout);
+}
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 237 "apertium-postlatex.l"
+{
+	fputws(L"{\\O}",yyout);
+}
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 241 "apertium-postlatex.l"
+{
+	fputws(L"{\\ss}",yyout);
+}
+	YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 245 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\\begin{")+convertir(yytext+1,yyleng-2)+wstring(L"}")).c_str(),yyout);
+}
+	YY_BREAK
+case 41:
+YY_RULE_SETUP
+#line 249 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\\#")+convertir(yytext+6,yyleng-8)).c_str(),yyout);
+}
+	YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 253 "apertium-postlatex.l"
+{
+        fputws(L"\\#", yyout);
+}
+	YY_BREAK
+case 43:
+YY_RULE_SETUP
+#line 257 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\\begin{")+convertir(yytext+1,yyleng-7)+wstring(L"*}")).c_str(),yyout);
+}
+	YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 261 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\\end{")+convertir(yytext+2,yyleng-3)+wstring(L"}")).c_str(),yyout);
+}
+	YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 265 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\\end{")+convertir(yytext+2,yyleng-8)+wstring(L"*}")).c_str(),yyout);
+}
+	YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 269 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\\")+convertir(yytext+1,yyleng-3)).c_str(),yyout);
+}
+	YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 273 "apertium-postlatex.l"
+{
+	fputws((wstring(L"\\")+convertir(yytext+1,yyleng-8)+wstring(L"*")).c_str(),yyout);
+}
+	YY_BREAK
+/*NO ENTIENDO ESTA REGLA
+ \#	{
+        fputws(L"\\#", yyout);
+ }*/
+case 48:
+YY_RULE_SETUP
+#line 282 "apertium-postlatex.l"
+{
+	wstring wt = convertir(yytext,yyleng);
+	wstring wa = accentsMap.get(wt);
+	if( wa == L"" )
+		fputws(wt.c_str(),yyout);
+ 	else
+		fputws(wstring(L"\\"+wa.substr(0,1)+L"{"+wa.substr(1)+L"}").c_str(),yyout);
+}
+	YY_BREAK
+case 49:
+/* rule 49 can match eol */
+YY_RULE_SETUP
+#line 292 "apertium-postlatex.l"
+{
+	fputws(convertir(yytext,yyleng).c_str(),yyout);
+}
+	YY_BREAK
+case 50:
+/* rule 50 can match eol */
+YY_RULE_SETUP
+#line 296 "apertium-postlatex.l"
+{
+	fputws(convertir(yytext,yyleng).c_str(),yyout);
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(mathenv):
+case YY_STATE_EOF(readbrackets):
+#line 301 "apertium-postlatex.l"
+{
+	return 0;
+}
+	YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 304 "apertium-postlatex.l"
+ECHO;
+	YY_BREAK
+#line 3568 "apertium_postlatex.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 304 "apertium-postlatex.l"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+
+  cerr << "LaTeX format postprocessor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  yylex();
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_postlatex_raw.cc b/apertium/apertium_postlatex_raw.cc
new file mode 100644
index 0000000..903d899
--- /dev/null
+++ b/apertium/apertium_postlatex_raw.cc
@@ -0,0 +1,4063 @@
+#line 2 "apertium_postlatex_raw.cc"
+
+#line 4 "apertium_postlatex_raw.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][42] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0
+    },
+
+    {
+        7,    8,    8,    9,   10,    8,    8,    8,   11,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,   12
+
+    },
+
+    {
+        7,    8,    8,    9,   10,    8,    8,    8,   11,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,   12
+    },
+
+    {
+        7,   13,   13,   13,   13,   13,   13,   13,   14,   13,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   13
+
+    },
+
+    {
+        7,   13,   13,   13,   13,   13,   13,   13,   14,   13,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   13
+    },
+
+    {
+        7,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15
+
+    },
+
+    {
+        7,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
+       15,   15
+    },
+
+    {
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7
+
+    },
+
+    {
+        7,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8
+    },
+
+    {
+        7,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9
+
+    },
+
+    {
+        7,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,   16,  -10,  -10,  -10,  -10,  -10,  -10,  -10,   17,
+       18,   19,  -10,  -10,  -10,   20,  -10,  -10,  -10,  -10,
+      -10,  -10
+    },
+
+    {
+        7,  -11,  -11,  -11,  -11,   21,   22,  -11,  -11,  -11,
+       23,   24,   25,   22,   26,   22,   22,   22,   22,   27,
+       28,   22,   22,   29,   30,   22,   22,   31,  -11,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -11,
+      -11,  -11
+
+    },
+
+    {
+        7,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,   32,
+       33,  -12
+    },
+
+    {
+        7,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
+      -13,  -13
+
+    },
+
+    {
+        7,  -14,  -14,  -14,  -14,   34,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14
+    },
+
+    {
+        7,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15
+
+    },
+
+    {
+        7,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,   35,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16
+    },
+
+    {
+        7,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,   36,  -17,   37,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17
+
+    },
+
+    {
+        7,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,   38,  -18,  -18,
+      -18,  -18
+    },
+
+    {
+        7,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
+      -19,  -19,  -19,  -19,  -19,  -19,  -19,   39,  -19,  -19,
+      -19,  -19
+
+    },
+
+    {
+        7,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
+      -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,   40,  -20,
+      -20,  -20
+    },
+
+    {
+        7,  -21,  -21,  -21,  -21,  -21,   41,  -21,  -21,  -21,
+       41,   41,   42,   41,   41,   41,   41,   41,   41,   41,
+       43,   41,   41,   44,   41,   41,   41,   45,  -21,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -21,
+      -21,  -21
+
+    },
+
+    {
+        7,  -22,  -22,  -22,  -22,   46,   22,  -22,  -22,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -22,
+      -22,  -22
+    },
+
+    {
+        7,  -23,  -23,  -23,  -23,   46,   22,  -23,  -23,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       49,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -23,
+      -23,  -23
+
+    },
+
+    {
+        7,  -24,  -24,  -24,  -24,   46,   22,  -24,  -24,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   50,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -24,
+      -24,  -24
+    },
+
+    {
+        7,  -25,  -25,  -25,  -25,   46,   22,  -25,  -25,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   51,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -25,
+      -25,  -25
+
+    },
+
+    {
+        7,  -26,  -26,  -26,  -26,   46,   22,  -26,  -26,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   52,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -26,
+      -26,  -26
+    },
+
+    {
+        7,  -27,  -27,  -27,  -27,   46,   22,  -27,  -27,   47,
+       22,   22,   22,   22,   53,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -27,
+      -27,  -27
+
+    },
+
+    {
+        7,  -28,  -28,  -28,  -28,   46,   22,  -28,  -28,   47,
+       54,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -28,
+      -28,  -28
+    },
+
+    {
+        7,  -29,  -29,  -29,  -29,   46,   22,  -29,  -29,   47,
+       55,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -29,
+      -29,  -29
+
+    },
+
+    {
+        7,  -30,  -30,  -30,  -30,   46,   22,  -30,  -30,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   56,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -30,
+      -30,  -30
+    },
+
+    {
+        7,  -31,  -31,  -31,  -31,   46,   22,  -31,  -31,   47,
+       22,   22,   22,   22,   57,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -31,
+      -31,  -31
+
+    },
+
+    {
+        7,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32
+    },
+
+    {
+        7,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33
+
+    },
+
+    {
+        7,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+       58,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,  -34,
+      -34,  -34
+    },
+
+    {
+        7,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,   59,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35
+
+    },
+
+    {
+        7,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36,  -36,  -36,   60,  -36,  -36,  -36,  -36,  -36,
+      -36,  -36
+    },
+
+    {
+        7,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,   61,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37
+
+    },
+
+    {
+        7,  -38,  -38,  -38,  -38,  -38,  -38,   62,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
+      -38,  -38
+    },
+
+    {
+        7,  -39,  -39,  -39,  -39,  -39,  -39,   63,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39
+
+    },
+
+    {
+        7,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,   64,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40
+    },
+
+    {
+        7,  -41,  -41,  -41,  -41,  -41,   41,  -41,  -41,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -41,
+      -41,  -41
+
+    },
+
+    {
+        7,  -42,  -42,  -42,  -42,  -42,   41,  -42,  -42,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   67,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -42,
+      -42,  -42
+    },
+
+    {
+        7,  -43,  -43,  -43,  -43,  -43,   41,  -43,  -43,   65,
+       68,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -43,
+      -43,  -43
+
+    },
+
+    {
+        7,  -44,  -44,  -44,  -44,  -44,   41,  -44,  -44,   65,
+       69,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -44,
+      -44,  -44
+    },
+
+    {
+        7,  -45,  -45,  -45,  -45,  -45,   41,  -45,  -45,   65,
+       41,   41,   41,   41,   70,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -45,
+      -45,  -45
+
+    },
+
+    {
+        7,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,   71,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
+      -46,  -46
+    },
+
+    {
+        7,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47
+
+    },
+
+    {
+        7,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,   72,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48
+    },
+
+    {
+        7,  -49,  -49,  -49,  -49,   46,   22,  -49,  -49,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   73,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -49,
+      -49,  -49
+
+    },
+
+    {
+        7,  -50,  -50,  -50,  -50,   74,   22,  -50,  -50,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -50,
+      -50,  -50
+    },
+
+    {
+        7,  -51,  -51,  -51,  -51,   46,   22,  -51,  -51,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       75,   76,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -51,
+      -51,  -51
+
+    },
+
+    {
+        7,  -52,  -52,  -52,  -52,   46,   22,  -52,  -52,   47,
+       22,   22,   77,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -52,
+      -52,  -52
+    },
+
+    {
+        7,  -53,  -53,  -53,  -53,   46,   22,  -53,  -53,   47,
+       22,   22,   22,   22,   22,   78,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -53,
+      -53,  -53
+
+    },
+
+    {
+        7,  -54,  -54,  -54,  -54,   46,   22,  -54,  -54,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   79,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -54,
+      -54,  -54
+    },
+
+    {
+        7,  -55,  -55,  -55,  -55,   46,   22,  -55,  -55,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   80,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -55,
+      -55,  -55
+
+    },
+
+    {
+        7,  -56,  -56,  -56,  -56,   46,   22,  -56,  -56,   47,
+       22,   22,   22,   22,   22,   22,   81,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -56,
+      -56,  -56
+    },
+
+    {
+        7,  -57,  -57,  -57,  -57,   46,   22,  -57,  -57,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   82,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -57,
+      -57,  -57
+
+    },
+
+    {
+        7,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+       83,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58
+    },
+
+    {
+        7,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,   84,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59
+
+    },
+
+    {
+        7,  -60,  -60,  -60,  -60,  -60,  -60,   85,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60
+    },
+
+    {
+        7,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,   86,  -61,  -61,  -61,
+      -61,  -61
+
+    },
+
+    {
+        7,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62
+    },
+
+    {
+        7,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63
+
+    },
+
+    {
+        7,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,   87,  -64,  -64,
+      -64,  -64
+    },
+
+    {
+        7,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65
+
+    },
+
+    {
+        7,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,   88,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66
+    },
+
+    {
+        7,  -67,  -67,  -67,  -67,  -67,   41,  -67,  -67,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       89,   90,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -67,
+      -67,  -67
+
+    },
+
+    {
+        7,  -68,  -68,  -68,  -68,  -68,   41,  -68,  -68,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   91,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -68,
+      -68,  -68
+    },
+
+    {
+        7,  -69,  -69,  -69,  -69,  -69,   41,  -69,  -69,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   92,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -69,
+      -69,  -69
+
+    },
+
+    {
+        7,  -70,  -70,  -70,  -70,  -70,   41,  -70,  -70,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   93,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -70,
+      -70,  -70
+    },
+
+    {
+        7,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71
+
+    },
+
+    {
+        7,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,   94,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72
+    },
+
+    {
+        7,  -73,  -73,  -73,  -73,   95,   22,  -73,  -73,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -73,
+      -73,  -73
+
+    },
+
+    {
+        7,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,   96,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74
+    },
+
+    {
+        7,  -75,  -75,  -75,  -75,   46,   22,  -75,  -75,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       97,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -75,
+      -75,  -75
+
+    },
+
+    {
+        7,  -76,  -76,  -76,  -76,   46,   22,  -76,  -76,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   98,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -76,
+      -76,  -76
+    },
+
+    {
+        7,  -77,  -77,  -77,  -77,   46,   22,  -77,  -77,   47,
+       99,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -77,
+      -77,  -77
+
+    },
+
+    {
+        7,  -78,  -78,  -78,  -78,   46,   22,  -78,  -78,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,  100,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -78,
+      -78,  -78
+    },
+
+    {
+        7,  -79,  -79,  -79,  -79,   46,   22,  -79,  -79,   47,
+       22,   22,   22,   22,   22,   22,   22,  101,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -79,
+      -79,  -79
+
+    },
+
+    {
+        7,  -80,  -80,  -80,  -80,   46,   22,  -80,  -80,   47,
+      102,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -80,
+      -80,  -80
+    },
+
+    {
+        7,  -81,  -81,  -81,  -81,   46,   22,  -81,  -81,   47,
+       22,   22,   22,   22,   22,   22,   22,  103,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -81,
+      -81,  -81
+
+    },
+
+    {
+        7,  -82,  -82,  -82,  -82,   46,   22,  -82,  -82,   47,
+       22,  104,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -82,
+      -82,  -82
+    },
+
+    {
+        7,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  105,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83
+
+    },
+
+    {
+        7,  -84,  -84,  -84,  -84,  -84,  -84,  106,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84
+    },
+
+    {
+        7,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85
+
+    },
+
+    {
+        7,  -86,  -86,  -86,  -86,  -86,  -86,  107,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86
+    },
+
+    {
+        7,  -87,  -87,  -87,  -87,  -87,  -87,  108,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87
+
+    },
+
+    {
+        7,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  109,  -88,  -88,  -88,
+      -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
+      -88,  -88
+    },
+
+    {
+        7,  -89,  -89,  -89,  -89,  -89,   41,  -89,  -89,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+      110,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -89,
+      -89,  -89
+
+    },
+
+    {
+        7,  -90,  -90,  -90,  -90,  -90,   41,  -90,  -90,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,  111,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -90,
+      -90,  -90
+    },
+
+    {
+        7,  -91,  -91,  -91,  -91,  -91,   41,  -91,  -91,   65,
+       41,   41,   41,   41,   41,   41,   41,  112,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -91,
+      -91,  -91
+
+    },
+
+    {
+        7,  -92,  -92,  -92,  -92,  -92,   41,  -92,  -92,   65,
+      113,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -92,
+      -92,  -92
+    },
+
+    {
+        7,  -93,  -93,  -93,  -93,  -93,   41,  -93,  -93,   65,
+       41,  114,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,  -93,
+      -93,  -93
+
+    },
+
+    {
+        7,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      115,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94
+    },
+
+    {
+        7,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  116,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95
+
+    },
+
+    {
+        7,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96
+    },
+
+    {
+        7,  -97,  -97,  -97,  -97,   46,   22,  -97,  -97,   47,
+       22,   22,   22,   22,  117,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -97,
+      -97,  -97
+
+    },
+
+    {
+        7,  -98,  -98,  -98,  -98,   46,   22,  -98,  -98,   47,
+       22,   22,   22,   22,  118,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -98,
+      -98,  -98
+    },
+
+    {
+        7,  -99,  -99,  -99,  -99,   46,   22,  -99,  -99,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,  119,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,  -99,
+      -99,  -99
+
+    },
+
+    {
+        7, -100, -100, -100, -100,   46,   22, -100, -100,   47,
+       22,   22,   22,   22,  120,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -100,
+     -100, -100
+    },
+
+    {
+        7, -101, -101, -101, -101,   46,   22, -101, -101,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,  121,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -101,
+     -101, -101
+
+    },
+
+    {
+        7, -102, -102, -102, -102,   46,   22, -102, -102,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+      122,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -102,
+     -102, -102
+    },
+
+    {
+        7, -103, -103, -103, -103,   46,   22, -103, -103,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,  123,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -103,
+     -103, -103
+
+    },
+
+    {
+        7, -104, -104, -104, -104,   46,   22, -104, -104,  124,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -104,
+     -104, -104
+    },
+
+    {
+        7, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105,  125, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105
+
+    },
+
+    {
+        7, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106
+    },
+
+    {
+        7, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+     -107, -107
+
+    },
+
+    {
+        7, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108
+    },
+
+    {
+        7, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+      126, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109
+
+    },
+
+    {
+        7, -110, -110, -110, -110, -110,   41, -110, -110,   65,
+       41,   41,   41,   41,  127,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -110,
+     -110, -110
+    },
+
+    {
+        7, -111, -111, -111, -111, -111,   41, -111, -111,   65,
+       41,   41,   41,   41,  128,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -111,
+     -111, -111
+
+    },
+
+    {
+        7, -112, -112, -112, -112, -112,   41, -112, -112,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,  129,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -112,
+     -112, -112
+    },
+
+    {
+        7, -113, -113, -113, -113, -113,   41, -113, -113,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+      130,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -113,
+     -113, -113
+
+    },
+
+    {
+        7, -114, -114, -114, -114, -114,   41, -114, -114,  131,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -114,
+     -114, -114
+    },
+
+    {
+        7, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115,  132, -115, -115, -115, -115, -115,
+     -115, -115, -115, -115, -115, -115, -115, -115, -115, -115,
+     -115, -115
+
+    },
+
+    {
+        7, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116
+    },
+
+    {
+        7, -117, -117, -117, -117,   46,   22, -117, -117,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,  133,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -117,
+     -117, -117
+
+    },
+
+    {
+        7, -118, -118, -118, -118,   46,   22, -118, -118,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,  134,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -118,
+     -118, -118
+    },
+
+    {
+        7, -119, -119, -119, -119,   46,   22, -119, -119,   47,
+       22,   22,   22,   22,  135,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -119,
+     -119, -119
+
+    },
+
+    {
+        7, -120, -120, -120, -120,   46,   22, -120, -120,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,  136,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -120,
+     -120, -120
+    },
+
+    {
+        7, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121,  137, -121,  138, -121, -121, -121, -121, -121, -121,
+     -121, -121, -121,  139, -121,   72, -121, -121, -121, -121,
+     -121, -121, -121, -121, -121, -121, -121, -121, -121, -121,
+     -121, -121
+
+    },
+
+    {
+        7, -122, -122, -122, -122,   46,   22, -122, -122,  140,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -122,
+     -122, -122
+    },
+
+    {
+        7, -123, -123, -123, -123,   46,   22, -123, -123,   47,
+       22,   22,   22,   22,  141,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -123,
+     -123, -123
+
+    },
+
+    {
+        7, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124
+    },
+
+    {
+        7, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125,  142, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125
+
+    },
+
+    {
+        7, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126,  143, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126
+    },
+
+    {
+        7, -127, -127, -127, -127, -127,   41, -127, -127,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,  144,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -127,
+     -127, -127
+
+    },
+
+    {
+        7, -128, -128, -128, -128, -128,   41, -128, -128,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,  145,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -128,
+     -128, -128
+    },
+
+    {
+        7, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129,  146, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129, -129,  147, -129,   88, -129, -129, -129, -129,
+     -129, -129, -129, -129, -129, -129, -129, -129, -129, -129,
+     -129, -129
+
+    },
+
+    {
+        7, -130, -130, -130, -130, -130,   41, -130, -130,  148,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -130,
+     -130, -130
+    },
+
+    {
+        7, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131, -131, -131, -131, -131, -131, -131, -131, -131,
+     -131, -131
+
+    },
+
+    {
+        7, -132, -132, -132, -132,  149, -132, -132, -132,  150,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132, -132, -132, -132, -132, -132, -132, -132, -132,
+     -132, -132
+    },
+
+    {
+        7, -133, -133, -133, -133,   46,   22, -133, -133,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,  151,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -133,
+     -133, -133
+
+    },
+
+    {
+        7, -134, -134, -134, -134,   46,   22, -134, -134,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,  152,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -134,
+     -134, -134
+    },
+
+    {
+        7, -135, -135, -135, -135,   46,   22, -135, -135,   47,
+       22,   22,   22,  153,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -135,
+     -135, -135
+
+    },
+
+    {
+        7, -136, -136, -136, -136,   46,   22, -136, -136,   47,
+       22,   22,  154,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -136,
+     -136, -136
+    },
+
+    {
+        7, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137,  155, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137
+
+    },
+
+    {
+        7, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138,  156, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138
+    },
+
+    {
+        7, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+      157, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139
+
+    },
+
+    {
+        7,  158,  158,  158,  158,  158,  158,  158, -140,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158
+    },
+
+    {
+        7, -141, -141, -141, -141,   46,   22, -141, -141,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,  159,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -141,
+     -141, -141
+
+    },
+
+    {
+        7, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142,  160, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142
+    },
+
+    {
+        7, -143, -143, -143, -143, -143, -143, -143, -143,  161,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
+     -143, -143
+
+    },
+
+    {
+        7, -144, -144, -144, -144, -144,   41, -144, -144,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,  162,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -144,
+     -144, -144
+    },
+
+    {
+        7, -145, -145, -145, -145, -145,   41, -145, -145,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,  163,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -145,
+     -145, -145
+
+    },
+
+    {
+        7, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146,  164, -146, -146, -146, -146, -146,
+     -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
+     -146, -146
+    },
+
+    {
+        7, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+      165, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
+     -147, -147
+
+    },
+
+    {
+        7, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148, -148, -148, -148, -148, -148, -148, -148, -148,
+     -148, -148
+    },
+
+    {
+        7, -149, -149, -149, -149, -149, -149, -149, -149,  166,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
+     -149, -149
+
+    },
+
+    {
+        7, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
+     -150, -150
+    },
+
+    {
+        7, -151, -151, -151, -151,   46,   22, -151, -151,  167,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -151,
+     -151, -151
+
+    },
+
+    {
+        7, -152, -152, -152, -152,   46,   22, -152, -152,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,  168,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -152,
+     -152, -152
+    },
+
+    {
+        7, -153, -153, -153, -153,   46,   22, -153, -153,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,  169,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -153,
+     -153, -153
+
+    },
+
+    {
+        7, -154, -154, -154, -154,   46,   22, -154, -154,   47,
+      170,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -154,
+     -154, -154
+    },
+
+    {
+        7, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+      171, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155, -155, -155, -155, -155, -155, -155, -155, -155,
+     -155, -155
+
+    },
+
+    {
+        7, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156,  172,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156, -156, -156, -156, -156, -156, -156, -156, -156,
+     -156, -156
+    },
+
+    {
+        7, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157,  173, -157, -157, -157, -157, -157,
+     -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
+     -157, -157
+
+    },
+
+    {
+        7,  158,  158,  158,  158,  158,  158,  158, -158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
+      158,  158
+    },
+
+    {
+        7, -159, -159, -159, -159,   46,   22, -159, -159,   47,
+       22,   22,  174,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -159,
+     -159, -159
+
+    },
+
+    {
+        7, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160,  175, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+     -160, -160
+    },
+
+    {
+        7, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161, -161, -161, -161, -161, -161, -161, -161, -161,
+     -161, -161
+
+    },
+
+    {
+        7, -162, -162, -162, -162, -162,   41, -162, -162,  176,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -162,
+     -162, -162
+    },
+
+    {
+        7, -163, -163, -163, -163, -163,   41, -163, -163,   65,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,  177,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -163,
+     -163, -163
+
+    },
+
+    {
+        7, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+      178, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164, -164, -164, -164, -164, -164, -164, -164, -164,
+     -164, -164
+    },
+
+    {
+        7, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165,  179, -165, -165, -165, -165, -165,
+     -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
+     -165, -165
+
+    },
+
+    {
+        7, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166, -166, -166, -166, -166, -166, -166, -166, -166,
+     -166, -166
+    },
+
+    {
+        7,  180,  180,  180,  180,  180,  180,  180, -167,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180
+
+    },
+
+    {
+        7, -168, -168, -168, -168,   46,   22, -168, -168,  181,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -168,
+     -168, -168
+    },
+
+    {
+        7, -169, -169, -169, -169,   46,   22, -169, -169,   47,
+       22,   22,   22,   22,  182,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -169,
+     -169, -169
+
+    },
+
+    {
+        7, -170, -170, -170, -170,   46,   22, -170, -170,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,  183,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -170,
+     -170, -170
+    },
+
+    {
+        7, -171, -171, -171, -171, -171, -171, -171, -171,  184,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171, -171, -171, -171, -171, -171, -171, -171, -171,
+     -171, -171
+
+    },
+
+    {
+        7, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172,  185,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172, -172, -172, -172, -172, -172, -172, -172, -172,
+     -172, -172
+    },
+
+    {
+        7, -173, -173, -173, -173, -173, -173, -173, -173,  186,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173, -173, -173, -173, -173, -173, -173, -173, -173,
+     -173, -173
+
+    },
+
+    {
+        7, -174, -174, -174, -174,   46,   22, -174, -174,   47,
+      187,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -174,
+     -174, -174
+    },
+
+    {
+        7, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175,  188,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175, -175, -175, -175, -175, -175, -175, -175, -175,
+     -175, -175
+
+    },
+
+    {
+        7, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176, -176, -176, -176, -176, -176, -176, -176, -176,
+     -176, -176
+    },
+
+    {
+        7, -177, -177, -177, -177, -177,   41, -177, -177,  189,
+       41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   66,   41,
+       41,   41,   41,   41,   41,   41,   41,   41,   41, -177,
+     -177, -177
+
+    },
+
+    {
+        7, -178, -178, -178, -178, -178, -178, -178, -178,  190,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
+     -178, -178
+    },
+
+    {
+        7, -179, -179, -179, -179, -179, -179, -179, -179,  191,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179, -179, -179, -179, -179, -179, -179, -179, -179,
+     -179, -179
+
+    },
+
+    {
+        7,  180,  180,  180,  180,  180,  180,  180, -180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
+      180,  180
+    },
+
+    {
+        7, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181, -181, -181, -181, -181, -181, -181, -181, -181,
+     -181, -181
+
+    },
+
+    {
+        7, -182, -182, -182, -182,   46,   22, -182, -182,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,  192,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -182,
+     -182, -182
+    },
+
+    {
+        7, -183, -183, -183, -183,   46,   22, -183, -183,   47,
+       22,   22,   22,   22,  193,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -183,
+     -183, -183
+
+    },
+
+    {
+        7, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
+     -184, -184
+    },
+
+    {
+        7, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+      194, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185, -185, -185, -185, -185, -185, -185, -185, -185,
+     -185, -185
+
+    },
+
+    {
+        7, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186, -186, -186, -186, -186, -186, -186, -186, -186,
+     -186, -186
+    },
+
+    {
+        7, -187, -187, -187, -187,   46,   22, -187, -187,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,  195,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -187,
+     -187, -187
+
+    },
+
+    {
+        7, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188,  196,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188, -188, -188, -188, -188, -188, -188, -188, -188,
+     -188, -188
+    },
+
+    {
+        7, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
+     -189, -189
+
+    },
+
+    {
+        7, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190, -190, -190, -190, -190, -190, -190, -190, -190,
+     -190, -190
+    },
+
+    {
+        7, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191, -191, -191, -191, -191, -191, -191, -191, -191,
+     -191, -191
+
+    },
+
+    {
+        7, -192, -192, -192, -192,   46,   22, -192, -192,   47,
+       22,   22,  197,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -192,
+     -192, -192
+    },
+
+    {
+        7, -193, -193, -193, -193,   46,   22, -193, -193,   47,
+       22,   22,   22,  198,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -193,
+     -193, -193
+
+    },
+
+    {
+        7, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194,  199, -194, -194, -194, -194, -194,
+     -194, -194, -194, -194, -194, -194, -194, -194, -194, -194,
+     -194, -194
+    },
+
+    {
+        7, -195, -195, -195, -195,   46,   22, -195, -195,   47,
+       22,   22,   22,   22,  200,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -195,
+     -195, -195
+
+    },
+
+    {
+        7, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+      201, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196, -196, -196, -196, -196, -196, -196, -196, -196,
+     -196, -196
+    },
+
+    {
+        7, -197, -197, -197, -197,   46,   22, -197, -197,   47,
+       22,   22,   22,   22,  202,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -197,
+     -197, -197
+
+    },
+
+    {
+        7, -198, -198, -198, -198,   46,   22, -198, -198,   47,
+       22,  203,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -198,
+     -198, -198
+    },
+
+    {
+        7, -199, -199, -199, -199, -199, -199, -199, -199,  204,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199,  205, -199, -199, -199, -199,
+     -199, -199, -199, -199, -199, -199, -199, -199, -199, -199,
+     -199, -199
+
+    },
+
+    {
+        7, -200, -200, -200, -200,   46,   22, -200, -200,   47,
+       22,   22,   22,  206,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -200,
+     -200, -200
+    },
+
+    {
+        7, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201,  207, -201, -201, -201, -201, -201,
+     -201, -201, -201, -201, -201, -201, -201, -201, -201, -201,
+     -201, -201
+
+    },
+
+    {
+        7, -202, -202, -202, -202,   46,   22, -202, -202,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,  208,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -202,
+     -202, -202
+    },
+
+    {
+        7, -203, -203, -203, -203,   46,   22, -203, -203,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,  209,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -203,
+     -203, -203
+
+    },
+
+    {
+        7, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204, -204, -204, -204, -204, -204, -204, -204, -204,
+     -204, -204
+    },
+
+    {
+        7, -205, -205, -205, -205, -205, -205, -205, -205,  210,
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205, -205, -205, -205, -205, -205, -205, -205, -205,
+     -205, -205
+
+    },
+
+    {
+        7, -206, -206, -206, -206,   46,   22, -206, -206,   47,
+       22,  211,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -206,
+     -206, -206
+    },
+
+    {
+        7, -207, -207, -207, -207, -207, -207, -207, -207,  212,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207,  213, -207, -207, -207, -207,
+     -207, -207, -207, -207, -207, -207, -207, -207, -207, -207,
+     -207, -207
+
+    },
+
+    {
+        7, -208, -208, -208, -208,   46,   22, -208, -208,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,  214,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -208,
+     -208, -208
+    },
+
+    {
+        7, -209, -209, -209, -209,   46,   22, -209, -209,   47,
+      215,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -209,
+     -209, -209
+
+    },
+
+    {
+        7, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+     -210, -210
+    },
+
+    {
+        7, -211, -211, -211, -211,   46,   22, -211, -211,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,  216,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -211,
+     -211, -211
+
+    },
+
+    {
+        7, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212, -212, -212, -212, -212, -212, -212, -212, -212,
+     -212, -212
+    },
+
+    {
+        7, -213, -213, -213, -213, -213, -213, -213, -213,  217,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213, -213, -213, -213, -213, -213, -213, -213, -213,
+     -213, -213
+
+    },
+
+    {
+        7, -214, -214, -214, -214,  218,   22, -214, -214,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -214,
+     -214, -214
+    },
+
+    {
+        7, -215, -215, -215, -215,   46,   22, -215, -215,   47,
+       22,   22,  219,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -215,
+     -215, -215
+
+    },
+
+    {
+        7, -216, -216, -216, -216,   46,   22, -216, -216,   47,
+      220,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -216,
+     -216, -216
+    },
+
+    {
+        7, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217, -217, -217, -217, -217, -217, -217, -217, -217,
+     -217, -217
+
+    },
+
+    {
+        7, -218, -218, -218, -218, -218, -218, -218, -218,  221,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218, -218, -218, -218, -218, -218, -218, -218, -218,
+     -218, -218
+    },
+
+    {
+        7, -219, -219, -219, -219,   46,   22, -219, -219,   47,
+       22,   22,   22,   22,  222,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -219,
+     -219, -219
+
+    },
+
+    {
+        7, -220, -220, -220, -220,   46,   22, -220, -220,   47,
+       22,   22,  223,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -220,
+     -220, -220
+    },
+
+    {
+        7, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
+     -221, -221
+
+    },
+
+    {
+        7, -222, -222, -222, -222,  224,   22, -222, -222,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -222,
+     -222, -222
+    },
+
+    {
+        7, -223, -223, -223, -223,   46,   22, -223, -223,   47,
+       22,   22,   22,   22,  225,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -223,
+     -223, -223
+
+    },
+
+    {
+        7, -224, -224, -224, -224, -224, -224, -224, -224,  226,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
+     -224, -224
+    },
+
+    {
+        7, -225, -225, -225, -225,  227,   22, -225, -225,   47,
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   48,   22,
+       22,   22,   22,   22,   22,   22,   22,   22,   22, -225,
+     -225, -225
+
+    },
+
+    {
+        7, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226, -226, -226, -226, -226, -226, -226, -226, -226,
+     -226, -226
+    },
+
+    {
+        7, -227, -227, -227, -227, -227, -227, -227, -227,  228,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
+     -227, -227
+
+    },
+
+    {
+        7, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
+     -228, -228
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 39
+#define YY_END_OF_BUFFER 40
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[229] =
+    {   0,
+        0,    0,    0,    0,    0,    0,   40,   37,   36,   37,
+       37,   37,   38,   38,   39,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   11,   10,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   30,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    4,    3,    0,   32,    0,    0,    0,    0,    0,
+       34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    5,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   23,    0,    0,    0,    0,
+
+        0,    0,    0,    0,    0,   22,    2,    1,    0,    0,
+        0,    0,    0,    0,    0,    6,    0,    0,    0,    0,
+        0,    0,    0,   28,    0,    0,    0,    0,    0,    0,
+       29,    0,    0,    0,    0,    0,    0,    0,    0,   26,
+        0,    0,    0,    0,    0,    0,    0,   27,    0,   31,
+        0,    0,    0,    0,    0,    0,    0,   26,    0,    0,
+       33,    0,    0,    0,    0,   35,   24,    0,    0,    0,
+        0,    0,    0,    0,    0,   25,    0,    0,    0,   24,
+       20,    0,    0,   18,    0,   16,    0,    0,   21,   19,
+       17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,   14,    0,    0,    0,    0,    0,   12,
+        0,   15,    0,    0,    0,    0,   13,    0,    0,    0,
+        9,    0,    0,    0,    0,    7,    0,    8
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    3,    1,    1,    4,    1,    1,
+        1,    1,    1,    1,    1,    1,    5,    6,    6,    6,
+        6,    6,    6,    6,    6,    6,    6,    1,    7,    8,
+        1,    9,    1,    1,   10,   11,   12,   13,   14,   15,
+       16,   17,   18,    6,    6,   19,   20,   21,   22,   23,
+        6,   24,   25,   26,    6,   27,    6,    6,    6,    6,
+        1,    1,    1,    1,   28,    1,   29,    6,    6,    6,
+
+        6,    6,   30,    6,    6,    6,    6,   31,   32,    6,
+       33,   34,   35,    6,   36,   37,   38,    6,    6,    6,
+        6,    6,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+       39,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+       40,    1,    1,   41,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium-postlatex-raw.l"
+#line 4 "apertium-postlatex-raw.l"
+
+
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+#include <apertium/latex_accentsmap.h>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+AccentsMap accentsMap(true);
+wstring closesym = L"";
+string memconv = "";
+
+wstring convertir(string const &multibyte, int const length)
+{
+  memconv.append(multibyte.c_str(), length);
+  int tam = memconv.size();
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    delete[] retval;
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    delete[] retval;
+    return ret;
+  }
+}
+
+
+
+
+
+
+#line 2471 "apertium_postlatex_raw.cc"
+
+#define INITIAL 0
+#define mathenv 1
+#define readbrackets 2
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 78 "apertium-postlatex-raw.l"
+
+
+
+
+#line 2679 "apertium_postlatex_raw.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 82 "apertium-postlatex-raw.l"
+{
+	fputws(L"\"",yyout);
+}
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 85 "apertium-postlatex-raw.l"
+{
+	fputws(L"\'",yyout);
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 88 "apertium-postlatex-raw.l"
+{
+	fputws(L"<",yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 91 "apertium-postlatex-raw.l"
+{
+	fputws(L">",yyout);
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 94 "apertium-postlatex-raw.l"
+{
+	fputws(L"\\&",yyout);
+}
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 97 "apertium-postlatex-raw.l"
+{
+	fputws(L"&",yyout);
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 101 "apertium-postlatex-raw.l"
+{
+        fputws(L"\\{", yyout);
+}
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 105 "apertium-postlatex-raw.l"
+{
+        fputws(L"\\}", yyout);
+}
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 109 "apertium-postlatex-raw.l"
+{
+        fputws(L"\\%", yyout);
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 115 "apertium-postlatex-raw.l"
+{
+	fputws(L"?`",yyout);
+}
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 119 "apertium-postlatex-raw.l"
+{
+	fputws(L"!`",yyout);
+}
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 125 "apertium-postlatex-raw.l"
+{
+	BEGIN(mathenv);
+	fputws(L"$$",yyout);
+}
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 130 "apertium-postlatex-raw.l"
+{
+	fputws(L"$$",yyout);
+	BEGIN(0);
+}
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 136 "apertium-postlatex-raw.l"
+{
+	BEGIN(mathenv);
+	fputws(L"$",yyout);
+}
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 141 "apertium-postlatex-raw.l"
+{
+	fputws(L"$",yyout);
+	BEGIN(0);
+}
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 146 "apertium-postlatex-raw.l"
+{
+	fputws(L"\\(",yyout);
+}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 150 "apertium-postlatex-raw.l"
+{
+	fputws(L"\\)",yyout);
+}
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 154 "apertium-postlatex-raw.l"
+{
+	fputws(L"\\[",yyout);
+}
+	YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 158 "apertium-postlatex-raw.l"
+{
+	fputws(L"\\]",yyout);
+}
+	YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 163 "apertium-postlatex-raw.l"
+{
+	fputws(L"{",yyout);
+}
+	YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 167 "apertium-postlatex-raw.l"
+{
+	fputws(L"}",yyout);
+}
+	YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 171 "apertium-postlatex-raw.l"
+{
+	fputws(L"~",yyout);
+}
+	YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 177 "apertium-postlatex-raw.l"
+{
+	fputws(L"\\\\",yyout);
+}
+	YY_BREAK
+case 24:
+/* rule 24 can match eol */
+YY_RULE_SETUP
+#line 181 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"\%")+convertir(yytext+9,yyleng-9)).c_str(),yyout);
+}
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 185 "apertium-postlatex-raw.l"
+{
+}
+	YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 189 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"[")+convertir(yytext+7,yyleng-7)).c_str(),yyout);
+}
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 192 "apertium-postlatex-raw.l"
+{
+	fputws(L"]", yyout);
+}
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 196 "apertium-postlatex-raw.l"
+{
+        fputws(L"\\verb", yyout);
+}
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 200 "apertium-postlatex-raw.l"
+{
+        ;
+}
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 205 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"\\begin{")+convertir(yytext+1,yyleng-2)+wstring(L"}")).c_str(),yyout);
+}
+	YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 209 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"\\begin{")+convertir(yytext+1,yyleng-7)+wstring(L"*}")).c_str(),yyout);
+}
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 213 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"\\end{")+convertir(yytext+2,yyleng-3)+wstring(L"}")).c_str(),yyout);
+}
+	YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 217 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"\\end{")+convertir(yytext+2,yyleng-8)+wstring(L"*}")).c_str(),yyout);
+}
+	YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 221 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"\\")+convertir(yytext+1,yyleng-3)).c_str(),yyout);
+}
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 225 "apertium-postlatex-raw.l"
+{
+	fputws((wstring(L"\\")+convertir(yytext+1,yyleng-8)+wstring(L"*")).c_str(),yyout);
+}
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 229 "apertium-postlatex-raw.l"
+{
+        fputws(L"\\#", yyout);
+}
+	YY_BREAK
+case 37:
+/* rule 37 can match eol */
+YY_RULE_SETUP
+#line 234 "apertium-postlatex-raw.l"
+{
+	fputws(convertir(yytext,yyleng).c_str(),yyout);
+}
+	YY_BREAK
+case 38:
+/* rule 38 can match eol */
+YY_RULE_SETUP
+#line 238 "apertium-postlatex-raw.l"
+{
+	fputws(convertir(yytext,yyleng).c_str(),yyout);
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(mathenv):
+case YY_STATE_EOF(readbrackets):
+#line 243 "apertium-postlatex-raw.l"
+{
+	return 0;
+}
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 246 "apertium-postlatex-raw.l"
+ECHO;
+	YY_BREAK
+#line 3010 "apertium_postlatex_raw.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 246 "apertium-postlatex-raw.l"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+
+  cerr << "LaTeX format postprocessor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  yylex();
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_prelatex.cc b/apertium/apertium_prelatex.cc
new file mode 100644
index 0000000..6d0eafa
--- /dev/null
+++ b/apertium/apertium_prelatex.cc
@@ -0,0 +1,3751 @@
+#line 2 "apertium_prelatex.cc"
+
+#line 4 "apertium_prelatex.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][56] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0
+    },
+
+    {
+        7,    8,    8,    8,    9,   10,   11,    8,   12,   13,
+       14,   15,    8,    8,    8,    8,    8,    8,    8,   16,
+       17,   18,    8,    8,    8,    8,    8,    8,   19,   20,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,   21,    8,   22,   23
+    },
+
+    {
+        7,    8,    8,    8,    9,   10,   11,    8,   12,   13,
+       14,   15,    8,    8,    8,    8,    8,    8,    8,   16,
+       17,   18,    8,    8,    8,    8,    8,    8,   19,   20,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
+        8,    8,   21,    8,   22,   23
+    },
+
+    {
+        7,   24,   24,   24,   24,   24,   24,   24,   25,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24
+    },
+
+    {
+        7,   24,   24,   24,   24,   24,   24,   24,   25,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
+       24,   24,   24,   24,   24,   24
+
+    },
+
+    {
+        7,   26,   27,   27,   27,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26,   26,   28,   26,
+       26,   26,   28,   28,   28,   28,   28,   28,   26,   26,
+       26,   26,   26,   26,   28,   28,   28,   28,   28,   28,
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   29,   26,   30,   26
+    },
+
+    {
+        7,   26,   27,   27,   27,   26,   26,   26,   26,   26,
+       26,   26,   26,   26,   26,   26,   26,   26,   28,   26,
+       26,   26,   28,   28,   28,   28,   28,   28,   26,   26,
+       26,   26,   26,   26,   28,   28,   28,   28,   28,   28,
+
+       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
+       28,   28,   29,   26,   30,   26
+    },
+
+    {
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,   -7,
+       -7,   -7,   -7,   -7,   -7,   -7
+    },
+
+    {
+        7,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8,
+       -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        7,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   -9,
+       -9,   -9,   -9,   -9,   -9,   -9
+
+    },
+
+    {
+        7,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,   31,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,  -10,
+      -10,  -10,  -10,  -10,  -10,  -10
+    },
+
+    {
+        7,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
+      -11,  -11,   32,  -11,  -11,  -11,   32,   32,  -11,  -11,
+      -11,  -11,  -11,  -11,   32,  -11,  -11,  -11,  -11,  -11,
+
+      -11,  -11,  -11,  -11,  -11,   32,  -11,  -11,   32,  -11,
+       32,  -11,  -11,  -11,  -11,  -11
+    },
+
+    {
+        7,  -12,  -12,  -12,  -12,  -12,  -12,  -12,   33,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
+      -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        7,   34,   34,  -13,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34
+    },
+
+    {
+        7,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
+      -14,  -14,  -14,  -14,  -14,  -14
+
+    },
+
+    {
+        7,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15,
+      -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        7,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+
+      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
+      -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    {
+        7,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
+      -17,  -17,  -17,  -17,  -17,  -17
+    },
+
+    {
+        7,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,   35,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
+      -18,  -18,  -18,  -18,  -18,  -18
+    },
+
+    {
+        7,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       37,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36
+
+    },
+
+    {
+        7,  -20,  -20,  -20,  -20,  -20,   38,   39,  -20,   40,
+       41,   38,   42,   43,  -20,  -20,   44,  -20,  -20,  -20,
+      -20,  -20,   45,   45,   45,   46,   45,   45,   47,   48,
+       49,   38,  -20,   38,   45,   50,   46,   46,   51,   45,
+       45,   45,   46,   52,   45,   45,   45,   46,   45,   53,
+       54,   55,   56,  -20,  -20,   44
+    },
+
+    {
+        7,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,   57,
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+
+      -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
+      -21,  -21,  -21,  -21,  -21,  -21
+    },
+
+    {
+        7,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
+      -22,  -22,  -22,  -22,  -22,  -22
+    },
+
+    {
+        7,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
+      -23,  -23,  -23,  -23,  -23,  -23
+    },
+
+    {
+        7,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
+      -24,  -24,  -24,  -24,  -24,  -24
+
+    },
+
+    {
+        7,  -25,  -25,  -25,  -25,  -25,  -25,  -25,   58,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
+      -25,  -25,  -25,  -25,  -25,  -25
+    },
+
+    {
+        7,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+
+      -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
+      -26,  -26,  -26,  -26,  -26,  -26
+    },
+
+    {
+        7,  -27,   59,   59,   59,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
+      -27,  -27,   60,  -27,   61,  -27
+    },
+
+    {
+        7,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
+      -28,  -28,  -28,  -28,   62,  -28,  -28,  -28,   63,  -28,
+
+      -28,  -28,   63,   63,   63,   63,   63,   63,  -28,  -28,
+      -28,  -28,  -28,  -28,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,  -28,  -28,  -28,  -28
+    },
+
+    {
+        7,  -29,   64,   64,   64,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
+      -29,  -29,  -29,  -29,  -29,  -29
+
+    },
+
+    {
+        7,  -30,   65,   65,   65,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
+      -30,  -30,  -30,  -30,  -30,  -30
+    },
+
+    {
+        7,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+
+      -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,  -31,
+      -31,  -31,  -31,  -31,  -31,  -31
+    },
+
+    {
+        7,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
+      -32,  -32,  -32,  -32,  -32,  -32
+    },
+
+    {
+        7,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,  -33,
+      -33,  -33,  -33,  -33,  -33,  -33
+    },
+
+    {
+        7,   34,   34,  -34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
+       34,   34,   34,   34,   34,   34
+
+    },
+
+    {
+        7,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
+      -35,  -35,  -35,  -35,  -35,  -35
+    },
+
+    {
+        7,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       37,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+
+       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
+       36,   36,   36,   36,   36,   36
+    },
+
+    {
+        7,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,  -37,
+      -37,  -37,  -37,  -37,  -37,  -37
+    },
+
+    {
+        7,   66,   66,  -38,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   67,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   68,   66,   66,   66
+    },
+
+    {
+        7,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,   69,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
+      -39,  -39,  -39,  -39,  -39,  -39
+
+    },
+
+    {
+        7,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
+      -40,  -40,  -40,  -40,  -40,  -40
+    },
+
+    {
+        7,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+
+      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
+      -41,  -41,  -41,  -41,  -41,  -41
+    },
+
+    {
+        7,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
+      -42,  -42,  -42,  -42,  -42,  -42
+    },
+
+    {
+        7,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
+      -43,  -43,  -43,  -43,  -43,  -43
+    },
+
+    {
+        7,   66,   66,  -44,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   66,   70,   66,   66,   66
+
+    },
+
+    {
+        7,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,  -45,  -45,   71,  -45,  -45,  -45,  -45,  -45,
+      -45,  -45,   45,   45,   45,   45,   45,   45,  -45,  -45,
+      -45,  -45,  -45,  -45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -45,  -45,  -45,  -45
+    },
+
+    {
+        7,   66,   66,  -46,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   72,   66,   66,   66,   66,   66,
+       66,   66,   73,   73,   73,   73,   73,   73,   66,   66,
+       66,   66,   66,   66,   73,   73,   73,   73,   73,   73,
+
+       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
+       73,   73,   70,   66,   66,   66
+    },
+
+    {
+        7,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
+      -47,  -47,  -47,  -47,  -47,  -47
+    },
+
+    {
+        7,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
+      -48,  -48,  -48,  -48,  -48,  -48
+    },
+
+    {
+        7,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
+      -49,  -49,  -49,  -49,  -49,  -49
+
+    },
+
+    {
+        7,   66,   66,  -50,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   72,   66,   66,   66,   66,   66,
+       66,   66,   73,   73,   73,   73,   73,   73,   66,   66,
+       66,   66,   66,   66,   73,   73,   73,   73,   74,   73,
+       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
+       73,   73,   70,   66,   66,   66
+    },
+
+    {
+        7,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,  -51,  -51,   71,  -51,  -51,  -51,  -51,  -51,
+      -51,  -51,   45,   45,   45,   45,   45,   45,  -51,  -51,
+      -51,  -51,  -51,  -51,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   75,   45,   45,   45,   45,   45,
+       45,   45,  -51,  -51,  -51,  -51
+    },
+
+    {
+        7,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,  -52,  -52,   71,  -52,  -52,  -52,  -52,  -52,
+      -52,  -52,   45,   45,   45,   45,   45,   45,  -52,  -52,
+      -52,  -52,  -52,  -52,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -52,  -52,  -52,  -52
+    },
+
+    {
+        7,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,  -53,
+      -53,  -53,  -53,  -53,   71,  -53,  -53,  -53,  -53,  -53,
+
+      -53,  -53,   45,   45,   45,   45,   45,   45,  -53,  -53,
+      -53,  -53,  -53,  -53,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   76,  -53,  -53,  -53
+    },
+
+    {
+        7,   66,   66,  -54,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   72,   66,   66,   66,   66,   66,
+       66,   66,   73,   73,   73,   73,   73,   73,   66,   66,
+       66,   66,   66,   66,   73,   73,   73,   73,   73,   73,
+       73,   73,   73,   73,   73,   73,   73,   73,   77,   73,
+       73,   73,   70,   66,   66,   66
+
+    },
+
+    {
+        7,   66,   66,  -55,   66,   66,   66,   66,   66,   66,
+       66,   66,   66,   66,   72,   66,   66,   66,   66,   66,
+       66,   66,   73,   73,   73,   73,   73,   73,   66,   66,
+       66,   66,   66,   66,   73,   73,   73,   73,   78,   73,
+       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
+       73,   73,   70,   66,   66,   66
+    },
+
+    {
+        7,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+
+      -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
+      -56,  -56,  -56,  -56,  -56,  -56
+    },
+
+    {
+        7,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,   79,  -57,  -57,  -57,   80,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,   81,  -57,  -57,  -57,  -57,  -57,
+      -57,  -57,  -57,  -57,  -57,   82,  -57,  -57,   83,  -57,
+      -57,  -57,  -57,  -57,  -57,  -57
+    },
+
+    {
+        7,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
+      -58,  -58,  -58,  -58,  -58,  -58
+    },
+
+    {
+        7,  -59,   59,   59,   59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
+      -59,  -59,   60,  -59,   61,  -59
+
+    },
+
+    {
+        7,  -60,   64,   64,   64,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
+      -60,  -60,  -60,  -60,  -60,  -60
+    },
+
+    {
+        7,  -61,   65,   65,   65,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+
+      -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
+      -61,  -61,  -61,  -61,  -61,  -61
+    },
+
+    {
+        7,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
+      -62,  -62,  -62,  -62,  -62,  -62
+    },
+
+    {
+        7,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
+      -63,  -63,  -63,  -63,   62,  -63,  -63,  -63,   63,  -63,
+
+      -63,  -63,   63,   63,   63,   63,   63,   63,  -63,  -63,
+      -63,  -63,  -63,  -63,   63,   63,   63,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
+       63,   63,  -63,  -63,  -63,  -63
+    },
+
+    {
+        7,  -64,   64,   64,   64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
+      -64,  -64,  -64,  -64,  -64,  -64
+
+    },
+
+    {
+        7,  -65,   65,   65,   65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
+      -65,  -65,  -65,  -65,  -65,  -65
+    },
+
+    {
+        7,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+
+      -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
+      -66,  -66,  -66,  -66,  -66,  -66
+    },
+
+    {
+        7,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+       84,   84,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
+      -67,  -67,  -67,  -67,  -67,  -67
+    },
+
+    {
+        7,   85,   85,  -68,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   86,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85
+    },
+
+    {
+        7,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,   69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
+      -69,  -69,  -69,  -69,  -69,  -69
+
+    },
+
+    {
+        7,   85,   85,  -70,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
+       85,   85,   85,   85,   85,   85
+    },
+
+    {
+        7,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+
+      -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
+      -71,  -71,  -71,  -71,  -71,  -71
+    },
+
+    {
+        7,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
+      -72,  -72,  -72,  -72,  -72,  -72
+    },
+
+    {
+        7,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,  -73,
+      -73,  -73,  -73,  -73,   71,  -73,  -73,  -73,  -73,  -73,
+
+      -73,  -73,   45,   45,   45,   45,   45,   45,  -73,  -73,
+      -73,  -73,  -73,  -73,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -73,  -73,  -73,  -73
+    },
+
+    {
+        7,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,  -74,  -74,   71,  -74,  -74,  -74,  -74,  -74,
+      -74,  -74,   45,   45,   45,   45,   45,   45,  -74,  -74,
+      -74,  -74,  -74,  -74,   45,   45,   45,   45,   45,   87,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -74,  -74,  -74,  -74
+
+    },
+
+    {
+        7,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,  -75,  -75,   71,  -75,  -75,  -75,  -75,  -75,
+      -75,  -75,   45,   45,   45,   45,   45,   45,  -75,  -75,
+      -75,  -75,  -75,  -75,   45,   45,   45,   88,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -75,  -75,  -75,  -75
+    },
+
+    {
+        7,   89,   89,  -76,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   89,   89,   89,   89
+    },
+
+    {
+        7,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,  -77,  -77,   71,  -77,  -77,  -77,  -77,  -77,
+      -77,  -77,   45,   45,   45,   45,   45,   45,  -77,  -77,
+      -77,  -77,  -77,  -77,   45,   45,   45,   45,   90,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -77,  -77,  -77,  -77
+    },
+
+    {
+        7,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
+      -78,  -78,  -78,  -78,   71,  -78,  -78,  -78,  -78,  -78,
+
+      -78,  -78,   45,   45,   45,   45,   45,   45,  -78,  -78,
+      -78,  -78,  -78,  -78,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   91,   45,   45,
+       45,   45,  -78,  -78,  -78,  -78
+    },
+
+    {
+        7,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,   92,  -79,   93,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
+      -79,  -79,  -79,  -79,  -79,  -79
+
+    },
+
+    {
+        7,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,   94,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
+      -80,  -80,  -80,  -80,   95,  -80
+    },
+
+    {
+        7,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,   96,  -81,  -81,  -81,   97,  -81,
+
+      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
+      -81,  -81,  -81,  -81,  -81,  -81
+    },
+
+    {
+        7,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,   98,  -82,
+      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
+      -82,  -82,  -82,  -82,   99,  -82
+    },
+
+    {
+        7,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  100,  -83,
+      -83,  -83,  -83,  -83,  -83,  -83
+    },
+
+    {
+        7,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
+      -84,  -84,  -84,  -84,  -84,  -84
+
+    },
+
+    {
+        7,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
+      -85,  -85,  -85,  -85,   66,  -85
+    },
+
+    {
+        7,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+
+      101,  101,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
+      -86,  -86,  -86,  -86,   66,  -86
+    },
+
+    {
+        7,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,  -87,  -87,   71,  -87,  -87,  -87,  -87,  -87,
+      -87,  -87,   45,   45,   45,   45,   45,   45,  -87,  -87,
+      -87,  -87,  -87,  -87,   45,   45,   45,   45,   45,   45,
+      102,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -87,  -87,  -87,  -87
+    },
+
+    {
+        7,  103,  103,  103,  103,  103,  103,  103,  103,  103,
+      103,  103,  103,  103,  104,  103,  103,  103,  -88,  103,
+
+      103,  103,   45,   45,   45,   45,   45,   45,  103,  103,
+      103,  103,  -88,  103,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  103,  103,  103,  103
+    },
+
+    {
+        7,  105,  105,  -89,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105
+
+    },
+
+    {
+        7,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,  -90,  -90,   71,  -90,  -90,  -90,  -90,  -90,
+      -90,  -90,   45,   45,   45,   45,   45,   45,  -90,  -90,
+      -90,  -90,  -90,  -90,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,  106,   45,   45,   45,
+       45,   45,  -90,  -90,  -90,  -90
+    },
+
+    {
+        7,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,  -91,  -91,   71,  -91,  -91,  -91,  -91,  -91,
+      -91,  -91,   45,   45,   45,   45,   45,   45,  -91,  -91,
+      -91,  -91,  -91,  -91,   45,  107,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  -91,  -91,  -91,  -91
+    },
+
+    {
+        7,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
+      -92,  -92,  -92,  -92,  108,  -92
+    },
+
+    {
+        7,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
+      -93,  -93,  -93,  -93,  109,  -93
+    },
+
+    {
+        7,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
+      -94,  -94,  -94,  -94,  110,  -94
+
+    },
+
+    {
+        7,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
+      -95,  -95,  -95,  -95,  -95,  -95
+    },
+
+    {
+        7,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+
+      -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
+      -96,  -96,  -96,  -96,  111,  -96
+    },
+
+    {
+        7,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
+      -97,  -97,  -97,  -97,  112,  -97
+    },
+
+    {
+        7,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
+      -98,  -98,  -98,  -98,  113,  -98
+    },
+
+    {
+        7,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
+      -99,  -99,  -99,  -99,  -99,  -99
+
+    },
+
+    {
+        7, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
+     -100, -100, -100, -100,  114, -100
+    },
+
+    {
+        7, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+
+     -101, -101, -101, -101, -101, -101, -101, -101, -101, -101,
+     -101, -101, -101, -101,   84, -101
+    },
+
+    {
+        7, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+     -102, -102, -102, -102,   71, -102, -102, -102, -102, -102,
+     -102, -102,   45,   45,   45,   45,   45,   45, -102, -102,
+     -102, -102, -102, -102,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,  115,   45,   45,   45,   45,   45,
+       45,   45, -102, -102, -102, -102
+    },
+
+    {
+        7, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103, -103, -103, -103, -103,
+     -103, -103, -103, -103, -103, -103
+    },
+
+    {
+        7, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104, -104, -104, -104, -104,
+     -104, -104, -104, -104, -104, -104
+
+    },
+
+    {
+        7, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+     -105, -105, -105, -105,  116, -105
+    },
+
+    {
+        7, -106, -106, -106, -106, -106, -106, -106, -106, -106,
+     -106, -106, -106, -106,   71, -106, -106, -106, -106, -106,
+     -106, -106,   45,   45,   45,   45,   45,   45, -106, -106,
+     -106, -106, -106, -106,  117,   45,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -106, -106, -106, -106
+    },
+
+    {
+        7, -107, -107, -107, -107,  118, -107,  119, -107, -107,
+     -107, -107, -107, -107,   71,  120, -107,  121, -107, -107,
+     -107,  122,   45,   45,   45,   45,   45,   45, -107, -107,
+     -107, -107, -107, -107,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -107,  123, -107, -107
+    },
+
+    {
+        7, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108, -108, -108, -108, -108,
+     -108, -108, -108, -108, -108, -108
+    },
+
+    {
+        7, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109, -109, -109, -109, -109,
+     -109, -109, -109, -109, -109, -109
+
+    },
+
+    {
+        7, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110, -110, -110, -110, -110,
+     -110, -110, -110, -110, -110, -110
+    },
+
+    {
+        7, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+
+     -111, -111, -111, -111, -111, -111, -111, -111, -111, -111,
+     -111, -111, -111, -111, -111, -111
+    },
+
+    {
+        7, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112, -112, -112, -112, -112,
+     -112, -112, -112, -112, -112, -112
+    },
+
+    {
+        7, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113, -113, -113, -113, -113,
+     -113, -113, -113, -113, -113, -113
+    },
+
+    {
+        7, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114, -114, -114, -114, -114,
+     -114, -114, -114, -114, -114, -114
+
+    },
+
+    {
+        7,  124,  124,  124,  124,  124,  124,  124,  124,  124,
+      124,  124,  124,  124,  125,  124,  124,  124, -115,  124,
+      124,  124,   45,   45,   45,   45,   45,   45,  124,  124,
+      124,  124, -115,  124,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,  124,  124,  124,  124
+    },
+
+    {
+        7, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+
+     -116, -116, -116, -116, -116, -116, -116, -116, -116, -116,
+     -116, -116, -116, -116, -116, -116
+    },
+
+    {
+        7, -117, -117, -117, -117, -117, -117, -117, -117, -117,
+     -117, -117, -117, -117,   71, -117, -117, -117, -117, -117,
+     -117, -117,   45,   45,   45,   45,   45,   45, -117, -117,
+     -117, -117, -117, -117,   45,   45,  126,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -117, -117, -117, -117
+    },
+
+    {
+        7,  127,  127,  127,  127, -118,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127
+    },
+
+    {
+        7,  128,  128,  128,  128,  128,  128, -119,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128
+
+    },
+
+    {
+        7,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129, -120,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129
+    },
+
+    {
+        7,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  130,  130,  130,  130,  130, -121,  130,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+
+      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  130,  130,  130,  130
+    },
+
+    {
+        7,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131, -122,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131
+    },
+
+    {
+        7,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132, -123,  132,  132
+    },
+
+    {
+        7, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124, -124, -124, -124, -124,
+     -124, -124, -124, -124, -124, -124
+
+    },
+
+    {
+        7, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
+     -125, -125, -125, -125, -125, -125
+    },
+
+    {
+        7, -126, -126, -126, -126, -126, -126, -126, -126, -126,
+     -126, -126, -126, -126,   71, -126, -126, -126, -126, -126,
+     -126, -126,   45,   45,   45,   45,   45,   45, -126, -126,
+     -126, -126, -126, -126,   45,   45,   45,   45,   45,   45,
+
+       45,   45,  133,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -126, -126, -126, -126
+    },
+
+    {
+        7,  127,  127,  127,  127,  134,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
+      127,  127,  127,  127,  127,  127
+    },
+
+    {
+        7,  128,  128,  128,  128,  128,  128,  135,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
+      128,  128,  128,  128,  128,  128
+    },
+
+    {
+        7,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  136,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
+      129,  129,  129,  129,  129,  129
+
+    },
+
+    {
+        7,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  130,  130,  130,  130,  130,  137,  130,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
+      130,  130,  130,  130,  130,  130
+    },
+
+    {
+        7,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  138,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+
+      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
+      131,  131,  131,  131,  131,  131
+    },
+
+    {
+        7,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
+      132,  132,  132,  139,  132,  132
+    },
+
+    {
+        7, -133, -133, -133, -133, -133, -133, -133, -133, -133,
+     -133, -133, -133, -133,   71, -133, -133, -133, -133, -133,
+
+     -133, -133,   45,   45,   45,   45,   45,   45, -133, -133,
+     -133, -133, -133, -133,  140,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -133, -133, -133, -133
+    },
+
+    {
+        7, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
+     -134, -134, -134, -134, -134, -134
+
+    },
+
+    {
+        7, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135, -135, -135, -135, -135,
+     -135, -135, -135, -135, -135, -135
+    },
+
+    {
+        7, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+
+     -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
+     -136, -136, -136, -136, -136, -136
+    },
+
+    {
+        7, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
+     -137, -137, -137, -137, -137, -137
+    },
+
+    {
+        7, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138, -138, -138, -138, -138,
+     -138, -138, -138, -138, -138, -138
+    },
+
+    {
+        7, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
+     -139, -139, -139, -139, -139, -139
+
+    },
+
+    {
+        7, -140, -140, -140, -140, -140, -140, -140, -140, -140,
+     -140, -140, -140, -140,   71, -140, -140, -140, -140, -140,
+     -140, -140,   45,   45,   45,   45,   45,   45, -140, -140,
+     -140, -140, -140, -140,   45,   45,   45,   45,   45,  141,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -140, -140, -140, -140
+    },
+
+    {
+        7, -141, -141, -141, -141, -141, -141, -141, -141, -141,
+     -141, -141, -141, -141,   71, -141, -141, -141, -141, -141,
+     -141, -141,   45,   45,   45,   45,   45,   45, -141, -141,
+     -141, -141, -141, -141,   45,   45,   45,   45,  142,   45,
+
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -141, -141, -141, -141
+    },
+
+    {
+        7, -142, -142, -142, -142, -142, -142, -142, -142, -142,
+     -142, -142, -142, -142,   71, -142, -142, -142, -142, -142,
+     -142, -142,   45,   45,   45,   45,   45,   45,  143, -142,
+     -142, -142, -142, -142,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, -142, -142, -142, -142
+    },
+
+    {
+        7,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      145,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144
+    },
+
+    {
+        7,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      145,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
+      144,  144,  144,  144,  144,  144
+
+    },
+
+    {
+        7, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
+     -145, -145, -145, -145, -145, -145
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 59
+#define YY_END_OF_BUFFER 60
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[146] =
+    {   0,
+        0,    0,    0,    0,   23,   23,   60,   57,   57,   57,
+       51,   37,   18,   56,   52,   53,   54,   57,   57,   57,
+       32,   33,   34,   58,   38,   59,   23,   25,   23,   26,
+       50,    3,   35,   18,   49,    0,   20,    0,   15,   31,
+       55,   45,   46,    0,   28,   28,   47,   17,   48,   28,
+       28,    2,   28,   28,   28,   29,    0,   36,   23,   23,
+       26,   24,   25,   23,   26,   16,   16,   16,   14,   16,
+       27,   16,   16,   16,   28,    0,   16,   16,    0,    0,
+        0,    0,    0,    4,    0,    0,   28,   28,    0,   28,
+       28,    0,    0,    0,   12,    0,    0,    0,   11,    0,
+
+        0,   28,   22,   22,    0,   28,   28,   10,    8,    6,
+        9,    7,    5,   13,   28,    1,   28,    0,    0,    0,
+        0,    0,    0,   21,   21,   28,    0,    0,    0,    0,
+        0,    0,   28,   40,   43,   44,   42,   41,   39,   28,
+       28,   28,    0,    0,   19
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    2,    5,    6,    7,    8,    9,   10,   11,   12,
+       13,   14,   15,    1,    1,   16,   17,   18,   18,   18,
+       18,   18,   18,   18,   18,   18,   18,    1,    1,   19,
+       16,   20,   21,    1,   22,   23,   23,   23,   24,   23,
+       23,   25,   23,   23,   23,   23,   23,   23,   26,   23,
+       23,   23,   27,   23,   27,   23,   23,   23,   23,   23,
+       28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
+
+       38,   23,   39,   23,   40,   41,   42,   43,   23,   44,
+       45,   46,   23,   47,   48,   49,   50,   51,   23,   23,
+       23,   23,   52,   53,   54,   55,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium-prelatex.l"
+#line 4 "apertium-prelatex.l"
+
+
+
+#include <cstdlib>
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+#include <apertium/latex_accentsmap.h>
+
+extern "C" {
+#if !defined(__STDC__)
+# define __STDC__ 1
+#endif
+#include <regex.h>
+}
+
+#include <string>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+AccentsMap accentsMap(false);
+wstring closesym = L"";
+string memconv = "";
+//For german babel detection
+bool ngermanbabel = false;
+
+wstring convertir(string const &multibyte, int const length)
+{
+  memconv.append(multibyte.c_str(), length);
+  int tam = memconv.size();
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    delete[] retval;
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    delete[] retval;
+    return ret;
+  }
+}
+
+
+
+
+
+
+#line 1919 "apertium_prelatex.cc"
+
+#define INITIAL 0
+#define mathenv 1
+#define readbrackets 2
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+        static int yy_start_stack_ptr = 0;
+        static int yy_start_stack_depth = 0;
+        static int *yy_start_stack = NULL;
+    
+    static void yy_push_state (int new_state );
+    
+    static void yy_pop_state (void );
+    
+    static int yy_top_state (void );
+    
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 80 "apertium-prelatex.l"
+
+
+
+
+
+
+#line 2129 "apertium_prelatex.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 86 "apertium-prelatex.l"
+{ //This information is lost
+	fputws(convertir(yytext+3,yyleng-4).c_str(),yyout);
+}
+	YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 89 "apertium-prelatex.l"
+{
+	fputws(L"ł", yyout);
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 93 "apertium-prelatex.l"
+{ //When usepackage[ngerman]{babel} is present (not checked).
+	if(!ngermanbabel)
+		fputws(convertir(yytext,yyleng).c_str(),yyout);
+	else {
+		switch(yytext[1]){
+			case 'o': fputws(L"ö", yyout); break;
+			case 'O': fputws(L"Ö", yyout); break;
+			case 'a': fputws(L"ä", yyout); break;
+			case 'A': fputws(L"Ä", yyout); break;
+			case 'u': fputws(L"ü", yyout); break;
+			case 'U': fputws(L"Ü", yyout); break;
+			case 's': fputws(L"ß", yyout); break;
+			case 'S': fputws(L"ß", yyout); break;
+		}
+	}
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 112 "apertium-prelatex.l"
+{
+	switch(yytext[1]){
+	case '^':
+		if(yytext[4]=='i')
+			fputws(L"î", yyout);
+		else
+			fputws(L"ĵ",yyout);
+		break;
+	case '\"':
+		if(yytext[4]=='i')
+			fputws(L"ï",yyout);
+		else
+			fputws(L"j",yyout); //should actually be j with umlaut
+		break;
+	case '\'':
+		if(yytext[4]=='i')
+			fputws(L"í",yyout);
+		else
+			fputws(L"j",yyout); //should actually be j with accent
+		break;
+	case '`':
+		if(yytext[4]=='i')
+			fputws(L"ì",yyout);
+		else
+			fputws(L"k",yyout); //should actually be j with accent
+		break;
+	}
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 141 "apertium-prelatex.l"
+{
+	fputws(L"œ",yyout);
+}
+	YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 145 "apertium-prelatex.l"
+{
+	fputws(L"Œ",yyout);
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 149 "apertium-prelatex.l"
+{
+	fputws(L"æ",yyout);
+}
+	YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 153 "apertium-prelatex.l"
+{
+	fputws(L"Æ",yyout);
+}
+	YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 157 "apertium-prelatex.l"
+{
+	fputws(L"å",yyout);
+}
+	YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 161 "apertium-prelatex.l"
+{
+	fputws(L"Å",yyout);
+}
+	YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 165 "apertium-prelatex.l"
+{
+	fputws(L"ø",yyout);
+}
+	YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 169 "apertium-prelatex.l"
+{
+	fputws(L"Ø",yyout);
+}
+	YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 173 "apertium-prelatex.l"
+{
+	fputws(L"ß",yyout);
+}
+	YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 177 "apertium-prelatex.l"
+{
+        fputws((wstring(L"<HASH_")+convertir(yytext+2,yyleng-2)+wstring(L"/>")).c_str(),yyout);
+}
+	YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 181 "apertium-prelatex.l"
+{
+        fputws(L"<HASH/>", yyout);
+}
+	YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 185 "apertium-prelatex.l"
+{
+	wstring ws = convertir(yytext,yyleng).c_str();
+
+	wstring result = accentsMap.get(
+	  L""+ws.substr(1,1)+ (
+	    (yyleng==3)? ws.substr(2,1) : ws.substr(3,1)
+	  ));
+
+        if(result == L"")
+        {
+	  fputws((wstring(L"<")+convertir(yytext+1,yyleng)+wstring(L"/>")).c_str(),yyout);
+        }
+        else
+        {
+  	  fputws(result.c_str(), yyout);
+        }
+}
+	YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 203 "apertium-prelatex.l"
+{
+	fputws(L"<BR/>",yyout);
+}
+	YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 207 "apertium-prelatex.l"
+{
+	if(yytext[yyleng-1]=='\r')
+		fputws((wstring(L"<COMMENT>")+convertir(yytext+1,yyleng-2)+wstring(L"</COMMENT>\r")).c_str(),yyout);
+	else
+		fputws((wstring(L"<COMMENT>")+convertir(yytext+1,yyleng-1)+wstring(L"</COMMENT>")).c_str(),yyout);
+}
+	YY_BREAK
+case 19:
+/* rule 19 can match eol */
+YY_RULE_SETUP
+#line 214 "apertium-prelatex.l"
+{
+	wstring ws = convertir(yytext+12,yyleng-13);
+	fputws((wstring(L"<usepackage/><PARAM>")+ws+wstring(L"</PARAM>")).c_str(), yyout);
+	if(ws.find(L"ngerman") >= 0)
+		ngermanbabel = true;
+}
+	YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 221 "apertium-prelatex.l"
+{
+	fputws((wstring(L"<PARAM>")+convertir(yytext+1,yyleng-2)+wstring(L"</PARAM>")).c_str(), yyout);
+}
+	YY_BREAK
+case 21:
+/* rule 21 can match eol */
+YY_RULE_SETUP
+#line 225 "apertium-prelatex.l"
+{
+	BEGIN(readbrackets);
+	closesym = L"";
+}
+	YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 230 "apertium-prelatex.l"
+{
+	BEGIN(readbrackets);
+	closesym = L"/";
+}
+	YY_BREAK
+case 23:
+/* rule 23 can match eol */
+YY_RULE_SETUP
+#line 237 "apertium-prelatex.l"
+{
+	wstring ws = convertir(yytext,yyleng);
+	int i = ws.find(L'{'); //remove it
+	if(i>=0)
+		ws = ws.substr(0,i)+ws.substr(i+1);
+	fputws(ws.c_str(),yyout);
+}
+	YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 245 "apertium-prelatex.l"
+{
+	fputws((wstring(L"<")+closesym+convertir(yytext,yyleng-1)+wstring(L"_STAR>")).c_str(),yyout);
+}
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 249 "apertium-prelatex.l"
+{
+	fputws((wstring(L"<")+closesym+convertir(yytext,yyleng)+wstring(L">")).c_str(),yyout);
+}
+	YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 253 "apertium-prelatex.l"
+{
+	BEGIN(0);
+	wstring ws = convertir(yytext,yyleng);
+	int i = ws.find(L'}'); //remove it
+	if(i>=0)
+		ws = ws.substr(0,i)+ws.substr(i+1);
+	fputws(ws.c_str(),yyout);
+}
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 263 "apertium-prelatex.l"
+{
+	fputws((wstring(L"<")+convertir(yytext+1,yyleng-2)+wstring(L"_STAR/>")).c_str(),yyout);
+}
+	YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 267 "apertium-prelatex.l"
+{
+	fputws((wstring(L"<")+convertir(yytext+1,yyleng)+wstring(L"/>")).c_str(),yyout);
+}
+	YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 271 "apertium-prelatex.l"
+{
+        fputws(L"<LEFTESCAPEDBRACE/>", yyout);
+        }
+	YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 275 "apertium-prelatex.l"
+{
+        fputws(L"<RIGHTESCAPEDBRACE/>", yyout);
+        }
+	YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 279 "apertium-prelatex.l"
+{
+        fputws(L"<ESCAPEDPERCENT/>", yyout);
+        }
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 283 "apertium-prelatex.l"
+{
+	fputws(L"<CONTENTS>",yyout);
+}
+	YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 287 "apertium-prelatex.l"
+{
+	fputws((wstring(L"</CONTENTS>")).c_str(),yyout);
+}
+	YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 291 "apertium-prelatex.l"
+{
+	fputws(L"&NBSP;",yyout);
+}
+	YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 295 "apertium-prelatex.l"
+{
+	BEGIN(mathenv);
+	fputws(L"<MATH_DOLLARS>",yyout);
+}
+	YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 300 "apertium-prelatex.l"
+{
+	fputws(L"</MATH_DOLLARS>",yyout);
+	BEGIN(0);
+}
+	YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 305 "apertium-prelatex.l"
+{
+	BEGIN(mathenv);
+	fputws(L"<MATH_DOLLAR>",yyout);
+}
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 310 "apertium-prelatex.l"
+{
+	fputws(L"</MATH_DOLLAR>",yyout);
+	BEGIN(0);
+}
+	YY_BREAK
+case 39:
+/* rule 39 can match eol */
+YY_RULE_SETUP
+#line 315 "apertium-prelatex.l"
+{
+        fputws(L"<VERB>",yyout);
+        wstring ws = convertir(yytext, yyleng);
+        fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
+        fputws(L"</VERB>", yyout);
+}
+	YY_BREAK
+case 40:
+/* rule 40 can match eol */
+YY_RULE_SETUP
+#line 322 "apertium-prelatex.l"
+{
+        fputws(L"<VERB>",yyout);
+        wstring ws = convertir(yytext, yyleng);
+        fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
+        fputws(L"</VERB>", yyout);
+}
+	YY_BREAK
+case 41:
+/* rule 41 can match eol */
+YY_RULE_SETUP
+#line 329 "apertium-prelatex.l"
+{
+        fputws(L"<VERB>",yyout);
+        wstring ws = convertir(yytext, yyleng);
+        fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
+        fputws(L"</VERB>", yyout);
+}
+	YY_BREAK
+case 42:
+/* rule 42 can match eol */
+YY_RULE_SETUP
+#line 336 "apertium-prelatex.l"
+{
+        fputws(L"<VERB>",yyout);
+        wstring ws = convertir(yytext, yyleng);
+        fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
+        fputws(L"</VERB>", yyout);
+}
+	YY_BREAK
+case 43:
+/* rule 43 can match eol */
+YY_RULE_SETUP
+#line 343 "apertium-prelatex.l"
+{
+        fputws(L"<VERB>",yyout);
+        wstring ws = convertir(yytext, yyleng);
+        fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
+        fputws(L"</VERB>", yyout);
+}
+	YY_BREAK
+case 44:
+/* rule 44 can match eol */
+YY_RULE_SETUP
+#line 350 "apertium-prelatex.l"
+{
+        fputws(L"<VERB>",yyout);
+        wstring ws = convertir(yytext, yyleng);
+        fputws(ws.substr(5, ws.size()-5).c_str(), yyout);
+        fputws(L"</VERB>", yyout);
+}
+	YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 357 "apertium-prelatex.l"
+{
+	fputws(L"<MATH_PAR>",yyout);
+}
+	YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 361 "apertium-prelatex.l"
+{
+	fputws(L"</MATH_PAR>",yyout);
+}
+	YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 365 "apertium-prelatex.l"
+{
+	fputws(L"<MATH_BRA>",yyout);
+}
+	YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 369 "apertium-prelatex.l"
+{
+	fputws(L"</MATH_BRA>",yyout);
+}
+	YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 373 "apertium-prelatex.l"
+{
+	fputws(L"¿",yyout);
+}
+	YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 377 "apertium-prelatex.l"
+{
+	fputws(L"¡",yyout);
+}
+	YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 381 "apertium-prelatex.l"
+{
+	fputws(L""",yyout);
+}
+	YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 384 "apertium-prelatex.l"
+{
+	fputws(L"'",yyout);
+}
+	YY_BREAK
+case 53:
+YY_RULE_SETUP
+#line 387 "apertium-prelatex.l"
+{
+	fputws(L"<",yyout);
+}
+	YY_BREAK
+case 54:
+YY_RULE_SETUP
+#line 390 "apertium-prelatex.l"
+{
+	fputws(L">",yyout);
+}
+	YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 393 "apertium-prelatex.l"
+{
+	fputws(L"&",yyout);
+}
+	YY_BREAK
+case 56:
+YY_RULE_SETUP
+#line 396 "apertium-prelatex.l"
+{
+	fputws(L"<AMP/>",yyout);
+}
+	YY_BREAK
+case 57:
+/* rule 57 can match eol */
+YY_RULE_SETUP
+#line 404 "apertium-prelatex.l"
+{
+	fputws(convertir(yytext,yyleng).c_str(),yyout);
+}
+	YY_BREAK
+case 58:
+/* rule 58 can match eol */
+YY_RULE_SETUP
+#line 408 "apertium-prelatex.l"
+{
+	fputws(convertir(yytext,yyleng).c_str(),yyout);
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(mathenv):
+case YY_STATE_EOF(readbrackets):
+#line 413 "apertium-prelatex.l"
+{
+	return 0;
+}
+	YY_BREAK
+case 59:
+YY_RULE_SETUP
+#line 416 "apertium-prelatex.l"
+ECHO;
+	YY_BREAK
+#line 2698 "apertium_prelatex.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+    static void yy_push_state (int  new_state )
+{
+    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
+		{
+		yy_size_t new_size;
+
+		(yy_start_stack_depth) += YY_START_STACK_INCR;
+		new_size = (yy_start_stack_depth) * sizeof( int );
+
+		if ( ! (yy_start_stack) )
+			(yy_start_stack) = (int *) yyalloc(new_size  );
+
+		else
+			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+
+		if ( ! (yy_start_stack) )
+			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+		}
+
+	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
+
+	BEGIN(new_state);
+}
+
+    static void yy_pop_state  (void)
+{
+    	if ( --(yy_start_stack_ptr) < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
+
+	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
+
+    static int yy_top_state  (void)
+{
+    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_start_stack_ptr) = 0;
+    (yy_start_stack_depth) = 0;
+    (yy_start_stack) =  NULL;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Destroy the start condition stack. */
+        yyfree((yy_start_stack)  );
+        (yy_start_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 416 "apertium-prelatex.l"
+
+
+
+
+
+void usage(string const &progname)
+{
+
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+
+  cerr << "LaTeX format preprocessor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+  size_t base = 0;
+
+  if(argc >= 2 && !strcmp(argv[1],"-i"))
+  {
+    base++;
+  }
+
+ if((argc-base) > 4)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc-base)
+  {
+    case 3:
+      yyout = fopen(argv[2+base], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1+base], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+  // prevent warning message
+  yy_push_state(1);
+  yy_top_state();
+  yy_pop_state();
+
+  yylex();
+
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_rehtml.cc b/apertium/apertium_rehtml.cc
new file mode 100644
index 0000000..45c7289
--- /dev/null
+++ b/apertium/apertium_rehtml.cc
@@ -0,0 +1,1959 @@
+#line 2 "apertium_rehtml.cc"
+
+#line 4 "apertium_rehtml.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_rehtml.cctmp"
+#line 4 "apertium_rehtml.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+map<wstring, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+  S1_substitution[L"À"] = L"À";
+  S1_substitution[L"Á"] = L"Á";
+  S1_substitution[L"Â"] = L"Â";
+  S1_substitution[L"Ã"] = L"Ã";
+  S1_substitution[L"Ä"] = L"Ä";
+  S1_substitution[L"Å"] = L"Å";
+  S1_substitution[L"Æ"] = L"Æ";
+  S1_substitution[L"Ç"] = L"Ç";
+  S1_substitution[L"È"] = L"È";
+  S1_substitution[L"É"] = L"É";
+  S1_substitution[L"Ê"] = L"Ê";
+  S1_substitution[L"Ë"] = L"Ë";
+  S1_substitution[L"Ì"] = L"Ì";
+  S1_substitution[L"Í"] = L"Í";
+  S1_substitution[L"Î"] = L"Î";
+  S1_substitution[L"Ï"] = L"Ï";
+  S1_substitution[L"Ð"] = L"Ð";
+  S1_substitution[L"Ñ"] = L"Ñ";
+  S1_substitution[L"Ò"] = L"Ò";
+  S1_substitution[L"Ó"] = L"Ó";
+  S1_substitution[L"Ô"] = L"Ô";
+  S1_substitution[L"Õ"] = L"Õ";
+  S1_substitution[L"Ö"] = L"Ö";
+  S1_substitution[L"Ø"] = L"Ø";
+  S1_substitution[L"Ù"] = L"Ù";
+  S1_substitution[L"Ú"] = L"Ú";
+  S1_substitution[L"Û"] = L"Û";
+  S1_substitution[L"Ü"] = L"Ü";
+  S1_substitution[L"Ý"] = L"Ý";
+  S1_substitution[L"Þ"] = L"Þ";
+  S1_substitution[L"ß"] = L"ß";
+  S1_substitution[L"à"] = L"à";
+  S1_substitution[L"á"] = L"á";
+  S1_substitution[L"â"] = L"â";
+  S1_substitution[L"ã"] = L"ã";
+  S1_substitution[L"ä"] = L"ä";
+  S1_substitution[L"å"] = L"å";
+  S1_substitution[L"æ"] = L"æ";
+  S1_substitution[L"ç"] = L"ç";
+  S1_substitution[L"è"] = L"è";
+  S1_substitution[L"é"] = L"é";
+  S1_substitution[L"ê"] = L"ê";
+  S1_substitution[L"ë"] = L"ë";
+  S1_substitution[L"ì"] = L"ì";
+  S1_substitution[L"í"] = L"í";
+  S1_substitution[L"î"] = L"î";
+  S1_substitution[L"ï"] = L"ï";
+  S1_substitution[L"ð"] = L"ð";
+  S1_substitution[L"ñ"] = L"ñ";
+  S1_substitution[L"ò"] = L"ò";
+  S1_substitution[L"ó"] = L"ó";
+  S1_substitution[L"ô"] = L"ô";
+  S1_substitution[L"õ"] = L"õ";
+  S1_substitution[L"ö"] = L"ö";
+  S1_substitution[L"ø"] = L"ø";
+  S1_substitution[L"ù"] = L"ù";
+  S1_substitution[L"ú"] = L"ú";
+  S1_substitution[L"û"] = L"û";
+  S1_substitution[L"ü"] = L"ü";
+  S1_substitution[L"ý"] = L"ý";
+  S1_substitution[L"þ"] = L"þ";
+  S1_substitution[L"ÿ"] = L"ÿ";
+  S1_substitution[L"·"] = L"·";
+  S1_substitution[L"«"] = L"«";
+  S1_substitution[L"»"] = L"»";
+  S1_substitution[L"Ĉ"] = L"Ĉ";
+  S1_substitution[L"ĉ"] = L"ĉ";
+  S1_substitution[L"Ĝ"] = L"Ĝ";
+  S1_substitution[L"ĝ"] = L"ĝ";
+  S1_substitution[L"Ĥ"] = L"Ĥ";
+  S1_substitution[L"ĥ"] = L"ĥ";
+  S1_substitution[L"Ĵ"] = L"Ĵ";
+  S1_substitution[L"ĵ"] = L"ĵ";
+  S1_substitution[L"Ŝ"] = L"Ŝ";
+  S1_substitution[L"ŝ"] = L"ŝ";
+  S1_substitution[L"Ŭ"] = L"Ŭ";
+  S1_substitution[L"ŭ"] = L"ŭ";
+  S1_substitution[L"'"] = L"'";
+}
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 644 "apertium_rehtml.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 149 "apertium_rehtml.cctmp"
+
+
+#line 838 "apertium_rehtml.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 151 "apertium_rehtml.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 155 "apertium_rehtml.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 177 "apertium_rehtml.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 181 "apertium_rehtml.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 185 "apertium_rehtml.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 191 "apertium_rehtml.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  if(S1_substitution.find(yytext_conv) != S1_substitution.end())
+  {
+    fputws_unlocked(S1_substitution[yytext_conv].c_str(), yyout);
+  }
+  else
+  {
+    fputws_unlocked(yytext_conv.c_str(), yyout);
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 203 "apertium_rehtml.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 207 "apertium_rehtml.cctmp"
+ECHO;
+	YY_BREAK
+#line 964 "apertium_rehtml.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 207 "apertium_rehtml.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+  S1_init();
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_rehtml_noent.cc b/apertium/apertium_rehtml_noent.cc
new file mode 100644
index 0000000..17070e4
--- /dev/null
+++ b/apertium/apertium_rehtml_noent.cc
@@ -0,0 +1,1869 @@
+#line 2 "apertium_rehtml_noent.cc"
+
+#line 4 "apertium_rehtml_noent.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_rehtml_noent.cctmp"
+#line 4 "apertium_rehtml_noent.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 561 "apertium_rehtml_noent.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 66 "apertium_rehtml_noent.cctmp"
+
+
+#line 755 "apertium_rehtml_noent.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 68 "apertium_rehtml_noent.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 72 "apertium_rehtml_noent.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 94 "apertium_rehtml_noent.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 98 "apertium_rehtml_noent.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 102 "apertium_rehtml_noent.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 108 "apertium_rehtml_noent.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  fputws_unlocked(yytext_conv.c_str(), yyout);
+
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 114 "apertium_rehtml_noent.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 118 "apertium_rehtml_noent.cctmp"
+ECHO;
+	YY_BREAK
+#line 875 "apertium_rehtml_noent.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 118 "apertium_rehtml_noent.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_relatex.cc b/apertium/apertium_relatex.cc
new file mode 100644
index 0000000..0837b52
--- /dev/null
+++ b/apertium/apertium_relatex.cc
@@ -0,0 +1,1881 @@
+#line 2 "apertium_relatex.cc"
+
+#line 4 "apertium_relatex.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_relatex.cctmp"
+#line 4 "apertium_relatex.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+map<wstring, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+}
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 566 "apertium_relatex.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 71 "apertium_relatex.cctmp"
+
+
+#line 760 "apertium_relatex.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 73 "apertium_relatex.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 77 "apertium_relatex.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 99 "apertium_relatex.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 103 "apertium_relatex.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 107 "apertium_relatex.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 113 "apertium_relatex.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  if(S1_substitution.find(yytext_conv) != S1_substitution.end())
+  {
+    fputws_unlocked(S1_substitution[yytext_conv].c_str(), yyout);
+  }
+  else
+  {
+    fputws_unlocked(yytext_conv.c_str(), yyout);
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 125 "apertium_relatex.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 129 "apertium_relatex.cctmp"
+ECHO;
+	YY_BREAK
+#line 886 "apertium_relatex.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 129 "apertium_relatex.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "latex format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+  S1_init();
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_remediawiki.cc b/apertium/apertium_remediawiki.cc
new file mode 100644
index 0000000..18ca379
--- /dev/null
+++ b/apertium/apertium_remediawiki.cc
@@ -0,0 +1,1869 @@
+#line 2 "apertium_remediawiki.cc"
+
+#line 4 "apertium_remediawiki.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_remediawiki.cctmp"
+#line 4 "apertium_remediawiki.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 561 "apertium_remediawiki.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 66 "apertium_remediawiki.cctmp"
+
+
+#line 755 "apertium_remediawiki.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 68 "apertium_remediawiki.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 72 "apertium_remediawiki.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 94 "apertium_remediawiki.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 98 "apertium_remediawiki.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 102 "apertium_remediawiki.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 108 "apertium_remediawiki.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  fputws_unlocked(yytext_conv.c_str(), yyout);
+
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 114 "apertium_remediawiki.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 118 "apertium_remediawiki.cctmp"
+ECHO;
+	YY_BREAK
+#line 875 "apertium_remediawiki.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 118 "apertium_remediawiki.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_reodt.cc b/apertium/apertium_reodt.cc
new file mode 100644
index 0000000..c4f5781
--- /dev/null
+++ b/apertium/apertium_reodt.cc
@@ -0,0 +1,1881 @@
+#line 2 "apertium_reodt.cc"
+
+#line 4 "apertium_reodt.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_reodt.cctmp"
+#line 4 "apertium_reodt.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+map<wstring, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+}
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 566 "apertium_reodt.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 71 "apertium_reodt.cctmp"
+
+
+#line 760 "apertium_reodt.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 73 "apertium_reodt.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 77 "apertium_reodt.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 99 "apertium_reodt.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 103 "apertium_reodt.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 107 "apertium_reodt.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 113 "apertium_reodt.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  if(S1_substitution.find(yytext_conv) != S1_substitution.end())
+  {
+    fputws_unlocked(S1_substitution[yytext_conv].c_str(), yyout);
+  }
+  else
+  {
+    fputws_unlocked(yytext_conv.c_str(), yyout);
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 125 "apertium_reodt.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 129 "apertium_reodt.cctmp"
+ECHO;
+	YY_BREAK
+#line 886 "apertium_reodt.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 129 "apertium_reodt.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+  S1_init();
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_repptx.cc b/apertium/apertium_repptx.cc
new file mode 100644
index 0000000..407f6dc
--- /dev/null
+++ b/apertium/apertium_repptx.cc
@@ -0,0 +1,1881 @@
+#line 2 "apertium_repptx.cc"
+
+#line 4 "apertium_repptx.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_repptx.cctmp"
+#line 4 "apertium_repptx.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+map<wstring, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+}
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 566 "apertium_repptx.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 71 "apertium_repptx.cctmp"
+
+
+#line 760 "apertium_repptx.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 73 "apertium_repptx.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 77 "apertium_repptx.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 99 "apertium_repptx.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 103 "apertium_repptx.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 107 "apertium_repptx.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 113 "apertium_repptx.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  if(S1_substitution.find(yytext_conv) != S1_substitution.end())
+  {
+    fputws_unlocked(S1_substitution[yytext_conv].c_str(), yyout);
+  }
+  else
+  {
+    fputws_unlocked(yytext_conv.c_str(), yyout);
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 125 "apertium_repptx.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 129 "apertium_repptx.cctmp"
+ECHO;
+	YY_BREAK
+#line 886 "apertium_repptx.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 129 "apertium_repptx.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+  S1_init();
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_rertf.cc b/apertium/apertium_rertf.cc
new file mode 100644
index 0000000..c6dbb6f
--- /dev/null
+++ b/apertium/apertium_rertf.cc
@@ -0,0 +1,1953 @@
+#line 2 "apertium_rertf.cc"
+
+#line 4 "apertium_rertf.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
+        1,    3,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_rertf.cctmp"
+#line 4 "apertium_rertf.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+map<wstring, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+}
+map<wstring, wstring, Ltstr> S2_substitution;
+
+void S2_init()
+{
+  S2_substitution[L"À"] = L"\\'c0";
+  S2_substitution[L"Á"] = L"\\'c1";
+  S2_substitution[L"Â"] = L"\\'c2";
+  S2_substitution[L"Ã"] = L"\\'c3";
+  S2_substitution[L"Ä"] = L"\\'c4";
+  S2_substitution[L"Å"] = L"\\'c5";
+  S2_substitution[L"Æ"] = L"\\'c6";
+  S2_substitution[L"Ç"] = L"\\'c7";
+  S2_substitution[L"È"] = L"\\'c8";
+  S2_substitution[L"É"] = L"\\'c9";
+  S2_substitution[L"Ê"] = L"\\'ca";
+  S2_substitution[L"Ë"] = L"\\'cb";
+  S2_substitution[L"Ì"] = L"\\'cc";
+  S2_substitution[L"Í"] = L"\\'cd";
+  S2_substitution[L"Î"] = L"\\'ce";
+  S2_substitution[L"Ï"] = L"\\'cf";
+  S2_substitution[L"Ð"] = L"\\'d0";
+  S2_substitution[L"Ñ"] = L"\\'d1";
+  S2_substitution[L"Ò"] = L"\\'d2";
+  S2_substitution[L"Ó"] = L"\\'d3";
+  S2_substitution[L"Ô"] = L"\\'d4";
+  S2_substitution[L"Õ"] = L"\\'d5";
+  S2_substitution[L"Ö"] = L"\\'d6";
+  S2_substitution[L"Ø"] = L"\\'d8";
+  S2_substitution[L"Ù"] = L"\\'d9";
+  S2_substitution[L"Ú"] = L"\\'da";
+  S2_substitution[L"Û"] = L"\\'db";
+  S2_substitution[L"Ü"] = L"\\'dc";
+  S2_substitution[L"Ý"] = L"\\'dd";
+  S2_substitution[L"Þ"] = L"\\'de";
+  S2_substitution[L"ß"] = L"\\'df";
+  S2_substitution[L"à"] = L"\\'e0";
+  S2_substitution[L"á"] = L"\\'e1";
+  S2_substitution[L"â"] = L"\\'e2";
+  S2_substitution[L"ã"] = L"\\'e3";
+  S2_substitution[L"ä"] = L"\\'e4";
+  S2_substitution[L"å"] = L"\\'e5";
+  S2_substitution[L"æ"] = L"\\'e6";
+  S2_substitution[L"ç"] = L"\\'e7";
+  S2_substitution[L"è"] = L"\\'e8";
+  S2_substitution[L"é"] = L"\\'e9";
+  S2_substitution[L"ê"] = L"\\'ea";
+  S2_substitution[L"ë"] = L"\\'eb";
+  S2_substitution[L"ì"] = L"\\'ec";
+  S2_substitution[L"í"] = L"\\'ed";
+  S2_substitution[L"î"] = L"\\'ee";
+  S2_substitution[L"ï"] = L"\\'ef";
+  S2_substitution[L"ð"] = L"\\'f0";
+  S2_substitution[L"ñ"] = L"\\'f1";
+  S2_substitution[L"ò"] = L"\\'f2";
+  S2_substitution[L"ó"] = L"\\'f3";
+  S2_substitution[L"ô"] = L"\\'f4";
+  S2_substitution[L"õ"] = L"\\'f5";
+  S2_substitution[L"ö"] = L"\\'f6";
+  S2_substitution[L"ø"] = L"\\'f8";
+  S2_substitution[L"ù"] = L"\\'f9";
+  S2_substitution[L"ú"] = L"\\'fa";
+  S2_substitution[L"û"] = L"\\'fb";
+  S2_substitution[L"ü"] = L"\\'fc";
+  S2_substitution[L"ý"] = L"\\'fd";
+  S2_substitution[L"þ"] = L"\\'fe";
+  S2_substitution[L"ÿ"] = L"\\'ff";
+}
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 633 "apertium_rertf.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 138 "apertium_rertf.cctmp"
+
+
+#line 827 "apertium_rertf.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 140 "apertium_rertf.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 144 "apertium_rertf.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 166 "apertium_rertf.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 170 "apertium_rertf.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 174 "apertium_rertf.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 180 "apertium_rertf.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  if(S1_substitution.find(yytext_conv) != S1_substitution.end())
+  {
+    fputws_unlocked(S1_substitution[yytext_conv].c_str(), yyout);
+  }
+  else if(S2_substitution.find(yytext_conv) != S2_substitution.end())
+  {
+    fputws_unlocked(S2_substitution[yytext_conv].c_str(), yyout);
+  }
+  else
+  {
+    fputws_unlocked(yytext_conv.c_str(), yyout);
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 196 "apertium_rertf.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 200 "apertium_rertf.cctmp"
+ECHO;
+	YY_BREAK
+#line 957 "apertium_rertf.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 200 "apertium_rertf.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "rtf format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+  S1_init();
+  S2_init();
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_retxt.cc b/apertium/apertium_retxt.cc
new file mode 100644
index 0000000..1a196e9
--- /dev/null
+++ b/apertium/apertium_retxt.cc
@@ -0,0 +1,1869 @@
+#line 2 "apertium_retxt.cc"
+
+#line 4 "apertium_retxt.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
+        1,    3,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_retxt.cctmp"
+#line 4 "apertium_retxt.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 561 "apertium_retxt.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 66 "apertium_retxt.cctmp"
+
+
+#line 755 "apertium_retxt.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 68 "apertium_retxt.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 72 "apertium_retxt.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 94 "apertium_retxt.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 98 "apertium_retxt.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 102 "apertium_retxt.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 108 "apertium_retxt.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  fputws_unlocked(yytext_conv.c_str(), yyout);
+
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 114 "apertium_retxt.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 118 "apertium_retxt.cctmp"
+ECHO;
+	YY_BREAK
+#line 875 "apertium_retxt.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 118 "apertium_retxt.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "txt format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_rewxml.cc b/apertium/apertium_rewxml.cc
new file mode 100644
index 0000000..2f52745
--- /dev/null
+++ b/apertium/apertium_rewxml.cc
@@ -0,0 +1,1881 @@
+#line 2 "apertium_rewxml.cc"
+
+#line 4 "apertium_rewxml.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_rewxml.cctmp"
+#line 4 "apertium_rewxml.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+map<wstring, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+}
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 566 "apertium_rewxml.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 71 "apertium_rewxml.cctmp"
+
+
+#line 760 "apertium_rewxml.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 73 "apertium_rewxml.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 77 "apertium_rewxml.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 99 "apertium_rewxml.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 103 "apertium_rewxml.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 107 "apertium_rewxml.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 113 "apertium_rewxml.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  if(S1_substitution.find(yytext_conv) != S1_substitution.end())
+  {
+    fputws_unlocked(S1_substitution[yytext_conv].c_str(), yyout);
+  }
+  else
+  {
+    fputws_unlocked(yytext_conv.c_str(), yyout);
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 125 "apertium_rewxml.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 129 "apertium_rewxml.cctmp"
+ECHO;
+	YY_BREAK
+#line 886 "apertium_rewxml.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 129 "apertium_rewxml.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+  S1_init();
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_rexlsx.cc b/apertium/apertium_rexlsx.cc
new file mode 100644
index 0000000..1555df6
--- /dev/null
+++ b/apertium/apertium_rexlsx.cc
@@ -0,0 +1,1881 @@
+#line 2 "apertium_rexlsx.cc"
+
+#line 4 "apertium_rexlsx.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_rexlsx.cctmp"
+#line 4 "apertium_rexlsx.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+map<wstring, wstring, Ltstr> S1_substitution;
+
+void S1_init()
+{
+}
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 566 "apertium_rexlsx.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 71 "apertium_rexlsx.cctmp"
+
+
+#line 760 "apertium_rexlsx.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 73 "apertium_rexlsx.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 77 "apertium_rexlsx.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 99 "apertium_rexlsx.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 103 "apertium_rexlsx.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 107 "apertium_rexlsx.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 113 "apertium_rexlsx.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  if(S1_substitution.find(yytext_conv) != S1_substitution.end())
+  {
+    fputws_unlocked(S1_substitution[yytext_conv].c_str(), yyout);
+  }
+  else
+  {
+    fputws_unlocked(yytext_conv.c_str(), yyout);
+  }
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 125 "apertium_rexlsx.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 129 "apertium_rexlsx.cctmp"
+ECHO;
+	YY_BREAK
+#line 886 "apertium_rexlsx.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 129 "apertium_rexlsx.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "html format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+  S1_init();
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_rexpresstag.cc b/apertium/apertium_rexpresstag.cc
new file mode 100644
index 0000000..48efd2f
--- /dev/null
+++ b/apertium/apertium_rexpresstag.cc
@@ -0,0 +1,1869 @@
+#line 2 "apertium_rexpresstag.cc"
+
+#line 4 "apertium_rexpresstag.cc"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 39
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
+
+#endif /* ! C99 */
+
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else	/* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif	/* defined (__STDC__) */
+#endif	/* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index.  If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition.  This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN (yy_start) = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state.  The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START (((yy_start) - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart(yyin  )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
+
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+    #define YY_LESS_LINENO(n)
+    #define YY_LINENO_REWIND_TO(ptr)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
+		YY_RESTORE_YY_MORE_OFFSET \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		} \
+	while ( 0 )
+
+#define unput(c) yyunput( c, (yytext_ptr)  )
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+	{
+	FILE *yy_input_file;
+
+	char *yy_ch_buf;		/* input buffer */
+	char *yy_buf_pos;		/* current position in input buffer */
+
+	/* Size of input buffer in bytes, not including room for EOB
+	 * characters.
+	 */
+	yy_size_t yy_buf_size;
+
+	/* Number of characters read into yy_ch_buf, not including EOB
+	 * characters.
+	 */
+	yy_size_t yy_n_chars;
+
+	/* Whether we "own" the buffer - i.e., we know we created it,
+	 * and can realloc() it to grow it, and should free() it to
+	 * delete it.
+	 */
+	int yy_is_our_buffer;
+
+	/* Whether this is an "interactive" input source; if so, and
+	 * if we're using stdio for input, then we want to use getc()
+	 * instead of fread(), to make sure we stop fetching input after
+	 * each newline.
+	 */
+	int yy_is_interactive;
+
+	/* Whether we're considered to be at the beginning of a line.
+	 * If so, '^' rules will be active on the next match, otherwise
+	 * not.
+	 */
+	int yy_at_bol;
+
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
+	/* Whether to try to fill the input buffer when we reach the
+	 * end of it.
+	 */
+	int yy_fill_buffer;
+
+	int yy_buffer_status;
+
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+	/* When an EOF's been seen but there's still some text to process
+	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+	 * shouldn't try reading from the input source any more.  We might
+	 * still have a bunch of tokens to match, though, because of
+	 * possible backing-up.
+	 *
+	 * When we actually see the EOF, we change the status to "new"
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
+	 */
+#define YY_BUFFER_EOF_PENDING 2
+
+	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
+
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0;		/* whether we need to initialize */
+static int yy_start = 0;	/* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart (FILE *input_file  );
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
+void yy_delete_buffer (YY_BUFFER_STATE b  );
+void yy_flush_buffer (YY_BUFFER_STATE b  );
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state (void );
+
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+
+#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+
+YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+
+void *yyalloc (yy_size_t  );
+void *yyrealloc (void *,yy_size_t  );
+void yyfree (void *  );
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	}
+
+#define yy_set_bol(at_bol) \
+	{ \
+	if ( ! YY_CURRENT_BUFFER ){\
+        yyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	}
+
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+
+/* Begin user sect3 */
+
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
+
+typedef unsigned char YY_CHAR;
+
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+typedef int yy_state_type;
+
+extern int yylineno;
+
+int yylineno = 1;
+
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yyconst flex_int16_t yy_nxt[][9] =
+    {
+    {
+        0,    0,    0,    0,    0,    0,    0,    0,    0
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+        3,    4,    4,    4,    5,    4,    6,    7,    8
+    },
+
+    {
+       -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3,   -3
+    },
+
+    {
+        3,   -4,   -4,   -4,   -4,   -4,   -4,   -4,   -4
+    },
+
+    {
+        3,   -5,   -5,   -5,   -5,   -5,    9,   -5,   -5
+    },
+
+    {
+        3,   -6,   -6,   -6,   -6,   10,   -6,   11,   -6
+    },
+
+    {
+        3,   -7,   -7,   12,   -7,   12,   12,   12,   12
+    },
+
+    {
+        3,   -8,   -8,   -8,   -8,   -8,   -8,   -8,   -8
+    },
+
+    {
+        3,   -9,   -9,   -9,   -9,   -9,   -9,   -9,   13
+
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,  -10
+    },
+
+    {
+        3,  -11,  -11,  -11,  -11,   15,  -11,  -11,  -11
+    },
+
+    {
+        3,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12
+    },
+
+    {
+        3,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13
+    },
+
+    {
+        3,   14,   14,   14,   14,   14,   14,   14,   16
+    },
+
+    {
+        3,  -15,  -15,  -15,  -15,  -15,  -15,  -15,  -15
+    },
+
+    {
+        3,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16
+    },
+
+    } ;
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+	(yytext_ptr) = yy_bp; \
+	yyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
+	*yy_cp = '\0'; \
+	(yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 7
+#define YY_END_OF_BUFFER 8
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_accept[17] =
+    {   0,
+        0,    0,    8,    6,    6,    1,    6,    1,    0,    0,
+        0,    5,    4,    0,    3,    2
+    } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    3,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    4,    3,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    5,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        6,    7,    8,    3,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    3,    1,    3,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1
+    } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "apertium_rexpresstag.cctmp"
+#line 4 "apertium_rexpresstag.cctmp"
+
+#ifndef GENFORMAT
+#include "apertium_config.h"
+#endif
+#include <apertium/unlocked_cstdio.h>
+
+#include <cstdlib>
+#include <iostream>
+#include <libgen.h>
+#include <map>
+#include <string>
+#include <unistd.h>
+#include <lttoolbox/lt_locale.h>
+#include <lttoolbox/ltstr.h>
+#include <wchar.h>
+#ifdef _WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+using namespace std;
+
+
+
+string memconv;
+
+wstring convertir(char const *multibyte, int const length)
+{
+  memconv.append(multibyte, length);
+  int tam = memconv.size();
+  if (memconv == "")
+    return L"";
+  wchar_t *retval = new wchar_t[tam+1];
+  size_t l = mbstowcs(retval, memconv.c_str(), tam);
+
+  if(l == ((size_t) -1))
+  {
+    if(memconv.size() >= 4)
+    {
+      wcerr << L"Warning: wrong encoding" << endl;
+    }
+    if (retval != NULL)
+      delete[] retval;
+    return L"";
+  }
+  else
+  {
+    memconv = "";
+    retval[l] = 0;
+    wstring ret = retval;
+    if (retval != NULL)
+      delete[] retval;
+    return ret;
+  }
+}
+
+#line 561 "apertium_rexpresstag.cc"
+
+#define INITIAL 0
+
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+#include <unistd.h>
+#endif
+
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap (void );
+#else
+extern int yywrap (void );
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char *,yyconst char *,int );
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * );
+#endif
+
+#ifndef YY_NO_INPUT
+
+#ifdef __cplusplus
+static int yyinput (void );
+#else
+static int input (void );
+#endif
+
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#endif
+
+/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+	errno=0; \
+	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
+	{ \
+		if( errno != EINTR) \
+		{ \
+			YY_FATAL_ERROR( "input in flex scanner failed" ); \
+			break; \
+		} \
+		errno=0; \
+		clearerr(yyin); \
+	}\
+\
+
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* end tables serialization structures and prototypes */
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+
+extern int yylex (void);
+
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+	YY_USER_ACTION
+
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp, *yy_bp;
+	register int yy_act;
+    
+	if ( !(yy_init) )
+		{
+		(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+		YY_USER_INIT;
+#endif
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
+
+		if ( ! yyin )
+			yyin = stdin;
+
+		if ( ! yyout )
+			yyout = stdout;
+
+		if ( ! YY_CURRENT_BUFFER ) {
+			yyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				yy_create_buffer(yyin,YY_BUF_SIZE );
+		}
+
+		yy_load_buffer_state( );
+		}
+
+	{
+#line 66 "apertium_rexpresstag.cctmp"
+
+
+#line 755 "apertium_rexpresstag.cc"
+
+	while ( 1 )		/* loops until end-of-file is reached */
+		{
+		yy_cp = (yy_c_buf_p);
+
+		/* Support of yytext. */
+		*yy_cp = (yy_hold_char);
+
+		/* yy_bp points to the position in yy_ch_buf of the start of
+		 * the current run.
+		 */
+		yy_bp = yy_cp;
+
+		yy_current_state = (yy_start);
+yy_match:
+		while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
+			{
+			if ( yy_accept[yy_current_state] )
+				{
+				(yy_last_accepting_state) = yy_current_state;
+				(yy_last_accepting_cpos) = yy_cp;
+				}
+
+			++yy_cp;
+			}
+
+		yy_current_state = -yy_current_state;
+
+yy_find_action:
+		yy_act = yy_accept[yy_current_state];
+
+		YY_DO_BEFORE_ACTION;
+
+do_action:	/* This label is used only to access EOF actions. */
+
+		switch ( yy_act )
+	{ /* beginning of action switch */
+			case 0: /* must back up */
+			/* undo the effects of YY_DO_BEFORE_ACTION */
+			*yy_cp = (yy_hold_char);
+			yy_cp = (yy_last_accepting_cpos) + 1;
+			yy_current_state = (yy_last_accepting_state);
+			goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 68 "apertium_rexpresstag.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 2:
+/* rule 2 can match eol */
+YY_RULE_SETUP
+#line 72 "apertium_rexpresstag.cctmp"
+{
+  string filename = yytext;
+  filename = filename.substr(2, filename.size()-3);
+  FILE *temp = fopen(filename.c_str(), "r");
+  wint_t mychar;
+#ifdef _WIN32
+  _setmode(_fileno(temp), _O_U8TEXT);
+#endif
+
+  if(!temp)
+  {
+    cerr << "ERROR: File '" << filename <<"' not found." << endl;
+    exit(EXIT_FAILURE);
+  }
+  while(static_cast<int>(mychar = fgetwc_unlocked(temp)) != EOF)
+  {
+    fputwc_unlocked(mychar, yyout);
+  }
+  fclose(temp);
+  unlink(filename.c_str());
+}
+	YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 94 "apertium_rexpresstag.cctmp"
+{
+  fputwc_unlocked(L'@', yyout);
+}
+	YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 98 "apertium_rexpresstag.cctmp"
+{
+  // do nothing
+}
+	YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 102 "apertium_rexpresstag.cctmp"
+{
+  fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
+}
+	YY_BREAK
+case 6:
+/* rule 6 can match eol */
+YY_RULE_SETUP
+#line 108 "apertium_rexpresstag.cctmp"
+{
+  wstring yytext_conv = convertir(yytext, yyleng);
+  fputws_unlocked(yytext_conv.c_str(), yyout);
+
+}
+	YY_BREAK
+case YY_STATE_EOF(INITIAL):
+#line 114 "apertium_rexpresstag.cctmp"
+{
+  return 0;
+}
+	YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 118 "apertium_rexpresstag.cctmp"
+ECHO;
+	YY_BREAK
+#line 875 "apertium_rexpresstag.cc"
+
+	case YY_END_OF_BUFFER:
+		{
+		/* Amount of text matched not including the EOB char. */
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+
+		/* Undo the effects of YY_DO_BEFORE_ACTION. */
+		*yy_cp = (yy_hold_char);
+		YY_RESTORE_YY_MORE_OFFSET
+
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+			{
+			/* We're scanning a new file or input source.  It's
+			 * possible that this happened because the user
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
+			 * globals.  Here is the right place to do so, because
+			 * this is the first action (other than possibly a
+			 * back-up) that will match for the new input source.
+			 */
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			}
+
+		/* Note that here we test for yy_c_buf_p "<=" to the position
+		 * of the first EOB in the buffer, since yy_c_buf_p will
+		 * already have been incremented past the NUL character
+		 * (since all states make transitions on EOB to the
+		 * end-of-buffer state).  Contrast this with the test
+		 * in input().
+		 */
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			{ /* This was really a NUL. */
+			yy_state_type yy_next_state;
+
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+
+			yy_current_state = yy_get_previous_state(  );
+
+			/* Okay, we're now positioned to make the NUL
+			 * transition.  We couldn't have
+			 * yy_get_previous_state() go ahead and do it
+			 * for us because it doesn't know how to deal
+			 * with the possibility of jamming (and we don't
+			 * want to build jamming into it because then it
+			 * will run more slowly).
+			 */
+
+			yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+
+			if ( yy_next_state )
+				{
+				/* Consume the NUL. */
+				yy_cp = ++(yy_c_buf_p);
+				yy_current_state = yy_next_state;
+				goto yy_match;
+				}
+
+			else
+				{
+				yy_cp = (yy_c_buf_p);
+				goto yy_find_action;
+				}
+			}
+
+		else switch ( yy_get_next_buffer(  ) )
+			{
+			case EOB_ACT_END_OF_FILE:
+				{
+				(yy_did_buffer_switch_on_eof) = 0;
+
+				if ( yywrap( ) )
+					{
+					/* Note: because we've taken care in
+					 * yy_get_next_buffer() to have set up
+					 * yytext, we can now set up
+					 * yy_c_buf_p so that if some total
+					 * hoser (like flex itself) wants to
+					 * call the scanner after we return the
+					 * YY_NULL, it'll still work - another
+					 * YY_NULL will get returned.
+					 */
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+
+					yy_act = YY_STATE_EOF(YY_START);
+					goto do_action;
+					}
+
+				else
+					{
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+					}
+				break;
+				}
+
+			case EOB_ACT_CONTINUE_SCAN:
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_match;
+
+			case EOB_ACT_LAST_MATCH:
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+
+				yy_current_state = yy_get_previous_state(  );
+
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				goto yy_find_action;
+			}
+		break;
+		}
+
+	default:
+		YY_FATAL_ERROR(
+			"fatal flex scanner internal error--no action found" );
+	} /* end of action switch */
+		} /* end of scanning one token */
+	} /* end of user's declarations */
+} /* end of yylex */
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ *	EOB_ACT_LAST_MATCH -
+ *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ *	EOB_ACT_END_OF_FILE - end of file
+ */
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
+	register int number_to_move, i;
+	int ret_val;
+
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+		YY_FATAL_ERROR(
+		"fatal flex scanner internal error--end of buffer missed" );
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+		{ /* Don't try to fill the buffer, so this is an EOF. */
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+			{
+			/* We matched a single character, the EOB, so
+			 * treat this as a final EOF.
+			 */
+			return EOB_ACT_END_OF_FILE;
+			}
+
+		else
+			{
+			/* We matched some text prior to the EOB, first
+			 * process it.
+			 */
+			return EOB_ACT_LAST_MATCH;
+			}
+		}
+
+	/* Try to read more data. */
+
+	/* First move last chars to start of buffer. */
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+
+	for ( i = 0; i < number_to_move; ++i )
+		*(dest++) = *(source++);
+
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+		/* don't do the read, it's not guaranteed to return an EOF,
+		 * just force an EOF
+		 */
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+
+	else
+		{
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+		while ( num_to_read <= 0 )
+			{ /* Not enough room in the buffer - grow it. */
+
+			/* just a shorter name for the current buffer */
+			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
+
+			int yy_c_buf_p_offset =
+				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+			if ( b->yy_is_our_buffer )
+				{
+				yy_size_t new_size = b->yy_buf_size * 2;
+
+				if ( new_size <= 0 )
+					b->yy_buf_size += b->yy_buf_size / 8;
+				else
+					b->yy_buf_size *= 2;
+
+				b->yy_ch_buf = (char *)
+					/* Include room in for 2 EOB chars. */
+					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+				}
+			else
+				/* Can't grow it, we don't own it. */
+				b->yy_ch_buf = 0;
+
+			if ( ! b->yy_ch_buf )
+				YY_FATAL_ERROR(
+				"fatal error - scanner input buffer overflow" );
+
+			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+						number_to_move - 1;
+
+			}
+
+		if ( num_to_read > YY_READ_BUF_SIZE )
+			num_to_read = YY_READ_BUF_SIZE;
+
+		/* Read in more data. */
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
+
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	if ( (yy_n_chars) == 0 )
+		{
+		if ( number_to_move == YY_MORE_ADJ )
+			{
+			ret_val = EOB_ACT_END_OF_FILE;
+			yyrestart(yyin  );
+			}
+
+		else
+			{
+			ret_val = EOB_ACT_LAST_MATCH;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+				YY_BUFFER_EOF_PENDING;
+			}
+		}
+
+	else
+		ret_val = EOB_ACT_CONTINUE_SCAN;
+
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
+
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+	return ret_val;
+}
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+    static yy_state_type yy_get_previous_state (void)
+{
+	register yy_state_type yy_current_state;
+	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
+
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+		{
+		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+	return yy_current_state;
+}
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ *	next_state = yy_try_NUL_trans( current_state );
+ */
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
+	register int yy_is_jam;
+    	register char *yy_cp = (yy_c_buf_p);
+
+	yy_current_state = yy_nxt[yy_current_state][1];
+	yy_is_jam = (yy_current_state <= 0);
+
+	if ( ! yy_is_jam )
+		{
+		if ( yy_accept[yy_current_state] )
+			{
+			(yy_last_accepting_state) = yy_current_state;
+			(yy_last_accepting_cpos) = yy_cp;
+			}
+		}
+
+		return yy_is_jam ? 0 : yy_current_state;
+}
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+    static int yyinput (void)
+#else
+    static int input  (void)
+#endif
+
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
+
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+		{
+		/* yy_c_buf_p now points to the character we want to return.
+		 * If this occurs *before* the EOB characters, then it's a
+		 * valid NUL; if not, then we've hit the end of the buffer.
+		 */
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+			/* This was really a NUL. */
+			*(yy_c_buf_p) = '\0';
+
+		else
+			{ /* need more input */
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
+
+			switch ( yy_get_next_buffer(  ) )
+				{
+				case EOB_ACT_LAST_MATCH:
+					/* This happens because yy_g_n_b()
+					 * sees that we've accumulated a
+					 * token and flags that we need to
+					 * try matching the token before
+					 * proceeding.  But for input(),
+					 * there's no matching to consider.
+					 * So convert the EOB_ACT_LAST_MATCH
+					 * to EOB_ACT_END_OF_FILE.
+					 */
+
+					/* Reset buffer status. */
+					yyrestart(yyin );
+
+					/*FALLTHROUGH*/
+
+				case EOB_ACT_END_OF_FILE:
+					{
+					if ( yywrap( ) )
+						return EOF;
+
+					if ( ! (yy_did_buffer_switch_on_eof) )
+						YY_NEW_FILE;
+#ifdef __cplusplus
+					return yyinput();
+#else
+					return input();
+#endif
+					}
+
+				case EOB_ACT_CONTINUE_SCAN:
+					(yy_c_buf_p) = (yytext_ptr) + offset;
+					break;
+				}
+			}
+		}
+
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve yytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
+
+	return c;
+}
+#endif	/* ifndef YY_NO_INPUT */
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void yyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        yyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            yy_create_buffer(yyin,YY_BUF_SIZE );
+	}
+
+	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	yy_load_buffer_state( );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		yypop_buffer_state();
+	 *		yypush_buffer_state(new_buffer);
+     */
+	yyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
+		return;
+
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	yy_load_buffer_state( );
+
+	/* We don't actually know whether we did this switch during
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
+	 * to go ahead and always set it.
+	 */
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+static void yy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
+{
+	YY_BUFFER_STATE b;
+    
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_buf_size = size;
+
+	/* yy_ch_buf has to be 2 characters longer than the size given because
+	 * we need to put in 2 end-of-buffer characters.
+	 */
+	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	if ( ! b->yy_ch_buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+	b->yy_is_our_buffer = 1;
+
+	yy_init_buffer(b,file );
+
+	return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * 
+ */
+    void yy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
+	if ( ! b )
+		return;
+
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+	if ( b->yy_is_our_buffer )
+		yyfree((void *) b->yy_ch_buf  );
+
+	yyfree((void *) b  );
+}
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+
+{
+	int oerrno = errno;
+    
+	yy_flush_buffer(b );
+
+	b->yy_input_file = file;
+	b->yy_fill_buffer = 1;
+
+    /* If b is the current buffer, then yy_init_buffer was _probably_
+     * called from yyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
+
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void yy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
+		return;
+
+	b->yy_n_chars = 0;
+
+	/* We always need two end-of-buffer characters.  The first causes
+	 * a transition to the end-of-buffer state.  The second causes
+	 * a jam in that state.
+	 */
+	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+	b->yy_buf_pos = &b->yy_ch_buf[0];
+
+	b->yy_at_bol = 1;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	if ( b == YY_CURRENT_BUFFER )
+		yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	yyensure_buffer_stack();
+
+	/* This block is copied from yy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from yy_switch_to_buffer. */
+	yy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void yypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	yy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		yy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
+	}
+}
+
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
+
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
+	if ( size < 2 ||
+	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
+	     base[size-1] != YY_END_OF_BUFFER_CHAR )
+		/* They forgot to leave room for the EOB's. */
+		return 0;
+
+	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	if ( ! b )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_pos = b->yy_ch_buf = base;
+	b->yy_is_our_buffer = 0;
+	b->yy_input_file = 0;
+	b->yy_n_chars = b->yy_buf_size;
+	b->yy_is_interactive = 0;
+	b->yy_at_bol = 1;
+	b->yy_fill_buffer = 0;
+	b->yy_buffer_status = YY_BUFFER_NEW;
+
+	yy_switch_to_buffer(b  );
+
+	return b;
+}
+
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+    
+	return yy_scan_bytes(yystr,strlen(yystr) );
+}
+
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
+	YY_BUFFER_STATE b;
+	char *buf;
+	yy_size_t n;
+	yy_size_t i;
+    
+	/* Get memory for full buffer, including space for trailing EOB's. */
+	n = _yybytes_len + 2;
+	buf = (char *) yyalloc(n  );
+	if ( ! buf )
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
+
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+	b = yy_scan_buffer(buf,n );
+	if ( ! b )
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+	/* It's okay to grow etc. this buffer, and we should throw it
+	 * away when we're done.
+	 */
+	b->yy_is_our_buffer = 1;
+
+	return b;
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		yytext[yyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = yytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		yyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
+
+/* Accessor  methods (get/set functions) to struct members. */
+
+/** Get the current line number.
+ * 
+ */
+int yyget_lineno  (void)
+{
+        
+    return yylineno;
+}
+
+/** Get the input stream.
+ * 
+ */
+FILE *yyget_in  (void)
+{
+        return yyin;
+}
+
+/** Get the output stream.
+ * 
+ */
+FILE *yyget_out  (void)
+{
+        return yyout;
+}
+
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t yyget_leng  (void)
+{
+        return yyleng;
+}
+
+/** Get the current token.
+ * 
+ */
+
+char *yyget_text  (void)
+{
+        return yytext;
+}
+
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void yyset_lineno (int  line_number )
+{
+    
+    yylineno = line_number;
+}
+
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE *  in_str )
+{
+        yyin = in_str ;
+}
+
+void yyset_out (FILE *  out_str )
+{
+        yyout = out_str ;
+}
+
+int yyget_debug  (void)
+{
+        return yy_flex_debug;
+}
+
+void yyset_debug (int  bdebug )
+{
+        yy_flex_debug = bdebug ;
+}
+
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from yylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    yyin = stdin;
+    yyout = stdout;
+#else
+    yyin = (FILE *) 0;
+    yyout = (FILE *) 0;
+#endif
+
+    /* For future reference: Set errno on error, since we are called by
+     * yylex_init()
+     */
+    return 0;
+}
+
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		yypop_buffer_state();
+	}
+
+	/* Destroy the stack itself. */
+	yyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * yylex() is called, initialization will occur. */
+    yy_init_globals( );
+
+    return 0;
+}
+
+/*
+ * Internal utility routines.
+ */
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
+	register int i;
+	for ( i = 0; i < n; ++i )
+		s1[i] = s2[i];
+}
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen (yyconst char * s )
+{
+	register int n;
+	for ( n = 0; s[n]; ++n )
+		;
+
+	return n;
+}
+#endif
+
+void *yyalloc (yy_size_t  size )
+{
+	return (void *) malloc( size );
+}
+
+void *yyrealloc  (void * ptr, yy_size_t  size )
+{
+	/* The cast to (char *) in the following accommodates both
+	 * implementations that use char* generic pointers, and those
+	 * that use void* generic pointers.  It works with the latter
+	 * because both ANSI C and C++ allow castless assignment from
+	 * any pointer type to void*, and deal with argument conversions
+	 * as though doing an assignment.
+	 */
+	return (void *) realloc( (char *) ptr, size );
+}
+
+void yyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 118 "apertium_rexpresstag.cctmp"
+
+
+
+void usage(string const &progname)
+{
+  cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
+  cerr << "xpresstag format processor " << endl;
+  exit(EXIT_SUCCESS);
+}
+
+int main(int argc, char *argv[])
+{
+  LtLocale::tryToSetLocale();
+
+  if(argc > 3)
+  {
+    usage(argv[0]);
+  }
+
+  switch(argc)
+  {
+    case 3:
+      yyout = fopen(argv[2], "w");
+      if(!yyout)
+      {
+        usage(argv[0]);
+      }
+    case 2:
+      yyin = fopen(argv[1], "r");
+      if(!yyin)
+      {
+        usage(argv[0]);
+      }
+      break;
+    default:
+      break;
+  }
+#ifdef _WIN32
+  _setmode(_fileno(yyin), _O_U8TEXT);
+  _setmode(_fileno(yyout), _O_U8TEXT);
+#endif
+
+
+
+  yylex();
+  fclose(yyin);
+  fclose(yyout);
+}
+
diff --git a/apertium/apertium_tagger_readwords.cc b/apertium/apertium_tagger_readwords.cc
index 2593eef..8fd47f9 100644
--- a/apertium/apertium_tagger_readwords.cc
+++ b/apertium/apertium_tagger_readwords.cc
@@ -64,7 +64,7 @@ void readwords (FILE *is, int corpus_length) {
 
     if (check_ambclasses) {
       int k=tagger_data_hmm.getOutput()[word->get_tags()];
-    
+
       if ((k>=tagger_data_hmm.getM())||(k<0)) {
 	cerr<<"Error: Ambiguity class number out of range: "<<k<<"\n";
 	cerr<<"Word: "<<UtfConverter::toUtf8(word->get_superficial_form())<<"\n";
@@ -100,7 +100,9 @@ int main(int argc, char* argv[]) {
   int corpus_length=-1;
 
   int c;
+#if HAVE_GETOPT_LONG
   int option_index=0;
+#endif
 
   cerr<<"LOCALE: "<<setlocale(LC_ALL,"")<<"\n";
 
@@ -110,6 +112,7 @@ int main(int argc, char* argv[]) {
   cerr<<"\n";
 
   while (true) {
+#if HAVE_GETOPT_LONG
     static struct option long_options[] =
       {
 	{"tsxfile",  required_argument, 0, 'x'},
@@ -121,11 +124,14 @@ int main(int argc, char* argv[]) {
       };
 
     c=getopt_long(argc, argv, "x:p:l:hv",long_options, &option_index);
+#else
+    int c=getopt(argc, argv, "x:p:l:hv");
+#endif
     if (c==-1)
       break;
-      
+
     switch (c) {
-    case 'l': 
+    case 'l':
       corpus_length=atoi(optarg);
       if(corpus_length<=0) {
 	cerr<<"Error: corpus length provided with --clength must be a positive integer\n";
@@ -133,13 +139,13 @@ int main(int argc, char* argv[]) {
 	exit(EXIT_FAILURE);
       }
       break;
-    case 'x': 
+    case 'x':
       tsxfile=optarg;
       break;
     case 'p':
       probfile=optarg;
       break;
-    case 'h': 
+    case 'h':
       help(argv[0]);
       exit(EXIT_SUCCESS);
       break;
@@ -161,7 +167,7 @@ int main(int argc, char* argv[]) {
 	  <<"   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA\n"
 	  <<"   02111-1307, USA.\n";
       exit(EXIT_SUCCESS);
-      break;    
+      break;
     default:
       help(argv[0]);
       exit(EXIT_FAILURE);
diff --git a/apertium/deformat.xsl b/apertium/deformat.xsl
index 9935a5b..7a4dba3 100644
--- a/apertium/deformat.xsl
+++ b/apertium/deformat.xsl
@@ -17,7 +17,7 @@
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  02111-1307, USA.
 -->
-<xsl:stylesheet version="1.0" 
+<xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="text" encoding="UTF-8"/>
 
@@ -32,7 +32,7 @@
       <xsl:value-of select="substring-before($haystack, $needle)"/>
       <xsl:value-of select="$replacement"/>
       <xsl:call-template name="replaceString">
-	<xsl:with-param name="haystack" 
+	<xsl:with-param name="haystack"
 			select="substring-after($haystack, $needle)"/>
 	<xsl:with-param name="needle" select="$needle"/>
 	<xsl:with-param name="replacement" select="$replacement"/>
@@ -154,7 +154,7 @@ extern "C" {
 #include "apertium_config.h"
 #endif
 #include <apertium/unlocked_cstdio.h>
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <io.h>
 #include <fcntl.h>
 #endif
@@ -194,13 +194,13 @@ void bufferAppend(wstring &buf, string const &str)
         gap = 1;
       }
       else
-      { 
+      {
         symbuf = symbuf.substr(i);
         return;
       }
     }
-    else 
-    { 
+    else
+    {
       buf += symbol;
     }
 
@@ -213,9 +213,9 @@ void bufferAppend(wstring &buf, string const &str)
 
 
 void init_escape()
-{  
+{
   if(regcomp(&escape_chars, "<xsl:call-template name="replaceString">
-      <xsl:with-param name="haystack" 
+      <xsl:with-param name="haystack"
 		      select="/format/options/escape-chars/@regexp"/>
       <xsl:with-param name="needle" select="string('\')"/>
       <xsl:with-param name="replacement" select="string('\\')"/>
@@ -227,9 +227,9 @@ void init_escape()
 }
 
 void init_tagNames()
-{  
+{
   if(regcomp(&names_regexp, "<xsl:call-template name="replaceString">
-      <xsl:with-param name="haystack" 
+      <xsl:with-param name="haystack"
 		      select="/format/options/tag-name/@regexp"/>
       <xsl:with-param name="needle" select="string('\')"/>
       <xsl:with-param name="replacement" select="string('\\')"/>
@@ -260,11 +260,11 @@ string backslash(string const &str)
 wstring escape(string const &str)
 {
   regmatch_t pmatch;
-  
+
   char const *mystring = str.c_str();
   int base = 0;
   wstring result;
-  
+
   while(!regexec(&escape_chars, mystring + base, 1, &pmatch, 0))
   {
     bufferAppend(result, str.substr(base, pmatch.rm_so));
@@ -275,9 +275,9 @@ wstring escape(string const &str)
     {
       wcerr << L"Uno" << endl;
       wcerr << L"Encoding error." << endl;
-      exit(EXIT_FAILURE);      
+      exit(EXIT_FAILURE);
     }
-    
+
     result += micaracter;
     base += pmatch.rm_eo;
   }
@@ -289,12 +289,12 @@ wstring escape(string const &str)
 wstring escape(wstring const &str)
 {
   string dest;
-  
+
   for(size_t i = 0, limit = str.size(); i < limit; i++)
   {
 #ifdef __GNUC__
     char symbol[MB_CUR_MAX+1];
-#else 
+#else
     std::string _symbol(MB_CUR_MAX+1, 0);
     char *symbol = &_symbol[0];
 #endif
@@ -312,7 +312,7 @@ wstring escape(wstring const &str)
 
 string get_tagName(string tag){
   regmatch_t pmatch;
-  
+
   char const *mystring = tag.c_str();
   string result;
   if(!regexec(&names_regexp, mystring, 1, &pmatch, 0))
@@ -326,7 +326,7 @@ string get_tagName(string tag){
 
 
 <xsl:for-each select="./rules/replacement-rule">
-  <xsl:variable name="varname" 
+  <xsl:variable name="varname"
 		select="concat(concat(string('S'),position()),string('_substitution'))"/>
   <xsl:value-of select="string('map<string, wstring, Ltstr> S')"/>
   <xsl:value-of select="position()"/>
@@ -567,7 +567,7 @@ void printBuffer()
     fputws_unlocked(tmp.c_str(), yyout);
 
     fputwc_unlocked(L']', yyout);
-  }     
+  }
   else
   {
     fputws_unlocked(buffer.c_str(), yyout);
@@ -644,7 +644,7 @@ void printBuffer()
 
 
 <xsl:for-each select="./rules/replacement-rule">
-  <xsl:variable name="varname" 
+  <xsl:variable name="varname"
 		select="concat(concat(string('S'),position()),string('_substitution'))"/>
   <xsl:value-of select="string('&#xA;')"/>
   <xsl:value-of select="./@regexp"/>
@@ -658,15 +658,15 @@ void printBuffer()
   <xsl:value-of select="$varname"/>
   <xsl:value-of select="string('[yytext].size();&#xA;')"/>
   <xsl:value-of select="string('    hasWrite_dot = hasWrite_white = true;&#xA;  }&#xA;  else&#xA;  {&#xA;')"/>
-  <xsl:value-of select="string('    last="buffer";&#xA;    bufferAppend(buffer, yytext);&#xA;  }&#xA;}&#xA;')"/>  
+  <xsl:value-of select="string('    last="buffer";&#xA;    bufferAppend(buffer, yytext);&#xA;  }&#xA;}&#xA;')"/>
 </xsl:for-each>
 
 <xsl:value-of select="./options/space-chars/@regexp"/>&#x9;{
-  if (last == "open_tag") 
+  if (last == "open_tag")
     bufferAppend(tags.back(), yytext);
   else
     bufferAppend(buffer, yytext);
-    
+
 }
 
 <xsl:value-of select="./options/escape-chars/@regexp"/>&#x9;{
@@ -736,7 +736,7 @@ void usage(string const &progname)
   </xsl:otherwise>
 </xsl:choose>
   cerr << "<xsl:value-of select="./@name"/> format processor " << endl;
-  exit(EXIT_SUCCESS);  
+  exit(EXIT_SUCCESS);
 }
 
 int main(int argc, char *argv[])
@@ -744,7 +744,7 @@ int main(int argc, char *argv[])
   LtLocale::tryToSetLocale();
   size_t base = 0;
   eosIncond = false;
-  
+
   if(argc >= 2 && !strcmp(argv[1],"-i"))
   {
     eosIncond = true;
@@ -756,7 +756,7 @@ int main(int argc, char *argv[])
   {
     usage(argv[0]);
   }
- 
+
   switch(argc-base)
   {
     case 4:
@@ -808,10 +808,10 @@ int main(int argc, char *argv[])
   }
   </xsl:otherwise>
 </xsl:choose>
-#ifdef _MSC_VER
+#ifdef _WIN32
   _setmode(_fileno(yyin), _O_U8TEXT);
   _setmode(_fileno(yyout), _O_U8TEXT);
-#endif 
+#endif
   // prevent warning message
   yy_push_state(1);
   yy_top_state();
diff --git a/apertium/hmm.cc b/apertium/hmm.cc
index c91eef7..1709189 100644
--- a/apertium/hmm.cc
+++ b/apertium/hmm.cc
@@ -856,6 +856,9 @@ HMM::tagger(FILE *in, FILE *out, bool show_all_good_first) {
       if(null_flush)
       { 
         fputwc_unlocked(L'\0', out);
+        tags.clear();
+        tags.insert(eos);
+        alpha[0][eos] = 1;
       }
       
       fflush(out);
diff --git a/apertium/interchunk.cc b/apertium/interchunk.cc
index fd7e93b..89dba51 100644
--- a/apertium/interchunk.cc
+++ b/apertium/interchunk.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005 Universitat d'Alacant / Universidad de Alicante
+ * Copyright (C) 2005--2015 Universitat d'Alacant / Universidad de Alicante
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -108,10 +108,15 @@ Interchunk::readData(FILE *in)
   me = new MatchExe(t, finals);
  
   // attr_items
+  bool recompile_attrs = Compression::string_read(in) != string(pcre_version());
   for(int i = 0, limit = Compression::multibyte_read(in); i != limit; i++)
   {
     string const cad_k = UtfConverter::toUtf8(Compression::wstring_read(in));
     attr_items[cad_k].read(in);
+    wstring fallback = Compression::wstring_read(in);
+    if(recompile_attrs) {
+      attr_items[cad_k].compile(UtfConverter::toUtf8(fallback));
+    }
   }
 
   // variables
diff --git a/apertium/modes.rng b/apertium/modes.rng
deleted file mode 100644
index 62695c2..0000000
--- a/apertium/modes.rng
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- DTD for the modes.xml file     -->
-<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-  <define name="modes">
-    <element name="modes">
-      <ref name="attlist.modes"/>
-      <oneOrMore>
-        <ref name="mode"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.modes" combine="interleave">
-    <empty/>
-  </define>
-  <define name="mode">
-    <element name="mode">
-      <ref name="attlist.mode"/>
-      <ref name="pipeline"/>
-    </element>
-  </define>
-  <define name="attlist.mode" combine="interleave">
-    <attribute name="name">
-      <data type="ID"/>
-    </attribute>
-  </define>
-  <define name="attlist.mode" combine="interleave">
-    <optional>
-      <attribute name="install"/>
-    </optional>
-  </define>
-  <define name="pipeline">
-    <element name="pipeline">
-      <ref name="attlist.pipeline"/>
-      <oneOrMore>
-        <ref name="program"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.pipeline" combine="interleave">
-    <empty/>
-  </define>
-  <define name="program">
-    <element name="program">
-      <ref name="attlist.program"/>
-      <zeroOrMore>
-        <ref name="file"/>
-      </zeroOrMore>
-    </element>
-  </define>
-  <define name="attlist.program" combine="interleave">
-    <attribute name="name"/>
-  </define>
-  <define name="attlist.program" combine="interleave">
-    <optional>
-      <attribute name="prefix"/>
-    </optional>
-  </define>
-  <define name="file">
-    <element name="file">
-      <ref name="attlist.file"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.file" combine="interleave">
-    <attribute name="name"/>
-  </define>
-  <start>
-    <choice>
-      <ref name="modes"/>
-    </choice>
-  </start>
-</grammar>
diff --git a/apertium/postchunk.cc b/apertium/postchunk.cc
index 62d64c8..f0d91b6 100644
--- a/apertium/postchunk.cc
+++ b/apertium/postchunk.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005 Universitat d'Alacant / Universidad de Alicante
+ * Copyright (C) 2005--2015 Universitat d'Alacant / Universidad de Alicante
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -107,10 +107,15 @@ Postchunk::readData(FILE *in)
   me = new MatchExe(t, finals);
  
   // attr_items
+  bool recompile_attrs = Compression::string_read(in) != string(pcre_version());
   for(int i = 0, limit = Compression::multibyte_read(in); i != limit; i++)
   {
     string const cad_k = UtfConverter::toUtf8(Compression::wstring_read(in));
     attr_items[cad_k].read(in);
+    wstring fallback = Compression::wstring_read(in);
+    if(recompile_attrs) {
+      attr_items[cad_k].compile(UtfConverter::toUtf8(fallback));
+    }
   }
 
   // variables
diff --git a/apertium/reformat.xsl b/apertium/reformat.xsl
index b25f39b..5378652 100644
--- a/apertium/reformat.xsl
+++ b/apertium/reformat.xsl
@@ -17,7 +17,7 @@
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  02111-1307, USA.
 -->
-<xsl:stylesheet version="1.0" 
+<xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="text" encoding="UTF-8"/>
 
@@ -39,7 +39,7 @@
 #include <lttoolbox/lt_locale.h>
 #include <lttoolbox/ltstr.h>
 #include <wchar.h>
-#ifdef _MSC_VER
+#ifdef _WIN32
 #include <io.h>
 #include <fcntl.h>
 #endif
@@ -47,7 +47,7 @@
 using namespace std;
 
 <xsl:for-each select="./rules/replacement-rule">
-  <xsl:variable name="varname" 
+  <xsl:variable name="varname"
 		select="concat(concat(string('S'),position()),string('_substitution'))"/>
   <xsl:value-of select="string('map<wstring, wstring, Ltstr> S')"/>
   <xsl:value-of select="position()"/>
@@ -70,11 +70,11 @@ using namespace std;
   <xsl:value-of select="string('&#xA;}&#xA;')"/>
 </xsl:for-each>
 
-string memconv;  
+string memconv;
 
 wstring convertir(char const *multibyte, int const length)
 {
-  memconv.append(multibyte, length); 
+  memconv.append(multibyte, length);
   int tam = memconv.size();
   if (memconv == "")
     return L"";
@@ -119,7 +119,7 @@ wstring convertir(char const *multibyte, int const length)
   filename = filename.substr(2, filename.size()-3);
   FILE *temp = fopen(filename.c_str(), "r");
   wint_t mychar;
-#ifdef _MSC_VER
+#ifdef _WIN32
   _setmode(_fileno(temp), _O_U8TEXT);
 #endif
 
@@ -148,12 +148,12 @@ wstring convertir(char const *multibyte, int const length)
   fputws_unlocked(convertir(yytext+1, yyleng-1).c_str(), yyout);
 }
 
- 
+
 
 .|\n&#x9;{
   wstring yytext_conv = convertir(yytext, yyleng);
 <xsl:for-each select="./rules/replacement-rule">
-  <xsl:variable name="varname" 
+  <xsl:variable name="varname"
 		select="concat(concat(string('S'),position()),string('_substitution'))"/>
 
   <xsl:value-of select="string('  ')"/>
@@ -169,7 +169,7 @@ wstring convertir(char const *multibyte, int const length)
   <xsl:value-of select="$varname"/>
   <xsl:value-of select="string('[yytext_conv].c_str(), yyout);')"/>
   <xsl:value-of select="string('&#xA;  }&#xA;')"/>
-</xsl:for-each>   
+</xsl:for-each>
 
 <xsl:if test="not(count(./rules/replacement-rule)=0)">
   <xsl:value-of select="string('  else&#xA;  {&#xA;  ')"/>
@@ -190,7 +190,7 @@ void usage(string const &progname)
 {
   cerr << "USAGE: " << progname << " [input_file [output_file]" << ']' << endl;
   cerr << "<xsl:value-of select="./@name"/> format processor " << endl;
-  exit(EXIT_SUCCESS);  
+  exit(EXIT_SUCCESS);
 }
 
 int main(int argc, char *argv[])
@@ -201,7 +201,7 @@ int main(int argc, char *argv[])
   {
     usage(argv[0]);
   }
- 
+
   switch(argc)
   {
     case 3:
@@ -220,10 +220,10 @@ int main(int argc, char *argv[])
     default:
       break;
   }
-#ifdef _MSC_VER
+#ifdef _WIN32
   _setmode(_fileno(yyin), _O_U8TEXT);
   _setmode(_fileno(yyout), _O_U8TEXT);
-#endif 
+#endif
 
 <xsl:for-each select="./rules/replacement-rule">
   <xsl:value-of select="string('  S')"/>
diff --git a/apertium/rtf-format-cp1250.xml b/apertium/rtf-format-cp1250.xml
deleted file mode 100644
index 1f9489a..0000000
--- a/apertium/rtf-format-cp1250.xml
+++ /dev/null
@@ -1,532 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<format name="rtf"> <!-- version 1.0 -->
-  <options>
-    <largeblocks size="8192"/>
-    <input encoding="windows-1250"/>
-    <output encoding="UTF-8"/>
-    <tag-name regexp=""/>
-    <escape-chars regexp='\\|[][<>@^$/{}]'/> 
-<!--    <escape-chars regexp='[]]^@<>/]'/>  -->
-
-    <space-chars regexp='[ \n\t\r$*]'/>
-    <case-sensitive value="no"/>
-  </options>
-
-  <rules>
-    
-    <!-- Exceptions with priority 1  -->
-    <!-- Style Sheet names are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\snext""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\keycode""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <!-- Font names are also format: -->
-    <format-rule type="comment" eos="no" priority="1">
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fcharset""/>
-      <end   regexp="";""/>
-    </format-rule>
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fnil""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\froman""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fswiss""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fmodern""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fscript""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fdecor""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\ftech""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fbidi""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\falt""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fontfile""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fn""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\sbasedon""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\additive""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <!-- File names are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\file""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- List Table names are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\listname""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\leveltext""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\levelnumbers""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <!-- Pictures are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\pict""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\sn""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\sv""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"{\\\*\\blipuid  "[^ \n\r]+"}""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Objects are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\object""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Document Variables are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\docvar""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Bookmarks are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\bkmkstart""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\bkmkend""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Index Entries are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\rxe""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Fields are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fldinst""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fldrslt""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Other format tags which contain #CDATA: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\pntxt""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\colortbl""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Hexadecimal Data -->
-    <format-rule type="empty" eos="yes" priority="1">
-      <tag regexp="[a-f0-9]{20,}" />
-    </format-rule>
-    
-    
-    
-    
-
-    <!-- End of sentence tags: par, row, cell -->
-    <format-rule type="empty" eos="yes" priority="2">
-      <tag regexp=""\\par"|"\\row"|"\\cell"" />
-    </format-rule>
-    
-
-    <format-rule type="open" eos="no" priority="3">
-      <tag regexp=""{"[ \n\r]*\\[^'][^ \n\r\\]*[ \n\r]*"/>
-    </format-rule>
-
-    <!-- General Tags Specification -->
-    <format-rule type="empty" eos="no" priority="3">
-      <tag regexp="\\[^'][^ \n\r\\]*[ \n\r]*"/>
-    </format-rule>
-    <format-rule type="close" eos="no" priority="4">
-      <tag regexp=""}""/>
-    </format-rule>
-    <format-rule type="open" eos="no" priority="4">
-      <tag regexp=""{""/>
-    </format-rule>
-
-
-    <replacement-rule regexp=""\\'"[0-9a-fA-F][0-9a-fA-F](\r|\n|"\r\n")?"> 
-      <replace source="\\'8a" target="Š" prefer="yes"/>
-      <replace source="\\'8c" target="Ś" prefer="yes"/>
-      <replace source="\\'8d" target="Ť" prefer="yes"/>
-      <replace source="\\'8e" target="Ž" prefer="yes"/>
-      <replace source="\\'8f" target="Ź" prefer="yes"/>
-      <replace source="\\'9a" target="š" prefer="yes"/>
-      <replace source="\\'9c" target="ś" prefer="yes"/>
-      <replace source="\\'9d" target="ť" prefer="yes"/>
-      <replace source="\\'9e" target="ž" prefer="yes"/>
-      <replace source="\\'9f" target="ź" prefer="yes"/>
-      <replace source="\\'a3" target="Ł" prefer="yes"/>
-      <replace source="\\'a5" target="Ą" prefer="yes"/>
-      <replace source="\\'aa" target="Ş" prefer="yes"/>
-      <replace source="\\'af" target="Ż" prefer="yes"/>
-      <replace source="\\'b3" target="ł" prefer="yes"/>
-      <replace source="\\'b5" target="µ" prefer="yes"/>
-      <replace source="\\'b9" target="ą" prefer="yes"/>
-      <replace source="\\'ba" target="ş" prefer="yes"/>
-      <replace source="\\'bc" target="Ľ" prefer="yes"/>
-      <replace source="\\'be" target="ľ" prefer="yes"/>
-      <replace source="\\'bf" target="ż" prefer="yes"/>
-      <replace source="\\'c0" target="Ŕ" prefer="yes"/>
-      <replace source="\\'c1" target="Á" prefer="yes"/>
-      <replace source="\\'c2" target="Â" prefer="yes"/>
-      <replace source="\\'c3" target="Ă" prefer="yes"/>
-      <replace source="\\'c4" target="Ä" prefer="yes"/>
-      <replace source="\\'c5" target="Ĺ" prefer="yes"/>
-      <replace source="\\'c6" target="Ć" prefer="yes"/>
-      <replace source="\\'c7" target="Ç" prefer="yes"/>
-      <replace source="\\'c8" target="Č" prefer="yes"/>
-      <replace source="\\'c9" target="É" prefer="yes"/>
-      <replace source="\\'ca" target="Ę" prefer="yes"/>
-      <replace source="\\'cb" target="Ë" prefer="yes"/>
-      <replace source="\\'cc" target="Ě" prefer="yes"/>
-      <replace source="\\'cd" target="Í" prefer="yes"/>
-      <replace source="\\'ce" target="Î" prefer="yes"/>
-      <replace source="\\'cf" target="Ď" prefer="yes"/>
-      <replace source="\\'d0" target="Ð" prefer="yes"/>
-      <replace source="\\'d1" target="Ń" prefer="yes"/>
-      <replace source="\\'d2" target="Ň" prefer="yes"/>
-      <replace source="\\'d3" target="Ó" prefer="yes"/>
-      <replace source="\\'d4" target="Ô" prefer="yes"/>
-      <replace source="\\'d5" target="Ő" prefer="yes"/>
-      <replace source="\\'d6" target="Ö" prefer="yes"/>
-      <replace source="\\'d8" target="Ř" prefer="yes"/>
-      <replace source="\\'d9" target="Ů" prefer="yes"/>
-      <replace source="\\'da" target="Ú" prefer="yes"/>
-      <replace source="\\'db" target="Ű" prefer="yes"/>
-      <replace source="\\'dc" target="Ü" prefer="yes"/>
-      <replace source="\\'dd" target="Ý" prefer="yes"/>
-      <replace source="\\'de" target="Ţ" prefer="yes"/>
-      <replace source="\\'df" target="ß" prefer="yes"/>
-      <replace source="\\'e0" target="ŕ" prefer="yes"/>
-      <replace source="\\'e1" target="á" prefer="yes"/>
-      <replace source="\\'e2" target="â" prefer="yes"/>
-      <replace source="\\'e3" target="ă" prefer="yes"/>
-      <replace source="\\'e4" target="ä" prefer="yes"/>
-      <replace source="\\'e5" target="ĺ" prefer="yes"/>
-      <replace source="\\'e6" target="ć" prefer="yes"/>
-      <replace source="\\'e7" target="ç" prefer="yes"/>
-      <replace source="\\'e8" target="č" prefer="yes"/>
-      <replace source="\\'e9" target="é" prefer="yes"/>
-      <replace source="\\'ea" target="ę" prefer="yes"/>
-      <replace source="\\'eb" target="ë" prefer="yes"/>
-      <replace source="\\'ec" target="ě" prefer="yes"/>
-      <replace source="\\'ed" target="í" prefer="yes"/>
-      <replace source="\\'ee" target="î" prefer="yes"/>
-      <replace source="\\'ef" target="ď" prefer="yes"/>
-      <replace source="\\'f0" target="đ" prefer="yes"/>
-      <replace source="\\'f1" target="ń" prefer="yes"/>
-      <replace source="\\'f2" target="ň" prefer="yes"/>
-      <replace source="\\'f3" target="ó" prefer="yes"/>
-      <replace source="\\'f4" target="ô" prefer="yes"/>
-      <replace source="\\'f5" target="ő" prefer="yes"/>
-      <replace source="\\'f6" target="ö" prefer="yes"/>
-      <replace source="\\'f8" target="ř" prefer="yes"/>
-      <replace source="\\'f9" target="ů" prefer="yes"/>
-      <replace source="\\'fa" target="ú" prefer="yes"/>
-      <replace source="\\'fb" target="ű" prefer="yes"/>
-      <replace source="\\'fc" target="ü" prefer="yes"/>
-      <replace source="\\'fd" target="ý" prefer="yes"/>
-      <replace source="\\'fe" target="ţ" prefer="yes"/>
-      <replace source="\\'ff" target="˙" prefer="yes"/>
-      
-     <!-- The same characters followed by a \r\n: -->
-      <replace source="\\'8a\r\n" target="Š"/>
-      <replace source="\\'8c\r\n" target="Ś"/>
-      <replace source="\\'8d\r\n" target="Ť"/>
-      <replace source="\\'8e\r\n" target="Ž"/>
-      <replace source="\\'8f\r\n" target="Ź"/>
-      <replace source="\\'9a\r\n" target="š"/>
-      <replace source="\\'9c\r\n" target="ś"/>
-      <replace source="\\'9d\r\n" target="ť"/>
-      <replace source="\\'9e\r\n" target="ž"/>
-      <replace source="\\'9f\r\n" target="ź"/>
-      <replace source="\\'a3\r\n" target="Ł"/>
-      <replace source="\\'a5\r\n" target="Ą"/>
-      <replace source="\\'aa\r\n" target="Ş"/>
-      <replace source="\\'af\r\n" target="Ż"/>
-      <replace source="\\'b3\r\n" target="ł"/>
-      <replace source="\\'b5\r\n" target="µ"/>
-      <replace source="\\'b9\r\n" target="ą"/>
-      <replace source="\\'ba\r\n" target="ş"/>
-      <replace source="\\'bc\r\n" target="Ľ"/>
-      <replace source="\\'be\r\n" target="ľ"/>
-      <replace source="\\'bf\r\n" target="ż"/>
-      <replace source="\\'c0\r\n" target="Ŕ"/>
-      <replace source="\\'c1\r\n" target="Á"/>
-      <replace source="\\'c2\r\n" target="Â"/>
-      <replace source="\\'c3\r\n" target="Ă"/>
-      <replace source="\\'c4\r\n" target="Ä"/>
-      <replace source="\\'c5\r\n" target="Ĺ"/>
-      <replace source="\\'c6\r\n" target="Ć"/>
-      <replace source="\\'c7\r\n" target="Ç"/>
-      <replace source="\\'c8\r\n" target="Č"/>
-      <replace source="\\'c9\r\n" target="É"/>
-      <replace source="\\'ca\r\n" target="Ę"/>
-      <replace source="\\'cb\r\n" target="Ë"/>
-      <replace source="\\'cc\r\n" target="Ě"/>
-      <replace source="\\'cd\r\n" target="Í"/>
-      <replace source="\\'ce\r\n" target="Î"/>
-      <replace source="\\'cf\r\n" target="Ď"/>
-      <replace source="\\'d0\r\n" target="Ð"/>
-      <replace source="\\'d1\r\n" target="Ń"/>
-      <replace source="\\'d2\r\n" target="Ň"/>
-      <replace source="\\'d3\r\n" target="Ó"/>
-      <replace source="\\'d4\r\n" target="Ô"/>
-      <replace source="\\'d5\r\n" target="Ő"/>
-      <replace source="\\'d6\r\n" target="Ö"/>
-      <replace source="\\'d8\r\n" target="Ř"/>
-      <replace source="\\'d9\r\n" target="Ů"/>
-      <replace source="\\'da\r\n" target="Ú"/>
-      <replace source="\\'db\r\n" target="Ű"/>
-      <replace source="\\'dc\r\n" target="Ü"/>
-      <replace source="\\'dd\r\n" target="Ý"/>
-      <replace source="\\'de\r\n" target="Ţ"/>
-      <replace source="\\'df\r\n" target="ß"/>
-      <replace source="\\'e0\r\n" target="ŕ"/>
-      <replace source="\\'e1\r\n" target="á"/>
-      <replace source="\\'e2\r\n" target="â"/>
-      <replace source="\\'e3\r\n" target="ă"/>
-      <replace source="\\'e4\r\n" target="ä"/>
-      <replace source="\\'e5\r\n" target="ĺ"/>
-      <replace source="\\'e6\r\n" target="ć"/>
-      <replace source="\\'e7\r\n" target="ç"/>
-      <replace source="\\'e8\r\n" target="č"/>
-      <replace source="\\'e9\r\n" target="é"/>
-      <replace source="\\'ea\r\n" target="ę"/>
-      <replace source="\\'eb\r\n" target="ë"/>
-      <replace source="\\'ec\r\n" target="ě"/>
-      <replace source="\\'ed\r\n" target="í"/>
-      <replace source="\\'ee\r\n" target="î"/>
-      <replace source="\\'ef\r\n" target="ď"/>
-      <replace source="\\'f0\r\n" target="đ"/>
-      <replace source="\\'f1\r\n" target="ń"/>
-      <replace source="\\'f2\r\n" target="ň"/>
-      <replace source="\\'f3\r\n" target="ó"/>
-      <replace source="\\'f4\r\n" target="ô"/>
-      <replace source="\\'f5\r\n" target="ő"/>
-      <replace source="\\'f6\r\n" target="ö"/>
-      <replace source="\\'f8\r\n" target="ř"/>
-      <replace source="\\'f9\r\n" target="ů"/>
-      <replace source="\\'fa\r\n" target="ú"/>
-      <replace source="\\'fb\r\n" target="ű"/>
-      <replace source="\\'fc\r\n" target="ü"/>
-      <replace source="\\'fd\r\n" target="ý"/>
-      <replace source="\\'fe\r\n" target="ţ"/>
-      <replace source="\\'ff\r\n" target="˙"/>
-      <!-- The same characters followed by a \n: -->
-      <replace source="\\'8a\n" target="Š"/>
-      <replace source="\\'8c\n" target="Ś"/>
-      <replace source="\\'8d\n" target="Ť"/>
-      <replace source="\\'8e\n" target="Ž"/>
-      <replace source="\\'8f\n" target="Ź"/>
-      <replace source="\\'9a\n" target="š"/>
-      <replace source="\\'9c\n" target="ś"/>
-      <replace source="\\'9d\n" target="ť"/>
-      <replace source="\\'9e\n" target="ž"/>
-      <replace source="\\'9f\n" target="ź"/>
-      <replace source="\\'a3\n" target="Ł"/>
-      <replace source="\\'a5\n" target="Ą"/>
-      <replace source="\\'aa\n" target="Ş"/>
-      <replace source="\\'af\n" target="Ż"/>
-      <replace source="\\'b3\n" target="ł"/>
-      <replace source="\\'b5\n" target="µ"/>
-      <replace source="\\'b9\n" target="ą"/>
-      <replace source="\\'ba\n" target="ş"/>
-      <replace source="\\'bc\n" target="Ľ"/>
-      <replace source="\\'be\n" target="ľ"/>
-      <replace source="\\'bf\n" target="ż"/>
-      <replace source="\\'c0\n" target="Ŕ"/>
-      <replace source="\\'c1\n" target="Á"/>
-      <replace source="\\'c2\n" target="Â"/>
-      <replace source="\\'c3\n" target="Ă"/>
-      <replace source="\\'c4\n" target="Ä"/>
-      <replace source="\\'c5\n" target="Ĺ"/>
-      <replace source="\\'c6\n" target="Ć"/>
-      <replace source="\\'c7\n" target="Ç"/>
-      <replace source="\\'c8\n" target="Č"/>
-      <replace source="\\'c9\n" target="É"/>
-      <replace source="\\'ca\n" target="Ę"/>
-      <replace source="\\'cb\n" target="Ë"/>
-      <replace source="\\'cc\n" target="Ě"/>
-      <replace source="\\'cd\n" target="Í"/>
-      <replace source="\\'ce\n" target="Î"/>
-      <replace source="\\'cf\n" target="Ď"/>
-      <replace source="\\'d0\n" target="Ð"/>
-      <replace source="\\'d1\n" target="Ń"/>
-      <replace source="\\'d2\n" target="Ň"/>
-      <replace source="\\'d3\n" target="Ó"/>
-      <replace source="\\'d4\n" target="Ô"/>
-      <replace source="\\'d5\n" target="Ő"/>
-      <replace source="\\'d6\n" target="Ö"/>
-      <replace source="\\'d8\n" target="Ř"/>
-      <replace source="\\'d9\n" target="Ů"/>
-      <replace source="\\'da\n" target="Ú"/>
-      <replace source="\\'db\n" target="Ű"/>
-      <replace source="\\'dc\n" target="Ü"/>
-      <replace source="\\'dd\n" target="Ý"/>
-      <replace source="\\'de\n" target="Ţ"/>
-      <replace source="\\'df\n" target="ß"/>
-      <replace source="\\'e0\n" target="ŕ"/>
-      <replace source="\\'e1\n" target="á"/>
-      <replace source="\\'e2\n" target="â"/>
-      <replace source="\\'e3\n" target="ă"/>
-      <replace source="\\'e4\n" target="ä"/>
-      <replace source="\\'e5\n" target="ĺ"/>
-      <replace source="\\'e6\n" target="ć"/>
-      <replace source="\\'e7\n" target="ç"/>
-      <replace source="\\'e8\n" target="č"/>
-      <replace source="\\'e9\n" target="é"/>
-      <replace source="\\'ea\n" target="ę"/>
-      <replace source="\\'eb\n" target="ë"/>
-      <replace source="\\'ec\n" target="ě"/>
-      <replace source="\\'ed\n" target="í"/>
-      <replace source="\\'ee\n" target="î"/>
-      <replace source="\\'ef\n" target="ď"/>
-      <replace source="\\'f0\n" target="đ"/>
-      <replace source="\\'f1\n" target="ń"/>
-      <replace source="\\'f2\n" target="ň"/>
-      <replace source="\\'f3\n" target="ó"/>
-      <replace source="\\'f4\n" target="ô"/>
-      <replace source="\\'f5\n" target="ő"/>
-      <replace source="\\'f6\n" target="ö"/>
-      <replace source="\\'f8\n" target="ř"/>
-      <replace source="\\'f9\n" target="ů"/>
-      <replace source="\\'fa\n" target="ú"/>
-      <replace source="\\'fb\n" target="ű"/>
-      <replace source="\\'fc\n" target="ü"/>
-      <replace source="\\'fd\n" target="ý"/>
-      <replace source="\\'fe\n" target="ţ"/>
-      <replace source="\\'ff\n" target="˙"/>
-      <!-- The same characters followed by a \r: -->
-      <replace source="\\'8a\r" target="Š"/>
-      <replace source="\\'8c\r" target="Ś"/>
-      <replace source="\\'8d\r" target="Ť"/>
-      <replace source="\\'8e\r" target="Ž"/>
-      <replace source="\\'8f\r" target="Ź"/>
-      <replace source="\\'9a\r" target="š"/>
-      <replace source="\\'9c\r" target="ś"/>
-      <replace source="\\'9d\r" target="ť"/>
-      <replace source="\\'9e\r" target="ž"/>
-      <replace source="\\'9f\r" target="ź"/>
-      <replace source="\\'a3\r" target="Ł"/>
-      <replace source="\\'a5\r" target="Ą"/>
-      <replace source="\\'aa\r" target="Ş"/>
-      <replace source="\\'af\r" target="Ż"/>
-      <replace source="\\'b3\r" target="ł"/>
-      <replace source="\\'b5\r" target="µ"/>
-      <replace source="\\'b9\r" target="ą"/>
-      <replace source="\\'ba\r" target="ş"/>
-      <replace source="\\'bc\r" target="Ľ"/>
-      <replace source="\\'be\r" target="ľ"/>
-      <replace source="\\'bf\r" target="ż"/>
-      <replace source="\\'c0\r" target="Ŕ"/>
-      <replace source="\\'c1\r" target="Á"/>
-      <replace source="\\'c2\r" target="Â"/>
-      <replace source="\\'c3\r" target="Ă"/>
-      <replace source="\\'c4\r" target="Ä"/>
-      <replace source="\\'c5\r" target="Ĺ"/>
-      <replace source="\\'c6\r" target="Ć"/>
-      <replace source="\\'c7\r" target="Ç"/>
-      <replace source="\\'c8\r" target="Č"/>
-      <replace source="\\'c9\r" target="É"/>
-      <replace source="\\'ca\r" target="Ę"/>
-      <replace source="\\'cb\r" target="Ë"/>
-      <replace source="\\'cc\r" target="Ě"/>
-      <replace source="\\'cd\r" target="Í"/>
-      <replace source="\\'ce\r" target="Î"/>
-      <replace source="\\'cf\r" target="Ď"/>
-      <replace source="\\'d0\r" target="Ð"/>
-      <replace source="\\'d1\r" target="Ń"/>
-      <replace source="\\'d2\r" target="Ň"/>
-      <replace source="\\'d3\r" target="Ó"/>
-      <replace source="\\'d4\r" target="Ô"/>
-      <replace source="\\'d5\r" target="Ő"/>
-      <replace source="\\'d6\r" target="Ö"/>
-      <replace source="\\'d8\r" target="Ř"/>
-      <replace source="\\'d9\r" target="Ů"/>
-      <replace source="\\'da\r" target="Ú"/>
-      <replace source="\\'db\r" target="Ű"/>
-      <replace source="\\'dc\r" target="Ü"/>
-      <replace source="\\'dd\r" target="Ý"/>
-      <replace source="\\'de\r" target="Ţ"/>
-      <replace source="\\'df\r" target="ß"/>
-      <replace source="\\'e0\r" target="ŕ"/>
-      <replace source="\\'e1\r" target="á"/>
-      <replace source="\\'e2\r" target="â"/>
-      <replace source="\\'e3\r" target="ă"/>
-      <replace source="\\'e4\r" target="ä"/>
-      <replace source="\\'e5\r" target="ĺ"/>
-      <replace source="\\'e6\r" target="ć"/>
-      <replace source="\\'e7\r" target="ç"/>
-      <replace source="\\'e8\r" target="č"/>
-      <replace source="\\'e9\r" target="é"/>
-      <replace source="\\'ea\r" target="ę"/>
-      <replace source="\\'eb\r" target="ë"/>
-      <replace source="\\'ec\r" target="ě"/>
-      <replace source="\\'ed\r" target="í"/>
-      <replace source="\\'ee\r" target="î"/>
-      <replace source="\\'ef\r" target="ď"/>
-      <replace source="\\'f0\r" target="đ"/>
-      <replace source="\\'f1\r" target="ń"/>
-      <replace source="\\'f2\r" target="ň"/>
-      <replace source="\\'f3\r" target="ó"/>
-      <replace source="\\'f4\r" target="ô"/>
-      <replace source="\\'f5\r" target="ő"/>
-      <replace source="\\'f6\r" target="ö"/>
-      <replace source="\\'f8\r" target="ř"/>
-      <replace source="\\'f9\r" target="ů"/>
-      <replace source="\\'fa\r" target="ú"/>
-      <replace source="\\'fb\r" target="ű"/>
-      <replace source="\\'fc\r" target="ü"/>
-      <replace source="\\'fd\r" target="ý"/>
-      <replace source="\\'fe\r" target="ţ"/>
-      <replace source="\\'ff\r" target="˙"/>
-    </replacement-rule>
-  </rules>
-
-</format>
diff --git a/apertium/rtf-format-cp1251.xml b/apertium/rtf-format-cp1251.xml
deleted file mode 100644
index f9851ec..0000000
--- a/apertium/rtf-format-cp1251.xml
+++ /dev/null
@@ -1,576 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<format name="rtf"> <!-- version 1.0 -->
-  <options>
-    <largeblocks size="8192"/>
-    <input encoding="windows-1251"/>
-    <output encoding="UTF-8"/>
-    <tag-name regexp=""/>
-    <escape-chars regexp='\\|[][<>@^$/{}]'/> 
-<!--    <escape-chars regexp='[]]^@<>/]'/>  -->
-
-    <space-chars regexp='[ \n\t\r$*]'/>
-    <case-sensitive value="no"/>
-  </options>
-
-  <rules>
-    
-    <!-- Exceptions with priority 1  -->
-    <!-- Style Sheet names are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\snext""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\keycode""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <!-- Font names are also format: -->
-    <format-rule type="comment" eos="no" priority="1">
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fcharset""/>
-      <end   regexp="";""/>
-    </format-rule>
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fnil""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\froman""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fswiss""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fmodern""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fscript""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fdecor""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\ftech""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fbidi""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\falt""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fontfile""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fn""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\sbasedon""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\additive""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <!-- File names are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\file""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- List Table names are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\listname""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\leveltext""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\levelnumbers""/>
-      <end   regexp="";""/>
-    </format-rule> 
-    <!-- Pictures are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\pict""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\sn""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\sv""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"{\\\*\\blipuid  "[^ \n\r]+"}""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Objects are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\object""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Document Variables are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\docvar""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Bookmarks are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\bkmkstart""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\bkmkend""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Index Entries are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\rxe""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Fields are also format: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fldinst""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\fldrslt""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Other format tags which contain #CDATA: -->
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\pntxt""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <format-rule type="comment" eos="no" priority="1"> 
-      <begin regexp=""{"[ \n\r]*(\\[^'][^ \n\r\\]*[ \n\r]*)*"\\colortbl""/>
-      <end   regexp=""}""/>
-    </format-rule> 
-    <!-- Hexadecimal Data -->
-    <format-rule type="empty" eos="yes" priority="1">
-      <tag regexp="[a-f0-9]{20,}" />
-    </format-rule>
-    
-    
-    
-    
-
-    <!-- End of sentence tags: par, row, cell -->
-    <format-rule type="empty" eos="yes" priority="2">
-      <tag regexp=""\\par"|"\\row"|"\\cell"" />
-    </format-rule>
-    
-
-    <format-rule type="open" eos="no" priority="3">
-      <tag regexp=""{"[ \n\r]*\\[^'][^ \n\r\\]*[ \n\r]*"/>
-    </format-rule>
-
-    <!-- General Tags Specification -->
-    <format-rule type="empty" eos="no" priority="3">
-      <tag regexp="\\[^'][^ \n\r\\]*[ \n\r]*"/>
-    </format-rule>
-    <format-rule type="close" eos="no" priority="4">
-      <tag regexp=""}""/>
-    </format-rule>
-    <format-rule type="open" eos="no" priority="4">
-      <tag regexp=""{""/>
-    </format-rule>
-
-
-    <replacement-rule regexp=""\\'"[0-9a-fA-F][0-9a-fA-F](\r|\n|"\r\n")?"> 
-      <replace source="\\'80" target="Ђ" prefer="yes"/>
-      <replace source="\\'81" target="Ѓ" prefer="yes"/>
-      <replace source="\\'83" target="ѓ" prefer="yes"/>
-      <replace source="\\'8a" target="Љ" prefer="yes"/>
-      <replace source="\\'8c" target="Њ" prefer="yes"/>
-      <replace source="\\'8d" target="Ќ" prefer="yes"/>
-      <replace source="\\'8e" target="Ћ" prefer="yes"/>
-      <replace source="\\'8f" target="Џ" prefer="yes"/>
-      <replace source="\\'90" target="ђ" prefer="yes"/>
-      <replace source="\\'9a" target="љ" prefer="yes"/>
-      <replace source="\\'9c" target="њ" prefer="yes"/>
-      <replace source="\\'9d" target="ќ" prefer="yes"/>
-      <replace source="\\'9e" target="ћ" prefer="yes"/>
-      <replace source="\\'9f" target="џ" prefer="yes"/>
-      <replace source="\\'a1" target="Ў" prefer="yes"/>
-      <replace source="\\'a2" target="ў" prefer="yes"/>
-      <replace source="\\'a3" target="Ј" prefer="yes"/>
-      <replace source="\\'a5" target="Ґ" prefer="yes"/>
-      <replace source="\\'a8" target="Ё" prefer="yes"/>
-      <replace source="\\'aa" target="Є" prefer="yes"/>
-      <replace source="\\'af" target="Ї" prefer="yes"/>
-      <replace source="\\'b3" target="і" prefer="yes"/>
-      <replace source="\\'b4" target="ґ" prefer="yes"/>
-      <replace source="\\'b5" target="µ" prefer="yes"/>
-      <replace source="\\'b8" target="ё" prefer="yes"/>
-      <replace source="\\'ba" target="є" prefer="yes"/>
-      <replace source="\\'bc" target="ј" prefer="yes"/>
-      <replace source="\\'bd" target="Ѕ" prefer="yes"/>
-      <replace source="\\'be" target="ѕ" prefer="yes"/>
-      <replace source="\\'bf" target="ї" prefer="yes"/>
-      <replace source="\\'c0" target="А" prefer="yes"/>
-      <replace source="\\'c1" target="Б" prefer="yes"/>
-      <replace source="\\'c2" target="В" prefer="yes"/>
-      <replace source="\\'c3" target="Г" prefer="yes"/>
-      <replace source="\\'c4" target="Д" prefer="yes"/>
-      <replace source="\\'c5" target="Е" prefer="yes"/>
-      <replace source="\\'c6" target="Ж" prefer="yes"/>
-      <replace source="\\'c7" target="З" prefer="yes"/>
-      <replace source="\\'c8" target="И" prefer="yes"/>
-      <replace source="\\'c9" target="Й" prefer="yes"/>
-      <replace source="\\'ca" target="К" prefer="yes"/>
-      <replace source="\\'cb" target="Л" prefer="yes"/>
-      <replace source="\\'cc" target="М" prefer="yes"/>
-      <replace source="\\'cd" target="Н" prefer="yes"/>
-      <replace source="\\'ce" target="О" prefer="yes"/>
-      <replace source="\\'cf" target="П" prefer="yes"/>
-      <replace source="\\'d0" target="Р" prefer="yes"/>
-      <replace source="\\'d1" target="С" prefer="yes"/>
-      <replace source="\\'d2" target="Т" prefer="yes"/>
-      <replace source="\\'d3" target="У" prefer="yes"/>
-      <replace source="\\'d4" target="Ф" prefer="yes"/>
-      <replace source="\\'d5" target="Х" prefer="yes"/>
-      <replace source="\\'d6" target="Ц" prefer="yes"/>
-      <replace source="\\'d7" target="Ч" prefer="yes"/>
-      <replace source="\\'d8" target="Ш" prefer="yes"/>
-      <replace source="\\'d9" target="Щ" prefer="yes"/>
-      <replace source="\\'da" target="Ъ" prefer="yes"/>
-      <replace source="\\'db" target="Ы" prefer="yes"/>
-      <replace source="\\'dc" target="Ь" prefer="yes"/>
-      <replace source="\\'dd" target="Э" prefer="yes"/>
-      <replace source="\\'de" target="Ю" prefer="yes"/>
-      <replace source="\\'df" target="Я" prefer="yes"/>
-      <replace source="\\'e0" target="а" prefer="yes"/>
-      <replace source="\\'e1" target="б" prefer="yes"/>
-      <replace source="\\'e2" target="в" prefer="yes"/>
-      <replace source="\\'e3" target="г" prefer="yes"/>
-      <replace source="\\'e4" target="д" prefer="yes"/>
-      <replace source="\\'e5" target="е" prefer="yes"/>
-      <replace source="\\'e6" target="ж" prefer="yes"/>
-      <replace source="\\'e7" target="з" prefer="yes"/>
-      <replace source="\\'e8" target="и" prefer="yes"/>
-      <replace source="\\'e9" target="й" prefer="yes"/>
-      <replace source="\\'ea" target="к" prefer="yes"/>
-      <replace source="\\'eb" target="л" prefer="yes"/>
-      <replace source="\\'ec" target="м" prefer="yes"/>
-      <replace source="\\'ed" target="н" prefer="yes"/>
-      <replace source="\\'ee" target="о" prefer="yes"/>
-      <replace source="\\'ef" target="п" prefer="yes"/>
-      <replace source="\\'f0" target="р" prefer="yes"/>
-      <replace source="\\'f1" target="с" prefer="yes"/>
-      <replace source="\\'f2" target="т" prefer="yes"/>
-      <replace source="\\'f3" target="у" prefer="yes"/>
-      <replace source="\\'f4" target="ф" prefer="yes"/>
-      <replace source="\\'f5" target="х" prefer="yes"/>
-      <replace source="\\'f6" target="ц" prefer="yes"/>
-      <replace source="\\'f7" target="ч" prefer="yes"/>
-      <replace source="\\'f8" target="ш" prefer="yes"/>
-      <replace source="\\'f9" target="щ" prefer="yes"/>
-      <replace source="\\'fa" target="ъ" prefer="yes"/>
-      <replace source="\\'fb" target="ы" prefer="yes"/>
-      <replace source="\\'fc" target="ь" prefer="yes"/>
-      <replace source="\\'fd" target="э" prefer="yes"/>
-      <replace source="\\'fe" target="ю" prefer="yes"/>
-      <replace source="\\'ff" target="я" prefer="yes"/>
-      
-     <!-- The same characters followed by a \r\n: -->
-      <replace source="\\'80\r\n" target="Ђ"/>
-      <replace source="\\'81\r\n" target="Ѓ"/>
-      <replace source="\\'83\r\n" target="ѓ"/>
-      <replace source="\\'8a\r\n" target="Љ"/>
-      <replace source="\\'8c\r\n" target="Њ"/>
-      <replace source="\\'8d\r\n" target="Ќ"/>
-      <replace source="\\'8e\r\n" target="Ћ"/>
-      <replace source="\\'8f\r\n" target="Џ"/>
-      <replace source="\\'90\r\n" target="ђ"/>
-      <replace source="\\'9a\r\n" target="љ"/>
-      <replace source="\\'9c\r\n" target="њ"/>
-      <replace source="\\'9d\r\n" target="ќ"/>
-      <replace source="\\'9e\r\n" target="ћ"/>
-      <replace source="\\'9f\r\n" target="џ"/>
-      <replace source="\\'a1\r\n" target="Ў"/>
-      <replace source="\\'a2\r\n" target="ў"/>
-      <replace source="\\'a3\r\n" target="Ј"/>
-      <replace source="\\'a5\r\n" target="Ґ"/>
-      <replace source="\\'a8\r\n" target="Ё"/>
-      <replace source="\\'aa\r\n" target="Є"/>
-      <replace source="\\'af\r\n" target="Ї"/>
-      <replace source="\\'b3\r\n" target="і"/>
-      <replace source="\\'b4\r\n" target="ґ"/>
-      <replace source="\\'b5\r\n" target="µ"/>
-      <replace source="\\'b8\r\n" target="ё"/>
-      <replace source="\\'ba\r\n" target="є"/>
-      <replace source="\\'bc\r\n" target="ј"/>
-      <replace source="\\'bd\r\n" target="Ѕ"/>
-      <replace source="\\'be\r\n" target="ѕ"/>
-      <replace source="\\'bf\r\n" target="ї"/>
-      <replace source="\\'c0\r\n" target="А"/>
-      <replace source="\\'c1\r\n" target="Б"/>
-      <replace source="\\'c2\r\n" target="В"/>
-      <replace source="\\'c3\r\n" target="Г"/>
-      <replace source="\\'c4\r\n" target="Д"/>
-      <replace source="\\'c5\r\n" target="Е"/>
-      <replace source="\\'c6\r\n" target="Ж"/>
-      <replace source="\\'c7\r\n" target="З"/>
-      <replace source="\\'c8\r\n" target="И"/>
-      <replace source="\\'c9\r\n" target="Й"/>
-      <replace source="\\'ca\r\n" target="К"/>
-      <replace source="\\'cb\r\n" target="Л"/>
-      <replace source="\\'cc\r\n" target="М"/>
-      <replace source="\\'cd\r\n" target="Н"/>
-      <replace source="\\'ce\r\n" target="О"/>
-      <replace source="\\'cf\r\n" target="П"/>
-      <replace source="\\'d0\r\n" target="Р"/>
-      <replace source="\\'d1\r\n" target="С"/>
-      <replace source="\\'d2\r\n" target="Т"/>
-      <replace source="\\'d3\r\n" target="У"/>
-      <replace source="\\'d4\r\n" target="Ф"/>
-      <replace source="\\'d5\r\n" target="Х"/>
-      <replace source="\\'d6\r\n" target="Ц"/>
-      <replace source="\\'d7\r\n" target="Ч"/>
-      <replace source="\\'d8\r\n" target="Ш"/>
-      <replace source="\\'d9\r\n" target="Щ"/>
-      <replace source="\\'da\r\n" target="Ъ"/>
-      <replace source="\\'db\r\n" target="Ы"/>
-      <replace source="\\'dc\r\n" target="Ь"/>
-      <replace source="\\'dd\r\n" target="Э"/>
-      <replace source="\\'de\r\n" target="Ю"/>
-      <replace source="\\'df\r\n" target="Я"/>
-      <replace source="\\'e0\r\n" target="а"/>
-      <replace source="\\'e1\r\n" target="б"/>
-      <replace source="\\'e2\r\n" target="в"/>
-      <replace source="\\'e3\r\n" target="г"/>
-      <replace source="\\'e4\r\n" target="д"/>
-      <replace source="\\'e5\r\n" target="е"/>
-      <replace source="\\'e6\r\n" target="ж"/>
-      <replace source="\\'e7\r\n" target="з"/>
-      <replace source="\\'e8\r\n" target="и"/>
-      <replace source="\\'e9\r\n" target="й"/>
-      <replace source="\\'ea\r\n" target="к"/>
-      <replace source="\\'eb\r\n" target="л"/>
-      <replace source="\\'ec\r\n" target="м"/>
-      <replace source="\\'ed\r\n" target="н"/>
-      <replace source="\\'ee\r\n" target="о"/>
-      <replace source="\\'ef\r\n" target="п"/>
-      <replace source="\\'f0\r\n" target="р"/>
-      <replace source="\\'f1\r\n" target="с"/>
-      <replace source="\\'f2\r\n" target="т"/>
-      <replace source="\\'f3\r\n" target="у"/>
-      <replace source="\\'f4\r\n" target="ф"/>
-      <replace source="\\'f5\r\n" target="х"/>
-      <replace source="\\'f6\r\n" target="ц"/>
-      <replace source="\\'f7\r\n" target="ч"/>
-      <replace source="\\'f8\r\n" target="ш"/>
-      <replace source="\\'f9\r\n" target="щ"/>
-      <replace source="\\'fa\r\n" target="ъ"/>
-      <replace source="\\'fb\r\n" target="ы"/>
-      <replace source="\\'fc\r\n" target="ь"/>
-      <replace source="\\'fd\r\n" target="э"/>
-      <replace source="\\'fe\r\n" target="ю"/>
-      <replace source="\\'ff\r\n" target="я"/>
-      <!-- The same characters followed by a \n: -->
-      <replace source="\\'80\n" target="Ђ"/>
-      <replace source="\\'81\n" target="Ѓ"/>
-      <replace source="\\'83\n" target="ѓ"/>
-      <replace source="\\'8a\n" target="Љ"/>
-      <replace source="\\'8c\n" target="Њ"/>
-      <replace source="\\'8d\n" target="Ќ"/>
-      <replace source="\\'8e\n" target="Ћ"/>
-      <replace source="\\'8f\n" target="Џ"/>
-      <replace source="\\'90\n" target="ђ"/>
-      <replace source="\\'9a\n" target="љ"/>
-      <replace source="\\'9c\n" target="њ"/>
-      <replace source="\\'9d\n" target="ќ"/>
-      <replace source="\\'9e\n" target="ћ"/>
-      <replace source="\\'9f\n" target="џ"/>
-      <replace source="\\'a1\n" target="Ў"/>
-      <replace source="\\'a2\n" target="ў"/>
-      <replace source="\\'a3\n" target="Ј"/>
-      <replace source="\\'a5\n" target="Ґ"/>
-      <replace source="\\'a8\n" target="Ё"/>
-      <replace source="\\'aa\n" target="Є"/>
-      <replace source="\\'af\n" target="Ї"/>
-      <replace source="\\'b3\n" target="і"/>
-      <replace source="\\'b4\n" target="ґ"/>
-      <replace source="\\'b5\n" target="µ"/>
-      <replace source="\\'b8\n" target="ё"/>
-      <replace source="\\'ba\n" target="є"/>
-      <replace source="\\'bc\n" target="ј"/>
-      <replace source="\\'bd\n" target="Ѕ"/>
-      <replace source="\\'be\n" target="ѕ"/>
-      <replace source="\\'bf\n" target="ї"/>
-      <replace source="\\'c0\n" target="А"/>
-      <replace source="\\'c1\n" target="Б"/>
-      <replace source="\\'c2\n" target="В"/>
-      <replace source="\\'c3\n" target="Г"/>
-      <replace source="\\'c4\n" target="Д"/>
-      <replace source="\\'c5\n" target="Е"/>
-      <replace source="\\'c6\n" target="Ж"/>
-      <replace source="\\'c7\n" target="З"/>
-      <replace source="\\'c8\n" target="И"/>
-      <replace source="\\'c9\n" target="Й"/>
-      <replace source="\\'ca\n" target="К"/>
-      <replace source="\\'cb\n" target="Л"/>
-      <replace source="\\'cc\n" target="М"/>
-      <replace source="\\'cd\n" target="Н"/>
-      <replace source="\\'ce\n" target="О"/>
-      <replace source="\\'cf\n" target="П"/>
-      <replace source="\\'d0\n" target="Р"/>
-      <replace source="\\'d1\n" target="С"/>
-      <replace source="\\'d2\n" target="Т"/>
-      <replace source="\\'d3\n" target="У"/>
-      <replace source="\\'d4\n" target="Ф"/>
-      <replace source="\\'d5\n" target="Х"/>
-      <replace source="\\'d6\n" target="Ц"/>
-      <replace source="\\'d7\n" target="Ч"/>
-      <replace source="\\'d8\n" target="Ш"/>
-      <replace source="\\'d9\n" target="Щ"/>
-      <replace source="\\'da\n" target="Ъ"/>
-      <replace source="\\'db\n" target="Ы"/>
-      <replace source="\\'dc\n" target="Ь"/>
-      <replace source="\\'dd\n" target="Э"/>
-      <replace source="\\'de\n" target="Ю"/>
-      <replace source="\\'df\n" target="Я"/>
-      <replace source="\\'e0\n" target="а"/>
-      <replace source="\\'e1\n" target="б"/>
-      <replace source="\\'e2\n" target="в"/>
-      <replace source="\\'e3\n" target="г"/>
-      <replace source="\\'e4\n" target="д"/>
-      <replace source="\\'e5\n" target="е"/>
-      <replace source="\\'e6\n" target="ж"/>
-      <replace source="\\'e7\n" target="з"/>
-      <replace source="\\'e8\n" target="и"/>
-      <replace source="\\'e9\n" target="й"/>
-      <replace source="\\'ea\n" target="к"/>
-      <replace source="\\'eb\n" target="л"/>
-      <replace source="\\'ec\n" target="м"/>
-      <replace source="\\'ed\n" target="н"/>
-      <replace source="\\'ee\n" target="о"/>
-      <replace source="\\'ef\n" target="п"/>
-      <replace source="\\'f0\n" target="р"/>
-      <replace source="\\'f1\n" target="с"/>
-      <replace source="\\'f2\n" target="т"/>
-      <replace source="\\'f3\n" target="у"/>
-      <replace source="\\'f4\n" target="ф"/>
-      <replace source="\\'f5\n" target="х"/>
-      <replace source="\\'f6\n" target="ц"/>
-      <replace source="\\'f7\n" target="ч"/>
-      <replace source="\\'f8\n" target="ш"/>
-      <replace source="\\'f9\n" target="щ"/>
-      <replace source="\\'fa\n" target="ъ"/>
-      <replace source="\\'fb\n" target="ы"/>
-      <replace source="\\'fc\n" target="ь"/>
-      <replace source="\\'fd\n" target="э"/>
-      <replace source="\\'fe\n" target="ю"/>
-      <replace source="\\'ff\n" target="я"/>
-      <!-- The same characters followed by a \r: -->
-      <replace source="\\'80\r" target="Ђ"/>
-      <replace source="\\'81\r" target="Ѓ"/>
-      <replace source="\\'83\r" target="ѓ"/>
-      <replace source="\\'8a\r" target="Љ"/>
-      <replace source="\\'8c\r" target="Њ"/>
-      <replace source="\\'8d\r" target="Ќ"/>
-      <replace source="\\'8e\r" target="Ћ"/>
-      <replace source="\\'8f\r" target="Џ"/>
-      <replace source="\\'90\r" target="ђ"/>
-      <replace source="\\'9a\r" target="љ"/>
-      <replace source="\\'9c\r" target="њ"/>
-      <replace source="\\'9d\r" target="ќ"/>
-      <replace source="\\'9e\r" target="ћ"/>
-      <replace source="\\'9f\r" target="џ"/>
-      <replace source="\\'a1\r" target="Ў"/>
-      <replace source="\\'a2\r" target="ў"/>
-      <replace source="\\'a3\r" target="Ј"/>
-      <replace source="\\'a5\r" target="Ґ"/>
-      <replace source="\\'a8\r" target="Ё"/>
-      <replace source="\\'aa\r" target="Є"/>
-      <replace source="\\'af\r" target="Ї"/>
-      <replace source="\\'b3\r" target="і"/>
-      <replace source="\\'b4\r" target="ґ"/>
-      <replace source="\\'b5\r" target="µ"/>
-      <replace source="\\'b8\r" target="ё"/>
-      <replace source="\\'ba\r" target="є"/>
-      <replace source="\\'bc\r" target="ј"/>
-      <replace source="\\'bd\r" target="Ѕ"/>
-      <replace source="\\'be\r" target="ѕ"/>
-      <replace source="\\'bf\r" target="ї"/>
-      <replace source="\\'c0\r" target="А"/>
-      <replace source="\\'c1\r" target="Б"/>
-      <replace source="\\'c2\r" target="В"/>
-      <replace source="\\'c3\r" target="Г"/>
-      <replace source="\\'c4\r" target="Д"/>
-      <replace source="\\'c5\r" target="Е"/>
-      <replace source="\\'c6\r" target="Ж"/>
-      <replace source="\\'c7\r" target="З"/>
-      <replace source="\\'c8\r" target="И"/>
-      <replace source="\\'c9\r" target="Й"/>
-      <replace source="\\'ca\r" target="К"/>
-      <replace source="\\'cb\r" target="Л"/>
-      <replace source="\\'cc\r" target="М"/>
-      <replace source="\\'cd\r" target="Н"/>
-      <replace source="\\'ce\r" target="О"/>
-      <replace source="\\'cf\r" target="П"/>
-      <replace source="\\'d0\r" target="Р"/>
-      <replace source="\\'d1\r" target="С"/>
-      <replace source="\\'d2\r" target="Т"/>
-      <replace source="\\'d3\r" target="У"/>
-      <replace source="\\'d4\r" target="Ф"/>
-      <replace source="\\'d5\r" target="Х"/>
-      <replace source="\\'d6\r" target="Ц"/>
-      <replace source="\\'d7\r" target="Ч"/>
-      <replace source="\\'d8\r" target="Ш"/>
-      <replace source="\\'d9\r" target="Щ"/>
-      <replace source="\\'da\r" target="Ъ"/>
-      <replace source="\\'db\r" target="Ы"/>
-      <replace source="\\'dc\r" target="Ь"/>
-      <replace source="\\'dd\r" target="Э"/>
-      <replace source="\\'de\r" target="Ю"/>
-      <replace source="\\'df\r" target="Я"/>
-      <replace source="\\'e0\r" target="а"/>
-      <replace source="\\'e1\r" target="б"/>
-      <replace source="\\'e2\r" target="в"/>
-      <replace source="\\'e3\r" target="г"/>
-      <replace source="\\'e4\r" target="д"/>
-      <replace source="\\'e5\r" target="е"/>
-      <replace source="\\'e6\r" target="ж"/>
-      <replace source="\\'e7\r" target="з"/>
-      <replace source="\\'e8\r" target="и"/>
-      <replace source="\\'e9\r" target="й"/>
-      <replace source="\\'ea\r" target="к"/>
-      <replace source="\\'eb\r" target="л"/>
-      <replace source="\\'ec\r" target="м"/>
-      <replace source="\\'ed\r" target="н"/>
-      <replace source="\\'ee\r" target="о"/>
-      <replace source="\\'ef\r" target="п"/>
-      <replace source="\\'f0\r" target="р"/>
-      <replace source="\\'f1\r" target="с"/>
-      <replace source="\\'f2\r" target="т"/>
-      <replace source="\\'f3\r" target="у"/>
-      <replace source="\\'f4\r" target="ф"/>
-      <replace source="\\'f5\r" target="х"/>
-      <replace source="\\'f6\r" target="ц"/>
-      <replace source="\\'f7\r" target="ч"/>
-      <replace source="\\'f8\r" target="ш"/>
-      <replace source="\\'f9\r" target="щ"/>
-      <replace source="\\'fa\r" target="ъ"/>
-      <replace source="\\'fb\r" target="ы"/>
-      <replace source="\\'fc\r" target="ь"/>
-      <replace source="\\'fd\r" target="э"/>
-      <replace source="\\'fe\r" target="ю"/>
-      <replace source="\\'ff\r" target="я"/>
-    </replacement-rule>
-  </rules>
-
-</format>
diff --git a/apertium/script_header.sh.cmake_in b/apertium/script_header.sh.cmake_in
deleted file mode 100755
index 802d3b0..0000000
--- a/apertium/script_header.sh.cmake_in
+++ /dev/null
@@ -1,7 +0,0 @@
-#!${BASH}
-
-export APERTIUM_PATH=${APERTIUM_PATH}
-export LTTOOLBOX_PATH=${LTTOOLBOX_PATH}
-export DEFAULT_DIRECTORY=${DEFAULT_DIRECTORY}
-
-${SCRIPT}
diff --git a/apertium/tmx_align_parameters.h b/apertium/tmx_align_parameters.h
index 8498a16..3366f48 100644
--- a/apertium/tmx_align_parameters.h
+++ b/apertium/tmx_align_parameters.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGN_PARAMETERS_H
 #define __TMXALIGNER_ALIGN_PARAMETERS_H
diff --git a/apertium/tmx_aligner_tool.cc b/apertium/tmx_aligner_tool.cc
index 570eafa..b42210b 100644
--- a/apertium/tmx_aligner_tool.cc
+++ b/apertium/tmx_aligner_tool.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_aligner_tool.h>
 
diff --git a/apertium/tmx_aligner_tool.h b/apertium/tmx_aligner_tool.h
index 49294df..848e2e2 100644
--- a/apertium/tmx_aligner_tool.h
+++ b/apertium/tmx_aligner_tool.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef _ALIGNER_TOOL_H_
 #define _ALIGNER_TOOL_C_
diff --git a/apertium/tmx_alignment.cc b/apertium/tmx_alignment.cc
index f17fb59..4463169 100644
--- a/apertium/tmx_alignment.cc
+++ b/apertium/tmx_alignment.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_alignment.h>
 
diff --git a/apertium/tmx_alignment.h b/apertium/tmx_alignment.h
index 14e92e6..0bd6931 100644
--- a/apertium/tmx_alignment.h
+++ b/apertium/tmx_alignment.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGNMENT_ALIGNMENT_H
 #define __TMXALIGNER_ALIGNMENT_ALIGNMENT_H
diff --git a/apertium/tmx_arguments_parser.cc b/apertium/tmx_arguments_parser.cc
index 0af1347..33e762f 100644
--- a/apertium/tmx_arguments_parser.cc
+++ b/apertium/tmx_arguments_parser.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_arguments_parser.h>
 #include <iostream>
diff --git a/apertium/tmx_arguments_parser.h b/apertium/tmx_arguments_parser.h
index c36b1a5..974fb1d 100644
--- a/apertium/tmx_arguments_parser.h
+++ b/apertium/tmx_arguments_parser.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __ARGUMENTSPARSER_H
 #define __ARGUMENTSPARSER_H
diff --git a/apertium/tmx_book_to_matrix.cc b/apertium/tmx_book_to_matrix.cc
index a503e78..7695e4b 100644
--- a/apertium/tmx_book_to_matrix.cc
+++ b/apertium/tmx_book_to_matrix.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_book_to_matrix.h>
 #include <apertium/tmx_alignment.h>
diff --git a/apertium/tmx_book_to_matrix.h b/apertium/tmx_book_to_matrix.h
index a35c368..5f6453b 100644
--- a/apertium/tmx_book_to_matrix.h
+++ b/apertium/tmx_book_to_matrix.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGNMENT_BOOKTOMATRIX_H
 #define __TMXALIGNER_ALIGNMENT_BOOKTOMATRIX_H
diff --git a/apertium/tmx_dic_tree.h b/apertium/tmx_dic_tree.h
index 5e87562..9918b2e 100644
--- a/apertium/tmx_dic_tree.h
+++ b/apertium/tmx_dic_tree.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_TEIREADER_DICTIONARIES_H
 #define __TMXALIGNER_TEIREADER_DICTIONARIES_H
diff --git a/apertium/tmx_dictionary.cc b/apertium/tmx_dictionary.cc
index 18a3ffd..d136db4 100644
--- a/apertium/tmx_dictionary.cc
+++ b/apertium/tmx_dictionary.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_dictionary.h>
 
diff --git a/apertium/tmx_dictionary.h b/apertium/tmx_dictionary.h
index 4e4294d..6de8f4b 100644
--- a/apertium/tmx_dictionary.h
+++ b/apertium/tmx_dictionary.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGNMENT_DICTIONARY_H
 #define __TMXALIGNER_ALIGNMENT_DICTIONARY_H
diff --git a/apertium/tmx_quasi_diagonal.h b/apertium/tmx_quasi_diagonal.h
index 4811e64..a20c282 100644
--- a/apertium/tmx_quasi_diagonal.h
+++ b/apertium/tmx_quasi_diagonal.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGNMENT_QUASIDIAGONAL_H
 #define __TMXALIGNER_ALIGNMENT_QUASIDIAGONAL_H
diff --git a/apertium/tmx_serialize_impl.h b/apertium/tmx_serialize_impl.h
index 960ce21..b286762 100644
--- a/apertium/tmx_serialize_impl.h
+++ b/apertium/tmx_serialize_impl.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_INCLUDE_SERIALIZEIMPL_H
 #define __TMXALIGNER_INCLUDE_SERIALIZEIMPL_H
diff --git a/apertium/tmx_strings_and_streams.cc b/apertium/tmx_strings_and_streams.cc
index db8a6d8..41cf720 100644
--- a/apertium/tmx_strings_and_streams.cc
+++ b/apertium/tmx_strings_and_streams.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_strings_and_streams.h>
 
diff --git a/apertium/tmx_strings_and_streams.h b/apertium/tmx_strings_and_streams.h
index 8e3f297..7db8969 100644
--- a/apertium/tmx_strings_and_streams.h
+++ b/apertium/tmx_strings_and_streams.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_INCLUDE_STRINGSANDSTREAMS_H
 #define __TMXALIGNER_INCLUDE_STRINGSANDSTREAMS_H
diff --git a/apertium/tmx_trail_postprocessors.cc b/apertium/tmx_trail_postprocessors.cc
index 114f0b5..16e9a89 100644
--- a/apertium/tmx_trail_postprocessors.cc
+++ b/apertium/tmx_trail_postprocessors.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_trail_postprocessors.h>
 
diff --git a/apertium/tmx_trail_postprocessors.h b/apertium/tmx_trail_postprocessors.h
index cce3d35..f3cad8b 100644
--- a/apertium/tmx_trail_postprocessors.h
+++ b/apertium/tmx_trail_postprocessors.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGNMENT_TRAILPOSTPROCESSORS_H
 #define __TMXALIGNER_ALIGNMENT_TRAILPOSTPROCESSORS_H
diff --git a/apertium/tmx_translate.cc b/apertium/tmx_translate.cc
index e414b2f..3669a9a 100644
--- a/apertium/tmx_translate.cc
+++ b/apertium/tmx_translate.cc
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #include <apertium/tmx_translate.h>
 
diff --git a/apertium/tmx_translate.h b/apertium/tmx_translate.h
index 224d708..3c5514d 100644
--- a/apertium/tmx_translate.h
+++ b/apertium/tmx_translate.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGNMENT_TRANSLATE_H
 #define __TMXALIGNER_ALIGNMENT_TRANSLATE_H
diff --git a/apertium/tmx_words.h b/apertium/tmx_words.h
index 15ae8f0..27cf6eb 100644
--- a/apertium/tmx_words.h
+++ b/apertium/tmx_words.h
@@ -6,6 +6,8 @@
 *                                                                        *
 *  Developed by Daniel Varga.                                            *
 *                                                                        *
+*  From hunalign; for license see ../AUTHORS and ../COPYING.hunalign     *
+*                                                                        *
 *************************************************************************/
 #ifndef __TMXALIGNER_ALIGNMENT_WORDS_H
 #define __TMXALIGNER_ALIGNMENT_WORDS_H
diff --git a/apertium/trans-lextor-header.sh b/apertium/trans-lextor-header.sh
deleted file mode 100644
index 158780c..0000000
--- a/apertium/trans-lextor-header.sh
+++ /dev/null
@@ -1,107 +0,0 @@
-case $# in
-  2)
-    DATOS=$1
-    PREFIJO=$2
-    FORMATADOR=txt
-    ;;
-  3)
-    DATOS=$1
-    PREFIJO=$2
-    FORMATADOR=$3
-    ;;
-  4)
-    DATOS=$1
-    PREFIJO=$2
-    FORMATADOR=$3
-    FICHERO=$4
-    ;;
-  5)  
-    DATOS=$1
-    PREFIJO=$2
-    FORMATADOR=$3
-    FICHERO=$4
-    SALIDA=$5
-    ;;
-  *)
-    echo "USAGE: $(basename $0) <datadir> <translation> [format [infile [outfile]]]"
-    echo " datadir          Directory of linguistic data"
-    echo " translation      LANG1-LANG2"
-    echo " format           one of: txt (default), txtu, html, htmlu, rtf, rtfu"
-    echo " infile           input file (stdin by default)"
-    echo " outfile          output file (stdout by default)"
-    exit 1;
-esac
-
-#Par�metros obligatorios
-PREFIJO=$2    #Direcci�n traducci�n Ejm.- es-ca
-FORMATADOR=$3 #Fuente a traducir Ejm.- txt
-
-DATOS=$1
-
-#Parametro opcional, de no estar, lee de la entrada estandar (stdin)
-FICHERO=$4    #Fichero con el texto a traducir
-
-PATH=.:/usr/local/bin:$PATH
-AUTOMORF=$DATOS/$PREFIJO.automorf.bin
-#AUTOBIL=$DATOS/$PREFIJO.autobil.bin
-AUTOBIL=$DATOS/$PREFIJO.lextorbil.bin
-AUTOGEN=$DATOS/$PREFIJO.autogen.bin
-AUTOPGEN=$DATOS/$PREFIJO.autopgen.bin
-
-DEP="dep"
-
-TURL="cat" #No hace nada, se introduce para no tener
-           #que cambiar la l�nea de montaje, pues en algunos
-	   #casos se usa como ultimo eslab�n de la cadena el
-	   #programa turl o ext-turl.
-REF=
-	      
-case "$FORMATADOR" in 
-	txt)
-		FORMATADOR="txt"
-		GENERADOR="lt-proc -g"		
-		;;
-	txtu)
-		FORMATADOR="txt"
-		GENERADOR="lt-proc -n"
-		;;
-	rtf)
-		FORMATADOR="rtf"
-		GENERADOR="lt-proc -g"		
-		;;
-	rtfu)
-		FORMATADOR="rtf"		
-		GENERADOR="lt-proc -n"
-		;;
-	html)
-		FORMATADOR="html"
-		GENERADOR="lt-proc -g"	
-		;;
-	htmlu)
-		FORMATADOR="html"
-		GENERADOR="lt-proc -n"		
-		;;
-	*) # Por defecto asumimos txt
-		FORMATADOR="txt"
-		GENERADOR="lt-proc -g"
-		;;	
-esac
-
-if [ -z $REF ]
-then 
-        REF=$FORMATADOR
-fi
-
-$APERTIUM_PATH/apertium-des$FORMATADOR $FICHERO | \
-$LTTOOLBOX_PATH/lt-proc $AUTOMORF | \
-$APERTIUM_PATH/apertium-tagger -g $DATOS/$PREFIJO.prob | \
-$APERTIUM_PATH/apertium-pretransfer | \
-$APERTIUM_PATH/apertium-lextor -l $DATOS/$PREFIJO.lextor $DATOS/$PREFIJO.lextormono.bin 3 3 | \
-$APERTIUM_PATH/apertium-transfer $DATOS/trules-$PREFIJO.xml $DATOS/trules-$PREFIJO.bin $AUTOBIL | \
-$LTTOOLBOX_PATH/$GENERADOR $AUTOGEN  | \
-$LTTOOLBOX_PATH/lt-proc -p $AUTOPGEN | \
-if [ x$SALIDA = x ]
-then $APERTIUM_PATH/apertium-re$FORMATADOR 
-else
-  $APERTIUM_PATH/apertium-re$FORMATADOR >$SALIDA
-fi
diff --git a/apertium/transfer.cc b/apertium/transfer.cc
index fa955ad..5b33920 100644
--- a/apertium/transfer.cc
+++ b/apertium/transfer.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005 Universitat d'Alacant / Universidad de Alicante
+ * Copyright (C) 2005--2015 Universitat d'Alacant / Universidad de Alicante
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -22,6 +22,7 @@
 #include <apertium/string_utils.h>
 #include <lttoolbox/compression.h>
 #include <lttoolbox/xml_parse_util.h>
+#include <pcre.h>
 
 #include <cctype>
 #include <iostream>
@@ -110,10 +111,15 @@ Transfer::readData(FILE *in)
   me = new MatchExe(t, finals);
  
   // attr_items
+  bool recompile_attrs = Compression::string_read(in) != string(pcre_version());
   for(int i = 0, limit = Compression::multibyte_read(in); i != limit; i++)
   {
     string const cad_k = UtfConverter::toUtf8(Compression::wstring_read(in));
     attr_items[cad_k].read(in);
+    wstring fallback = Compression::wstring_read(in);
+    if(recompile_attrs) {
+      attr_items[cad_k].compile(UtfConverter::toUtf8(fallback));
+    }
   }
 
   // variables
diff --git a/apertium/transfer.rng b/apertium/transfer.rng
deleted file mode 100644
index b78f94d..0000000
--- a/apertium/transfer.rng
+++ /dev/null
@@ -1,1058 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  Draft of DTD for the structural transfer rule files 
-  
-  Sergio Ortiz, Gema Ram�rez-S�nchez, Mireia Ginest�, Mikel L. Forcada, 
-  2005.07.29. 
--->
-<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-  <define name="condition">
-    <choice>
-      <ref name="and"/>
-      <ref name="or"/>
-      <ref name="not"/>
-      <ref name="equal"/>
-      <ref name="begins-with"/>
-      <ref name="begins-with-list"/>
-      <ref name="ends-with"/>
-      <ref name="ends-with-list"/>
-      <ref name="contains-substring"/>
-      <ref name="in"/>
-    </choice>
-  </define>
-  <define name="container">
-    <choice>
-      <ref name="var"/>
-      <ref name="clip"/>
-    </choice>
-  </define>
-  <define name="sentence">
-    <choice>
-      <ref name="let"/>
-      <ref name="out"/>
-      <ref name="choose"/>
-      <ref name="modify-case"/>
-      <ref name="call-macro"/>
-      <ref name="append"/>
-    </choice>
-  </define>
-  <define name="value">
-    <choice>
-      <ref name="b"/>
-      <ref name="clip"/>
-      <ref name="lit"/>
-      <ref name="lit-tag"/>
-      <ref name="var"/>
-      <ref name="get-case-from"/>
-      <ref name="case-of"/>
-      <ref name="concat"/>
-    </choice>
-  </define>
-  <define name="stringvalue">
-    <choice>
-      <ref name="clip"/>
-      <ref name="lit"/>
-      <ref name="var"/>
-      <ref name="get-case-from"/>
-      <ref name="case-of"/>
-    </choice>
-  </define>
-  <define name="transfer">
-    <element name="transfer">
-      <ref name="attlist.transfer"/>
-      <ref name="section-def-cats"/>
-      <ref name="section-def-attrs"/>
-      <ref name="section-def-vars"/>
-      <optional>
-        <ref name="section-def-lists"/>
-      </optional>
-      <optional>
-        <ref name="section-def-macros"/>
-      </optional>
-      <ref name="section-rules"/>
-    </element>
-  </define>
-  <define name="attlist.transfer" combine="interleave">
-    <optional>
-      <attribute name="default">
-        <choice>
-          <value>lu</value>
-          <value>chunk</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    'transfer' is the root element containing the whole structural
-    transfer rule file.  Attribute 'default' specifies if
-    unmatched words have to be written as lexical units ("lu", this is
-    the default value) or as chunks ("chunk").
-  -->
-  <define name="section-def-cats">
-    <element name="section-def-cats">
-      <ref name="attlist.section-def-cats"/>
-      <oneOrMore>
-        <ref name="def-cat"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.section-def-cats" combine="interleave">
-    <empty/>
-  </define>
-  <!--
-         The 'def-cats' section defines the categories used to build the
-    patterns used in rules
-  -->
-  <define name="def-cat">
-    <element name="def-cat">
-      <ref name="attlist.def-cat"/>
-      <oneOrMore>
-        <ref name="cat-item"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.def-cat" combine="interleave">
-    <attribute name="n">
-      <data type="ID"/>
-    </attribute>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    Each 'def-cat' defines one category in terms of a list of
-    category items and has a unique name 'n', which is mandatory
-  -->
-  <define name="cat-item">
-    <element name="cat-item">
-      <ref name="attlist.cat-item"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.cat-item" combine="interleave">
-    <optional>
-      <attribute name="lemma"/>
-    </optional>
-    <attribute name="tags"/>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-         Each 'cat-item' (category item) represents a set of lexical forms
-    and has a mandatory attribute 'tags' whose value is a sequence of
-    dot-separated tag names; this sequence is a subsequence of the
-    tag sequence defining each possible lexical form. For example,
-    tags="n.f" would match all lexical forms containing this tag
-    sequence, such as "^casa<n><f><pl>$".
-    
-    In addition, an optional attribute, "lemma", may be used to
-    define lexical forms having a particular substring in their lemma
-  -->
-  <define name="section-def-attrs">
-    <element name="section-def-attrs">
-      <ref name="attlist.section-def-attrs"/>
-      <oneOrMore>
-        <ref name="def-attr"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.section-def-attrs" combine="interleave">
-    <empty/>
-  </define>
-  <!--
-    The 'def-attrs' section defines the attributes that will be
-    identified in matched lexical forms 
-  -->
-  <define name="def-attr">
-    <element name="def-attr">
-      <ref name="attlist.def-attr"/>
-      <oneOrMore>
-        <ref name="attr-item"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.def-attr" combine="interleave">
-    <attribute name="n">
-      <data type="ID"/>
-    </attribute>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    Each def-attr defines one attribute in terms of a list of
-    attribute items and has a mandatory unique name n 
-  -->
-  <define name="attr-item">
-    <element name="attr-item">
-      <ref name="attlist.attr-item"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.attr-item" combine="interleave">
-    <optional>
-      <attribute name="tags"/>
-    </optional>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    Each 'attr-item' specifies a subsequence of the tags in
-    that lexical form (attribute 'tags')
-  -->
-  <define name="section-def-vars">
-    <element name="section-def-vars">
-      <ref name="attlist.section-def-vars"/>
-      <oneOrMore>
-        <ref name="def-var"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.section-def-vars" combine="interleave">
-    <empty/>
-  </define>
-  <!--
-    The 'def-vars' section defines the global variables
-    that will be used to transfer information between rules
-  -->
-  <define name="def-var">
-    <element name="def-var">
-      <ref name="attlist.def-var"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.def-var" combine="interleave">
-    <attribute name="n">
-      <data type="ID"/>
-    </attribute>
-    <optional>
-      <attribute name="v"/>
-    </optional>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    The definition of a global variable has a mandatory unique name 'n' that
-    will be used to refer to it. A value of initialization can also be specified
-    by means the 'v' attribute.  The default value of the initialization is the
-    empty string.
-  -->
-  <define name="section-def-lists">
-    <element name="section-def-lists">
-      <ref name="attlist.section-def-lists"/>
-      <oneOrMore>
-        <ref name="def-list"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.section-def-lists" combine="interleave">
-    <empty/>
-  </define>
-  <!-- Element 'section-def-lists' encloses a set of list definitions -->
-  <define name="def-list">
-    <element name="def-list">
-      <ref name="attlist.def-list"/>
-      <oneOrMore>
-        <ref name="list-item"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.def-list" combine="interleave">
-    <attribute name="n">
-      <data type="ID"/>
-    </attribute>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    The 'def-list' element defines a named list to search with the 'in' 
-    element.  Attribute 'n' sets the name of the list
-  -->
-  <define name="list-item">
-    <element name="list-item">
-      <ref name="attlist.list-item"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.list-item" combine="interleave">
-    <attribute name="v"/>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    Attribute 'v' of 'list-item' element contains the value to be added to 
-    the list being defined     
-  -->
-  <define name="section-def-macros">
-    <element name="section-def-macros">
-      <ref name="attlist.section-def-macros"/>
-      <oneOrMore>
-        <ref name="def-macro"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.section-def-macros" combine="interleave">
-    <empty/>
-  </define>
-  <!--
-    
-    The 'def-macros' section defines macros containing portions of
-    code frequently used in the action part of rules
-    
-  -->
-  <define name="def-macro">
-    <element name="def-macro">
-      <ref name="attlist.def-macro"/>
-      <oneOrMore>
-        <ref name="sentence"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.def-macro" combine="interleave">
-    <attribute name="n">
-      <data type="ID"/>
-    </attribute>
-  </define>
-  <define name="attlist.def-macro" combine="interleave">
-    <attribute name="npar"/>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    Macro definition:
-    
-    A macro has a mandatory name (the value of 'n'), a number of parameters
-    (the value of 'npar') and a body containing arguments and statements.  
-  -->
-  <define name="section-rules">
-    <element name="section-rules">
-      <ref name="attlist.section-rules"/>
-      <oneOrMore>
-        <ref name="rule"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.section-rules" combine="interleave">
-    <empty/>
-  </define>
-  <!-- The rules section contains a sequence of one or more rules -->
-  <define name="rule">
-    <element name="rule">
-      <ref name="attlist.rule"/>
-      <ref name="pattern"/>
-      <ref name="action"/>
-    </element>
-  </define>
-  <define name="attlist.rule" combine="interleave">
-    <optional>
-      <attribute name="comment"/>
-    </optional>
-  </define>
-  <!--
-    Each rule has a pattern and an action 
-    * attribute 'comment' allows to put in comments about the purpose of
-      the rule being defined
-  -->
-  <define name="pattern">
-    <element name="pattern">
-      <ref name="attlist.pattern"/>
-      <oneOrMore>
-        <ref name="pattern-item"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.pattern" combine="interleave">
-    <empty/>
-  </define>
-  <!--
-    The pattern is specified in terms of pattern items, each one
-    representing a lexical form in the matched pattern 
-  -->
-  <define name="pattern-item">
-    <element name="pattern-item">
-      <ref name="attlist.pattern-item"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.pattern-item" combine="interleave">
-    <attribute name="n">
-      <data type="IDREF"/>
-    </attribute>
-  </define>
-  <!-- Each attribute to be activated is referred to by its name in the def-cats section -->
-  <define name="action">
-    <element name="action">
-      <ref name="attlist.action"/>
-      <zeroOrMore>
-        <ref name="sentence"/>
-      </zeroOrMore>
-    </element>
-  </define>
-  <define name="attlist.action" combine="interleave">
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!-- Encloses the procedural part of a rule -->
-  <define name="choose">
-    <element name="choose">
-      <ref name="attlist.choose"/>
-      <oneOrMore>
-        <ref name="when"/>
-      </oneOrMore>
-      <optional>
-        <ref name="otherwise"/>
-      </optional>
-    </element>
-  </define>
-  <define name="attlist.choose" combine="interleave">
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    The choose statement is a selection statement (similar to a case
-    statement) composed of one or more tested cases and an optional
-    otherwise 
-  -->
-  <define name="when">
-    <element name="when">
-      <ref name="attlist.when"/>
-      <ref name="test"/>
-      <zeroOrMore>
-        <ref name="sentence"/>
-      </zeroOrMore>
-    </element>
-  </define>
-  <define name="attlist.when" combine="interleave">
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!-- Each tested case is a block of zero or more statements -->
-  <define name="otherwise">
-    <element name="otherwise">
-      <ref name="attlist.otherwise"/>
-      <oneOrMore>
-        <ref name="sentence"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.otherwise" combine="interleave">
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!-- The otherwise case is also a block of one or more statements -->
-  <define name="test">
-    <element name="test">
-      <ref name="attlist.test"/>
-      <ref name="condition"/>
-    </element>
-  </define>
-  <define name="attlist.test" combine="interleave">
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    The test in a tested case may be a conjunction, a disjunction, or
-    a negation of simpler tests, as well as a simple equality test
-  -->
-  <define name="and">
-    <element name="and">
-      <ref name="attlist.and"/>
-      <ref name="condition"/>
-      <oneOrMore>
-        <ref name="condition"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.and" combine="interleave">
-    <empty/>
-  </define>
-  <!-- Each conjuntion test contains two or more simpler tests -->
-  <define name="or">
-    <element name="or">
-      <ref name="attlist.or"/>
-      <ref name="condition"/>
-      <oneOrMore>
-        <ref name="condition"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.or" combine="interleave">
-    <empty/>
-  </define>
-  <!-- Each disjunction test contains two or more simpler tests -->
-  <define name="not">
-    <element name="not">
-      <ref name="attlist.not"/>
-      <ref name="condition"/>
-    </element>
-  </define>
-  <define name="attlist.not" combine="interleave">
-    <empty/>
-  </define>
-  <!-- The negation of a simpler test is a test itself -->
-  <define name="equal">
-    <element name="equal">
-      <ref name="attlist.equal"/>
-      <ref name="value"/>
-      <ref name="value"/>
-    </element>
-  </define>
-  <define name="attlist.equal" combine="interleave">
-    <optional>
-      <attribute name="caseless">
-        <choice>
-          <value>no</value>
-          <value>yes</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    The simplest test is an equality test. The right part and the
-    left part of the equality may both be a clip (see below), a
-    literal string ('lit'), a literal tag ('lit-tag') or the value of 
-    a variable ('var') defined in the def-vars section.  When the attribute
-    'caseless' is set to 'yes', the comparison is made without attending
-    to the case.
-  -->
-  <define name="begins-with">
-    <element name="begins-with">
-      <ref name="attlist.begins-with"/>
-      <ref name="value"/>
-      <ref name="value"/>
-    </element>
-  </define>
-  <define name="attlist.begins-with" combine="interleave">
-    <optional>
-      <attribute name="caseless">
-        <choice>
-          <value>no</value>
-          <value>yes</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    Tests if the left part contains the right part at the beginning.
-    Both parts of the test may both be a clip (see below), a
-    literal string ('lit'), a literal tag ('lit-tag') or the value of 
-    a variable ('var') defined in the def-vars section.  When the attribute
-    'caseless' is set to 'yes', the comparison is made without attending
-    to the case.
-  -->
-  <define name="ends-with">
-    <element name="ends-with">
-      <ref name="attlist.ends-with"/>
-      <ref name="value"/>
-      <ref name="value"/>
-    </element>
-  </define>
-  <define name="attlist.ends-with" combine="interleave">
-    <optional>
-      <attribute name="caseless">
-        <choice>
-          <value>no</value>
-          <value>yes</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    Tests if the left part contains the right part at the end.
-    Both parts of the test may both be a clip (see below), a
-    literal string ('lit'), a literal tag ('lit-tag') or the value of 
-    a variable ('var') defined in the def-vars section.  When the attribute
-    'caseless' is set to 'yes', the comparison is made without attending
-    to the case.
-  -->
-  <define name="begins-with-list">
-    <element name="begins-with-list">
-      <ref name="attlist.begins-with-list"/>
-      <ref name="value"/>
-      <ref name="list"/>
-    </element>
-  </define>
-  <define name="attlist.begins-with-list" combine="interleave">
-    <optional>
-      <attribute name="caseless">
-        <choice>
-          <value>no</value>
-          <value>yes</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    Tests if the left part contains the right part at the beginning.
-    First parts of the test may be a clip (see below), a
-    literal string ('lit'), a literal tag ('lit-tag') or the value of 
-    a variable ('var') defined in the def-vars section. The second part
-    must be always a list.  When the attribute
-    'caseless' is set to 'yes', the comparison is made without attending
-    to the case.
-  -->
-  <define name="ends-with-list">
-    <element name="ends-with-list">
-      <ref name="attlist.ends-with-list"/>
-      <ref name="value"/>
-      <ref name="list"/>
-    </element>
-  </define>
-  <define name="attlist.ends-with-list" combine="interleave">
-    <optional>
-      <attribute name="caseless">
-        <choice>
-          <value>no</value>
-          <value>yes</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    Tests if the left part contains the right part at the end.
-    First parts of the test may be a clip (see below), a
-    literal string ('lit'), a literal tag ('lit-tag') or the value of 
-    a variable ('var') defined in the def-vars section. The second part
-    must be always a list.  When the attribute
-    'caseless' is set to 'yes', the comparison is made without attending
-    to the case.
-  -->
-  <define name="contains-substring">
-    <element name="contains-substring">
-      <ref name="attlist.contains-substring"/>
-      <ref name="value"/>
-      <ref name="value"/>
-    </element>
-  </define>
-  <define name="attlist.contains-substring" combine="interleave">
-    <optional>
-      <attribute name="caseless">
-        <choice>
-          <value>no</value>
-          <value>yes</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    Tests if the left part contains the right part.
-    Both parts of the test may both be a clip (see below), a
-    literal string ('lit'), a literal tag ('lit-tag') or the value of 
-    a variable ('var') defined in the def-vars section.  When the attribute
-    'caseless' is set to 'yes', the comparison is made without attending
-    to the case.
-  -->
-  <define name="in">
-    <element name="in">
-      <ref name="attlist.in"/>
-      <ref name="value"/>
-      <ref name="list"/>
-    </element>
-  </define>
-  <define name="attlist.in" combine="interleave">
-    <optional>
-      <attribute name="caseless">
-        <choice>
-          <value>no</value>
-          <value>yes</value>
-        </choice>
-      </attribute>
-    </optional>
-  </define>
-  <!--
-    'in' performs a search of a value in a list.  If 'caseless' is set to yes,
-    this search is performed without attending to the case
-  -->
-  <define name="list">
-    <element name="list">
-      <ref name="attlist.list"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.list" combine="interleave">
-    <attribute name="n">
-      <data type="IDREF"/>
-    </attribute>
-  </define>
-  <!--
-    'list' refers, with the name in attribute 'n', a list defined before in
-    the 'section-def-list' section
-  -->
-  <define name="let">
-    <element name="let">
-      <ref name="attlist.let"/>
-      <ref name="container"/>
-      <ref name="value"/>
-    </element>
-  </define>
-  <define name="attlist.let" combine="interleave">
-    <empty/>
-  </define>
-  <!--
-    An assignment statement ('let') assigns the value of a clip (see
-    below), a literal string ('lit'), a literal tag('lit-tag') or the 
-    value of a global variable ('var') to either a global variable ('var') 
-    or a clip
-  -->
-  <define name="append">
-    <element name="append">
-      <ref name="attlist.append"/>
-      <oneOrMore>
-        <ref name="value"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.append" combine="interleave">
-    <attribute name="n">
-      <data type="IDREF"/>
-    </attribute>
-  </define>
-  <!--
-    This instruction appends the value of a clip (see
-    below), a literal string ('lit'), a literal tag('lit-tag') or the 
-    value of a global variable ('var') to either a global variable ('var') 
-    or a clip, identified by the "n" attribute
-  -->
-  <define name="out">
-    <element name="out">
-      <ref name="attlist.out"/>
-      <oneOrMore>
-        <choice>
-          <ref name="mlu"/>
-          <ref name="lu"/>
-          <ref name="b"/>
-          <ref name="chunk"/>
-          <ref name="var"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.out" combine="interleave">
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    'out' is an output statement; it may output any sequence of
-    clips, literal strings, literal tags, variables, and whitespace items 
-    (see below) 
-  -->
-  <define name="modify-case">
-    <element name="modify-case">
-      <ref name="attlist.modify-case"/>
-      <ref name="container"/>
-      <ref name="stringvalue"/>
-    </element>
-  </define>
-  <define name="attlist.modify-case" combine="interleave">
-    <empty/>
-  </define>
-  <!--
-    The first argument of 'modify-case' copy the case of the second 
-    argument.
-  -->
-  <define name="call-macro">
-    <element name="call-macro">
-      <ref name="attlist.call-macro"/>
-      <zeroOrMore>
-        <ref name="with-param"/>
-      </zeroOrMore>
-    </element>
-  </define>
-  <define name="attlist.call-macro" combine="interleave">
-    <attribute name="n">
-      <data type="IDREF"/>
-    </attribute>
-  </define>
-  <!--
-    A macro may be called anywhere by name with one or more
-    arguments
-  -->
-  <define name="with-param">
-    <element name="with-param">
-      <ref name="attlist.with-param"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.with-param" combine="interleave">
-    <attribute name="pos"/>
-  </define>
-  <!--
-    The attribute pos in each argument is used to refer to a lexical
-    form in the current rule. For example, if a 2-parameter macro
-    has been defined to perform noun-adjective agreement operations,
-    it may be used with arguments 1 and 2 in a noun-adjective rule,
-    with arguments 2, 3 and 1 in a determiner-noun-adjective rule, with
-    arguments 1 and 3 in a noun-adverb-adjective rule, and with
-    arguments 2 and 1 in an adjective-noun rule 
-  -->
-  <define name="clip">
-    <element name="clip">
-      <ref name="attlist.clip"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.clip" combine="interleave">
-    <attribute name="pos"/>
-    <attribute name="side">
-      <choice>
-        <value>sl</value>
-        <value>tl</value>
-      </choice>
-    </attribute>
-    <attribute name="part"/>
-    <optional>
-      <attribute name="queue"/>
-    </optional>
-    <optional>
-      <attribute name="link-to"/>
-    </optional>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    A 'clip' is a substring of a source-language or target-language
-    lexical form, extracted according to an attribute:
-    
-    * 'pos' is an index (1, 2, 3...) used to select a lexical form
-       inside the rule;
-    
-    * 'side' is used to select a source-language ('sl') or a
-      target-language ('tl') clip
-    
-    * the value of 'part' is the name of an attribute defined in
-      def-attrs, but may take also the values 'lem' (referring to
-      the lemma of the lexical form), 'lemh' (lemma head), 'lemq'
-      (lemma queue) and 'whole' (referring to the whole lexical form).
-    
-    * the value of 'queue' may be 'no' or 'yes'.  'yes' is assumed  by 
-      default.
-    
-    * 'link-to' causes the other attributes to be ignored in clip evaluation
-      when using 'clip' as a right hand side element (as value), and 
-      returns its value.  When using as a left hand side (as reference), 
-      the value of the 'as' attribute is ignored.
-  -->
-  <define name="lit">
-    <element name="lit">
-      <ref name="attlist.lit"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.lit" combine="interleave">
-    <attribute name="v"/>
-  </define>
-  <!--
-    A literal string value: the value of the literal is the value of
-    the 'v' attribute
-  -->
-  <define name="lit-tag">
-    <element name="lit-tag">
-      <ref name="attlist.lit-tag"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.lit-tag" combine="interleave">
-    <attribute name="v"/>
-  </define>
-  <!--
-    A literal string value: the value of the literal is the value of
-    the 'v' attribute
-  -->
-  <define name="var">
-    <element name="var">
-      <ref name="attlist.var"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.var" combine="interleave">
-    <attribute name="n">
-      <data type="IDREF"/>
-    </attribute>
-  </define>
-  <!--
-    Each 'var' is a variable identifier: the attribute n is the name
-    of the variable. When it is in an 'out', a 'test', or the right
-    part of a 'let', it represents the value of the variable; when in
-    the left part of a 'let' it represents the reference of the
-    variable. 
-  -->
-  <define name="get-case-from">
-    <element name="get-case-from">
-      <ref name="attlist.get-case-from"/>
-      <choice>
-        <ref name="clip"/>
-        <ref name="lit"/>
-        <ref name="var"/>
-      </choice>
-    </element>
-  </define>
-  <define name="attlist.get-case-from" combine="interleave">
-    <attribute name="pos"/>
-  </define>
-  <!--
-    Atenci�n, falta modificar todos los comentarios donde intervenga
-    get-case-from
-  -->
-  <define name="case-of">
-    <element name="case-of">
-      <ref name="attlist.case-of"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.case-of" combine="interleave">
-    <attribute name="pos"/>
-    <attribute name="side">
-      <choice>
-        <value>sl</value>
-        <value>tl</value>
-      </choice>
-    </attribute>
-    <attribute name="part"/>
-  </define>
-  <!--
-    A 'case-of' is a value representing the case of a "clip".  This value 
-    will be "aa" (all lowercase), "Aa" (first uppercase) and "AA",
-    (all uppercase).
-    
-    * 'pos' is an index (1, 2, 3...) used to select a lexical form
-       inside the rule;
-    
-    * 'side' is used to select a source-language ('sl') or a
-      target-language ('tl') clip
-    
-    * the value of 'part' is the name of an attribute defined in
-      def-attrs, but may take also the values 'lem' (referring to
-      the lemma of the lexical form), 'lemh' (lemma head), 'lemq'
-      (lemma queue) and 'whole' (referring to the whole lexical form).
-  -->
-  <define name="concat">
-    <element name="concat">
-      <ref name="attlist.concat"/>
-      <oneOrMore>
-        <ref name="value"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.concat" combine="interleave">
-    <empty/>
-  </define>
-  <!-- Concatenates a sequence of values -->
-  <define name="mlu">
-    <element name="mlu">
-      <ref name="attlist.mlu"/>
-      <oneOrMore>
-        <ref name="lu"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.mlu" combine="interleave">
-    <empty/>
-  </define>
-  <!-- Encloses a multiword -->
-  <define name="lu">
-    <element name="lu">
-      <ref name="attlist.lu"/>
-      <oneOrMore>
-        <ref name="value"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.lu" combine="interleave">
-    <empty/>
-  </define>
-  <!-- Encloses a word inside an 'out' element. -->
-  <define name="chunk">
-    <element name="chunk">
-      <ref name="attlist.chunk"/>
-      <ref name="tags"/>
-      <oneOrMore>
-        <choice>
-          <ref name="mlu"/>
-          <ref name="lu"/>
-          <ref name="b"/>
-          <ref name="var"/>
-        </choice>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.chunk" combine="interleave">
-    <optional>
-      <attribute name="name"/>
-    </optional>
-    <optional>
-      <attribute name="namefrom"/>
-    </optional>
-    <optional>
-      <attribute name="case"/>
-    </optional>
-    <optional>
-      <attribute name="c"/>
-    </optional>
-  </define>
-  <!--
-    Encloses a chunk inside an 'out' element.      
-    * 'name' the pseudolemma of the chunk.
-    * 'namefrom' get the name from a variable.
-    * 'case' the variable to get the uppercase/lowercase policy
-       to apply it to the chunk name
-  -->
-  <define name="tags">
-    <element name="tags">
-      <ref name="attlist.tags"/>
-      <oneOrMore>
-        <ref name="tag"/>
-      </oneOrMore>
-    </element>
-  </define>
-  <define name="attlist.tags" combine="interleave">
-    <empty/>
-  </define>
-  <define name="tag">
-    <element name="tag">
-      <ref name="attlist.tag"/>
-      <ref name="value"/>
-    </element>
-  </define>
-  <define name="attlist.tag" combine="interleave">
-    <empty/>
-  </define>
-  <define name="b">
-    <element name="b">
-      <ref name="attlist.b"/>
-      <empty/>
-    </element>
-  </define>
-  <define name="attlist.b" combine="interleave">
-    <optional>
-      <attribute name="pos"/>
-    </optional>
-  </define>
-  <start>
-    <choice>
-      <ref name="transfer"/>
-    </choice>
-  </start>
-</grammar>
-<!--
-  'b' is a [super]blanks item, indexed by pos; for example, a 'b'
-  with pos="2" refers to the [super]blanks (including format data
-  encapsulated by the de-formatter) between lexical form 2 and
-  lexical form 3. Managing [super]blanks explicitly allows for the
-  correct placement of format when the result of structural
-  transfer has more or less lexical items than the original or has
-  been reordered in some way.  If attribute "pos" is not specified, then
-  a single blank (ASCII 32) is generated.
--->
diff --git a/apertium/transfer_data.cc b/apertium/transfer_data.cc
index aff81c0..c1312ad 100644
--- a/apertium/transfer_data.cc
+++ b/apertium/transfer_data.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005 Universitat d'Alacant / Universidad de Alicante
+ * Copyright (C) 2005--2015 Universitat d'Alacant / Universidad de Alicante
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -21,7 +21,6 @@
 #include <lttoolbox/compression.h>
 #include <apertium/utf_converter.h>
 #include <apertium/apertium_re.h>
-#include <pcre.h>
 #include <iostream>
 #include <apertium/string_utils.h>
 
@@ -49,12 +48,12 @@ TransferData::TransferData()
 {
   // adding fixed attr_items
   attr_items[L"lem"] = L"(([^<]|\"\\<\")+)";
-  attr_items[L"lemq"] = L"\\#[- _][^<]+"; 
+  attr_items[L"lemq"] = L"\\#[- _][^<]+";
   attr_items[L"lemh"] = L"(([^<#]|\"\\<\"|\"\\#\")+)";
   attr_items[L"whole"] = L"(.+)";
   attr_items[L"tags"] = L"((<[^>]+>)+)";
   attr_items[L"chname"] = L"({([^/]+)\\/)"; // includes delimiters { and / !!!
-  attr_items[L"chcontent"] = L"(\\{.+)";    
+  attr_items[L"chcontent"] = L"(\\{.+)";
   attr_items[L"content"] = L"(\\{.+)";
 }
 
@@ -85,13 +84,13 @@ TransferData::getAlphabet()
   return alphabet;
 }
 
-Transducer & 
+Transducer &
 TransferData::getTransducer()
 {
   return transducer;
 }
 
-map<int, int> & 
+map<int, int> &
 TransferData::getFinals()
 {
   return finals;
@@ -121,15 +120,15 @@ TransferData::getVariables()
   return variables;
 }
 
-void 
+void
 TransferData::write(FILE *output)
 {
   alphabet.write(output);
-  transducer.write(output, alphabet.size());  
+  transducer.write(output, alphabet.size());
 
   // finals
 
-  Compression::multibyte_write(finals.size(), output);  
+  Compression::multibyte_write(finals.size(), output);
   for(map<int, int>::const_iterator it = finals.begin(), limit = finals.end();
       it != limit; it++)
   {
@@ -138,7 +137,7 @@ TransferData::write(FILE *output)
   }
 
   // attr_items
-  
+
   // precompiled regexps
   writeRegexps(output);
 
@@ -167,7 +166,7 @@ TransferData::write(FILE *output)
   {
     Compression::wstring_write(it->first, output);
     Compression::multibyte_write(it->second.size(), output);
-   
+
     for(set<wstring, Ltstr>::const_iterator it2 = it->second.begin(), limit2 = it->second.end();
 	it2 != limit2; it2++)
     {
@@ -180,15 +179,16 @@ TransferData::write(FILE *output)
 void
 TransferData::writeRegexps(FILE *output)
 {
+  Compression::string_write(string(pcre_version()), output);
   Compression::multibyte_write(attr_items.size(), output);
-  
+
   map<wstring, wstring, Ltstr>::iterator it, limit;
   for(it = attr_items.begin(), limit = attr_items.end(); it != limit; it++)
   {
     Compression::wstring_write(it->first, output);
     ApertiumRE my_re;
-    //wcerr << it->second << endl;
     my_re.compile(UtfConverter::toUtf8(it->second));
     my_re.write(output);
-  }   
+    Compression::wstring_write(it->second, output);
+  }
 }
diff --git a/apertium/transfer_mult.cc b/apertium/transfer_mult.cc
index ed0fd61..1ac73bb 100644
--- a/apertium/transfer_mult.cc
+++ b/apertium/transfer_mult.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005 Universitat d'Alacant / Universidad de Alicante
+ * Copyright (C) 2005--2015 Universitat d'Alacant / Universidad de Alicante
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -107,10 +107,15 @@ TransferMult::readData(FILE *in)
   me = new MatchExe(t, finals);
  
   // attr_items
+  bool recompile_attrs = Compression::string_read(in) != string(pcre_version());
   for(int i = 0, limit = Compression::multibyte_read(in); i != limit; i++)
   {
     string const cad_k = UtfConverter::toUtf8(Compression::wstring_read(in));
     attr_items[cad_k].read(in);
+    wstring fallback = Compression::wstring_read(in);
+    if(recompile_attrs) {
+      attr_items[cad_k].compile(UtfConverter::toUtf8(fallback));
+    }
   }
 
   // variables
diff --git a/apertium/validate-header.sh b/apertium/validate-header.sh
index 2a89462..c7e038f 100644
--- a/apertium/validate-header.sh
+++ b/apertium/validate-header.sh
@@ -1,12 +1,12 @@
-if [ $# != 1 ]
-then echo "USAGE: $(basename $0) <input_file>";
-     exit 1;
+if [[ $# != 1 ]]; then
+    echo "USAGE: $(basename $0) <input_file>"
+    exit 1
 fi
 
-FILE1=$1;
+FILE1=$1
 
-if [ ! -e $FILE1 ] 
-then echo "ERROR: '$1' file not found";
-     exit 1;
+if [[ ! -e $FILE1 ]]; then
+    echo "ERROR: '$1' file not found"
+    exit 1
 fi
 
diff --git a/apertium/win32/getopt.c b/apertium/win32/getopt.c
deleted file mode 100644
index 442bd0e..0000000
--- a/apertium/win32/getopt.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-Newsgroups: mod.std.unix
-Subject: public domain AT&T getopt source
-Date: 3 Nov 85 19:34:15 GMT
-
-Here's something you've all been waiting for:  the AT&T public domain
-source for getopt(3).  It is the code which was given out at the 1985
-UNIFORUM conference in Dallas.  I obtained it by electronic mail
-directly from AT&T.  The people there assure me that it is indeed
-in the public domain.
-*/
-
-#include "getopt.h"
-
-/*LINTLIBRARY*/
-
-extern int strlen();
-extern int strcmp();
-extern char *strchr();
-extern int write();
-
-#define NULL	0
-#define EOF	(-1)
-#define ERR(s, c)	if(opterr){\
-	char errbuf[2];\
-	errbuf[0] = c; errbuf[1] = '\n';\
-	(void) write(2, argv[0], (unsigned)strlen(argv[0]));\
-	(void) write(2, s, (unsigned)strlen(s));\
-	(void) write(2, errbuf, 2);}
-
-
-int	opterr = 1;
-int	optind = 1;
-int	optopt;
-char	*optarg;
-
-int
-getopt(argc, argv, opts)
-int	argc;
-char	**argv, *opts;
-{
-	static int sp = 1;
-	register int c;
-	register char *cp;
-
-	if(sp == 1)
-		if(optind >= argc ||
-		   argv[optind][0] != '-' || argv[optind][1] == '\0')
-			return(EOF);
-		else if(strcmp(argv[optind], "--") == NULL) {
-			optind++;
-			return(EOF);
-		}
-	optopt = c = argv[optind][sp];
-	if(c == ':' || (cp=strchr(opts, c)) == NULL) {
-		ERR(": illegal option -- ", c);
-		if(argv[optind][++sp] == '\0') {
-			optind++;
-			sp = 1;
-		}
-		return('?');
-	}
-	if(*++cp == ':') {
-		if(argv[optind][sp+1] != '\0')
-			optarg = &argv[optind++][sp+1];
-		else if(++optind >= argc) {
-			ERR(": option requires an argument -- ", c);
-			sp = 1;
-			return('?');
-		} else
-			optarg = argv[optind++];
-		sp = 1;
-	} else {
-		if(argv[optind][++sp] == '\0') {
-			sp = 1;
-			optind++;
-		}
-		optarg = NULL;
-	}
-	return(c);
-}
diff --git a/apertium/win32/getopt.h b/apertium/win32/getopt.h
deleted file mode 100644
index 2a48997..0000000
--- a/apertium/win32/getopt.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef GETOPT_H
-#define GETOPT_H
-
-#ifdef __cplusplus
-	extern "C" {
-#endif
-
-int getopt(int argc, char** argv, char* opts);
-
-extern int opterr;
-extern int optind;
-extern int optopt;
-extern char *optarg;
-
-#ifdef __cplusplus
-	}
-#endif
-
-#endif
diff --git a/apertium/win32/libgen.c b/apertium/win32/libgen.c
deleted file mode 100644
index 9189e7e..0000000
--- a/apertium/win32/libgen.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <string.h>
-
-#include "libgen.h"
-
-// http://www.opengroup.org/onlinepubs/007908775/xsh/basename.html
-
-char* basename(char *path) {
-	if (path != NULL) {
-		// Find the last position of the \ in the path name
-		char* pos = strrchr(path, '\\');
-
-		if (pos != NULL) { // If a \ char was found...
-			if (pos + 1 != NULL) // If it is not the last character in the string...
-				return pos + 1; // then return a pointer to the first character after \.
-			else
-				return pos; // else return a pointer to \
-
-		} else { // If a \ char was NOT found
-			return path; // return the pointer passed to basename (this is probably non-conformant)
-		}
-
-	} else { // If path == NULL, return "."
-		return ".";
-	}
-}
diff --git a/apertium/win32/libgen.h b/apertium/win32/libgen.h
deleted file mode 100644
index 140069d..0000000
--- a/apertium/win32/libgen.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef LIBGEN_H
-#define LIBGEN_H
-
-#ifdef __cplusplus
-	extern "C" {
-#endif
-
-char  *basename(char *);
-
-#ifdef __cplusplus
-	}
-#endif
-
-#endif
diff --git a/apertium/win32/regex.c b/apertium/win32/regex.c
deleted file mode 100644
index df70f1b..0000000
--- a/apertium/win32/regex.c
+++ /dev/null
@@ -1,4948 +0,0 @@
-/* Extended regular expression matching and search library,
-   version 0.12.
-   (Implements POSIX draft P10003.2/D11.2, except for
-   internationalization features.)
-
-   Copyright (C) 1993 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/* AIX requires this to be the first thing in the file. */
-#if defined (_AIX) && !defined (REGEX_MALLOC)
-  #pragma alloca
-#endif
-
-#define _GNU_SOURCE
-
-/* We need this for `regex.h', and perhaps for the Emacs include files.  */
-#include <sys/types.h>
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-/* The `emacs' switch turns on certain matching commands
-   that make sense only in Emacs. */
-#ifdef emacs
-
-#include "lisp.h"
-#include "buffer.h"
-#include "syntax.h"
-
-/* Emacs uses `NULL' as a predicate.  */
-#undef NULL
-
-#else  /* not emacs */
-
-/* We used to test for `BSTRING' here, but only GCC and Emacs define
-   `BSTRING', as far as I know, and neither of them use this code.  */
-#if HAVE_STRING_H || STDC_HEADERS
-#include <string.h>
-#ifndef bcmp
-#define bcmp(s1, s2, n)	memcmp ((s1), (s2), (n))
-#endif
-#ifndef bcopy
-#define bcopy(s, d, n)	memcpy ((d), (s), (n))
-#endif
-#ifndef bzero
-#define bzero(s, n)	memset ((s), 0, (n))
-#endif
-#else
-#include <strings.h>
-#endif
-
-#ifdef STDC_HEADERS
-#include <stdlib.h>
-#else
-char *malloc ();
-char *realloc ();
-#endif
-
-
-/* Define the syntax stuff for \<, \>, etc.  */
-
-/* This must be nonzero for the wordchar and notwordchar pattern
-   commands in re_match_2.  */
-#ifndef Sword
-#define Sword 1
-#endif
-
-#ifdef SYNTAX_TABLE
-
-extern char *re_syntax_table;
-
-#else /* not SYNTAX_TABLE */
-
-/* How many characters in the character set.  */
-#define CHAR_SET_SIZE 256
-
-static char re_syntax_table[CHAR_SET_SIZE];
-
-static void
-init_syntax_once ()
-{
-   register int c;
-   static int done = 0;
-
-   if (done)
-     return;
-
-   bzero (re_syntax_table, sizeof re_syntax_table);
-
-   for (c = 'a'; c <= 'z'; c++)
-     re_syntax_table[c] = Sword;
-
-   for (c = 'A'; c <= 'Z'; c++)
-     re_syntax_table[c] = Sword;
-
-   for (c = '0'; c <= '9'; c++)
-     re_syntax_table[c] = Sword;
-
-   re_syntax_table['_'] = Sword;
-
-   done = 1;
-}
-
-#endif /* not SYNTAX_TABLE */
-
-#define SYNTAX(c) re_syntax_table[c]
-
-#endif /* not emacs */
-
-/* Get the interface, including the syntax bits.  */
-#include "regex.h"
-
-/* isalpha etc. are used for the character classes.  */
-#include <ctype.h>
-
-#ifndef isascii
-#define isascii(c) 1
-#endif
-
-#ifdef isblank
-#define ISBLANK(c) (isascii (c) && isblank (c))
-#else
-#define ISBLANK(c) ((c) == ' ' || (c) == '\t')
-#endif
-#ifdef isgraph
-#define ISGRAPH(c) (isascii (c) && isgraph (c))
-#else
-#define ISGRAPH(c) (isascii (c) && isprint (c) && !isspace (c))
-#endif
-
-#define ISPRINT(c) (isascii (c) && isprint (c))
-#define ISDIGIT(c) (isascii (c) && isdigit (c))
-#define ISALNUM(c) (isascii (c) && isalnum (c))
-#define ISALPHA(c) (isascii (c) && isalpha (c))
-#define ISCNTRL(c) (isascii (c) && iscntrl (c))
-#define ISLOWER(c) (isascii (c) && islower (c))
-#define ISPUNCT(c) (isascii (c) && ispunct (c))
-#define ISSPACE(c) (isascii (c) && isspace (c))
-#define ISUPPER(c) (isascii (c) && isupper (c))
-#define ISXDIGIT(c) (isascii (c) && isxdigit (c))
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-/* We remove any previous definition of `SIGN_EXTEND_CHAR',
-   since ours (we hope) works properly with all combinations of
-   machines, compilers, `char' and `unsigned char' argument types.
-   (Per Bothner suggested the basic approach.)  */
-#undef SIGN_EXTEND_CHAR
-#if __STDC__
-#define SIGN_EXTEND_CHAR(c) ((signed char) (c))
-#else  /* not __STDC__ */
-/* As in Harbison and Steele.  */
-#define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
-#endif
-
-/* Should we use malloc or alloca?  If REGEX_MALLOC is not defined, we
-   use `alloca' instead of `malloc'.  This is because using malloc in
-   re_search* or re_match* could cause memory leaks when C-g is used in
-   Emacs; also, malloc is slower and causes storage fragmentation.  On
-   the other hand, malloc is more portable, and easier to debug.
-
-   Because we sometimes use alloca, some routines have to be macros,
-   not functions -- `alloca'-allocated space disappears at the end of the
-   function it is called in.  */
-
-#ifdef REGEX_MALLOC
-
-#define REGEX_ALLOCATE malloc
-#define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize)
-
-#else /* not REGEX_MALLOC  */
-
-/* Emacs already defines alloca, sometimes.  */
-#ifndef alloca
-
-/* Make alloca work the best possible way.  */
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#else /* not __GNUC__ */
-#if HAVE_ALLOCA_H
-#include <alloca.h>
-#else /* not __GNUC__ or HAVE_ALLOCA_H */
-#ifndef _AIX /* Already did AIX, up at the top.  */
-char *alloca ();
-#endif /* not _AIX */
-#endif /* not HAVE_ALLOCA_H */
-#endif /* not __GNUC__ */
-
-#endif /* not alloca */
-
-#define REGEX_ALLOCATE alloca
-
-/* Assumes a `char *destination' variable.  */
-#define REGEX_REALLOCATE(source, osize, nsize)				\
-  (destination = (char *) alloca (nsize),				\
-   bcopy (source, destination, osize),					\
-   destination)
-
-#endif /* not REGEX_MALLOC */
-
-
-/* True if `size1' is non-NULL and PTR is pointing anywhere inside
-   `string1' or just past its end.  This works if PTR is NULL, which is
-   a good thing.  */
-#define FIRST_STRING_P(ptr) 					\
-  (size1 && string1 <= (ptr) && (ptr) <= string1 + size1)
-
-/* (Re)Allocate N items of type T using malloc, or fail.  */
-#define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t)))
-#define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t)))
-#define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t)))
-
-#define BYTEWIDTH 8 /* In bits.  */
-
-#define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
-
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-
-typedef char boolean;
-#define false 0
-#define true 1
-
-/* These are the command codes that appear in compiled regular
-   expressions.  Some opcodes are followed by argument bytes.  A
-   command code can specify any interpretation whatsoever for its
-   arguments.  Zero bytes may appear in the compiled regular expression.
-
-   The value of `exactn' is needed in search.c (search_buffer) in Emacs.
-   So regex.h defines a symbol `RE_EXACTN_VALUE' to be 1; the value of
-   `exactn' we use here must also be 1.  */
-
-typedef enum
-{
-  no_op = 0,
-
-        /* Followed by one byte giving n, then by n literal bytes.  */
-  exactn = 1,
-
-        /* Matches any (more or less) character.  */
-  anychar,
-
-        /* Matches any one char belonging to specified set.  First
-           following byte is number of bitmap bytes.  Then come bytes
-           for a bitmap saying which chars are in.  Bits in each byte
-           are ordered low-bit-first.  A character is in the set if its
-           bit is 1.  A character too large to have a bit in the map is
-           automatically not in the set.  */
-  charset,
-
-        /* Same parameters as charset, but match any character that is
-           not one of those specified.  */
-  charset_not,
-
-        /* Start remembering the text that is matched, for storing in a
-           register.  Followed by one byte with the register number, in
-           the range 0 to one less than the pattern buffer's re_nsub
-           field.  Then followed by one byte with the number of groups
-           inner to this one.  (This last has to be part of the
-           start_memory only because we need it in the on_failure_jump
-           of re_match_2.)  */
-  start_memory,
-
-        /* Stop remembering the text that is matched and store it in a
-           memory register.  Followed by one byte with the register
-           number, in the range 0 to one less than `re_nsub' in the
-           pattern buffer, and one byte with the number of inner groups,
-           just like `start_memory'.  (We need the number of inner
-           groups here because we don't have any easy way of finding the
-           corresponding start_memory when we're at a stop_memory.)  */
-  stop_memory,
-
-        /* Match a duplicate of something remembered. Followed by one
-           byte containing the register number.  */
-  duplicate,
-
-        /* Fail unless at beginning of line.  */
-  begline,
-
-        /* Fail unless at end of line.  */
-  endline,
-
-        /* Succeeds if at beginning of buffer (if emacs) or at beginning
-           of string to be matched (if not).  */
-  begbuf,
-
-        /* Analogously, for end of buffer/string.  */
-  endbuf,
-
-        /* Followed by two byte relative address to which to jump.  */
-  jump,
-
-    /* Same as jump, but marks the end of an alternative.  */
-  jump_past_alt,
-
-        /* Followed by two-byte relative address of place to resume at
-           in case of failure.  */
-  on_failure_jump,
-
-        /* Like on_failure_jump, but pushes a placeholder instead of the
-           current string position when executed.  */
-  on_failure_keep_string_jump,
-
-        /* Throw away latest failure point and then jump to following
-           two-byte relative address.  */
-  pop_failure_jump,
-
-        /* Change to pop_failure_jump if know won't have to backtrack to
-           match; otherwise change to jump.  This is used to jump
-           back to the beginning of a repeat.  If what follows this jump
-           clearly won't match what the repeat does, such that we can be
-           sure that there is no use backtracking out of repetitions
-           already matched, then we change it to a pop_failure_jump.
-           Followed by two-byte address.  */
-  maybe_pop_jump,
-
-        /* Jump to following two-byte address, and push a dummy failure
-           point. This failure point will be thrown away if an attempt
-           is made to use it for a failure.  A `+' construct makes this
-           before the first repeat.  Also used as an intermediary kind
-           of jump when compiling an alternative.  */
-  dummy_failure_jump,
-
-    /* Push a dummy failure point and continue.  Used at the end of
-       alternatives.  */
-  push_dummy_failure,
-
-        /* Followed by two-byte relative address and two-byte number n.
-           After matching N times, jump to the address upon failure.  */
-  succeed_n,
-
-        /* Followed by two-byte relative address, and two-byte number n.
-           Jump to the address N times, then fail.  */
-  jump_n,
-
-        /* Set the following two-byte relative address to the
-           subsequent two-byte number.  The address *includes* the two
-           bytes of number.  */
-  set_number_at,
-
-  wordchar,	/* Matches any word-constituent character.  */
-  notwordchar,	/* Matches any char that is not a word-constituent.  */
-
-  wordbeg,	/* Succeeds if at word beginning.  */
-  wordend,	/* Succeeds if at word end.  */
-
-  wordbound,	/* Succeeds if at a word boundary.  */
-  notwordbound	/* Succeeds if not at a word boundary.  */
-
-#ifdef emacs
-  ,before_dot,	/* Succeeds if before point.  */
-  at_dot,	/* Succeeds if at point.  */
-  after_dot,	/* Succeeds if after point.  */
-
-    /* Matches any character whose syntax is specified.  Followed by
-           a byte which contains a syntax code, e.g., Sword.  */
-  syntaxspec,
-
-    /* Matches any character whose syntax is not that specified.  */
-  notsyntaxspec
-#endif /* emacs */
-} re_opcode_t;
-
-/* Common operations on the compiled pattern.  */
-
-/* Store NUMBER in two contiguous bytes starting at DESTINATION.  */
-
-#define STORE_NUMBER(destination, number)				\
-  do {									\
-    (destination)[0] = (number) & 0377;					\
-    (destination)[1] = (number) >> 8;					\
-  } while (0)
-
-/* Same as STORE_NUMBER, except increment DESTINATION to
-   the byte after where the number is stored.  Therefore, DESTINATION
-   must be an lvalue.  */
-
-#define STORE_NUMBER_AND_INCR(destination, number)			\
-  do {									\
-    STORE_NUMBER (destination, number);					\
-    (destination) += 2;							\
-  } while (0)
-
-/* Put into DESTINATION a number stored in two contiguous bytes starting
-   at SOURCE.  */
-
-#define EXTRACT_NUMBER(destination, source)				\
-  do {									\
-    (destination) = *(source) & 0377;					\
-    (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8;		\
-  } while (0)
-
-#ifdef DEBUG
-static void
-extract_number (dest, source)
-    int *dest;
-    unsigned char *source;
-{
-  int temp = SIGN_EXTEND_CHAR (*(source + 1));
-  *dest = *source & 0377;
-  *dest += temp << 8;
-}
-
-#ifndef EXTRACT_MACROS /* To debug the macros.  */
-#undef EXTRACT_NUMBER
-#define EXTRACT_NUMBER(dest, src) extract_number (&dest, src)
-#endif /* not EXTRACT_MACROS */
-
-#endif /* DEBUG */
-
-/* Same as EXTRACT_NUMBER, except increment SOURCE to after the number.
-   SOURCE must be an lvalue.  */
-
-#define EXTRACT_NUMBER_AND_INCR(destination, source)			\
-  do {									\
-    EXTRACT_NUMBER (destination, source);				\
-    (source) += 2; 							\
-  } while (0)
-
-#ifdef DEBUG
-static void
-extract_number_and_incr (destination, source)
-    int *destination;
-    unsigned char **source;
-{
-  extract_number (destination, *source);
-  *source += 2;
-}
-
-#ifndef EXTRACT_MACROS
-#undef EXTRACT_NUMBER_AND_INCR
-#define EXTRACT_NUMBER_AND_INCR(dest, src) \
-  extract_number_and_incr (&dest, &src)
-#endif /* not EXTRACT_MACROS */
-
-#endif /* DEBUG */
-
-/* If DEBUG is defined, Regex prints many voluminous messages about what
-   it is doing (if the variable `debug' is nonzero).  If linked with the
-   main program in `iregex.c', you can enter patterns and strings
-   interactively.  And if linked with the main program in `main.c' and
-   the other test files, you can run the already-written tests.  */
-
-#ifdef DEBUG
-
-/* We use standard I/O for debugging.  */
-#include <stdio.h>
-
-/* It is useful to test things that ``must'' be true when debugging.  */
-#include <assert.h>
-
-static int debug = 0;
-
-#define DEBUG_STATEMENT(e) e
-#define DEBUG_PRINT1(x) if (debug) printf (x)
-#define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2)
-#define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3)
-#define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4)
-#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) 				\
-  if (debug) print_partial_compiled_pattern (s, e)
-#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)			\
-  if (debug) print_double_string (w, s1, sz1, s2, sz2)
-
-
-extern void printchar ();
-
-/* Print the fastmap in human-readable form.  */
-
-void
-print_fastmap (fastmap)
-    char *fastmap;
-{
-  unsigned was_a_range = 0;
-  unsigned i = 0;
-
-  while (i < (1 << BYTEWIDTH))
-    {
-      if (fastmap[i++])
-    {
-      was_a_range = 0;
-          printchar (i - 1);
-          while (i < (1 << BYTEWIDTH)  &&  fastmap[i])
-            {
-              was_a_range = 1;
-              i++;
-            }
-      if (was_a_range)
-            {
-              printf ("-");
-              printchar (i - 1);
-            }
-        }
-    }
-  putchar ('\n');
-}
-
-
-/* Print a compiled pattern string in human-readable form, starting at
-   the START pointer into it and ending just before the pointer END.  */
-
-void
-print_partial_compiled_pattern (start, end)
-    unsigned char *start;
-    unsigned char *end;
-{
-  int mcnt, mcnt2;
-  unsigned char *p = start;
-  unsigned char *pend = end;
-
-  if (start == NULL)
-    {
-      printf ("(null)\n");
-      return;
-    }
-
-  /* Loop over pattern commands.  */
-  while (p < pend)
-    {
-      switch ((re_opcode_t) *p++)
-    {
-        case no_op:
-          printf ("/no_op");
-          break;
-
-    case exactn:
-      mcnt = *p++;
-          printf ("/exactn/%d", mcnt);
-          do
-        {
-              putchar ('/');
-          printchar (*p++);
-            }
-          while (--mcnt);
-          break;
-
-    case start_memory:
-          mcnt = *p++;
-          printf ("/start_memory/%d/%d", mcnt, *p++);
-          break;
-
-    case stop_memory:
-          mcnt = *p++;
-      printf ("/stop_memory/%d/%d", mcnt, *p++);
-          break;
-
-    case duplicate:
-      printf ("/duplicate/%d", *p++);
-      break;
-
-    case anychar:
-      printf ("/anychar");
-      break;
-
-    case charset:
-        case charset_not:
-          {
-            register int c;
-
-            printf ("/charset%s",
-                (re_opcode_t) *(p - 1) == charset_not ? "_not" : "");
-
-            assert (p + *p < pend);
-
-            for (c = 0; c < *p; c++)
-              {
-                unsigned bit;
-                unsigned char map_byte = p[1 + c];
-
-                putchar ('/');
-
-        for (bit = 0; bit < BYTEWIDTH; bit++)
-                  if (map_byte & (1 << bit))
-                    printchar (c * BYTEWIDTH + bit);
-              }
-        p += 1 + *p;
-        break;
-      }
-
-    case begline:
-      printf ("/begline");
-          break;
-
-    case endline:
-          printf ("/endline");
-          break;
-
-    case on_failure_jump:
-          extract_number_and_incr (&mcnt, &p);
-      printf ("/on_failure_jump/0/%d", mcnt);
-          break;
-
-    case on_failure_keep_string_jump:
-          extract_number_and_incr (&mcnt, &p);
-      printf ("/on_failure_keep_string_jump/0/%d", mcnt);
-          break;
-
-    case dummy_failure_jump:
-          extract_number_and_incr (&mcnt, &p);
-      printf ("/dummy_failure_jump/0/%d", mcnt);
-          break;
-
-    case push_dummy_failure:
-          printf ("/push_dummy_failure");
-          break;
-
-        case maybe_pop_jump:
-          extract_number_and_incr (&mcnt, &p);
-      printf ("/maybe_pop_jump/0/%d", mcnt);
-      break;
-
-        case pop_failure_jump:
-      extract_number_and_incr (&mcnt, &p);
-      printf ("/pop_failure_jump/0/%d", mcnt);
-      break;
-
-        case jump_past_alt:
-      extract_number_and_incr (&mcnt, &p);
-      printf ("/jump_past_alt/0/%d", mcnt);
-      break;
-
-        case jump:
-      extract_number_and_incr (&mcnt, &p);
-      printf ("/jump/0/%d", mcnt);
-      break;
-
-        case succeed_n:
-          extract_number_and_incr (&mcnt, &p);
-          extract_number_and_incr (&mcnt2, &p);
-      printf ("/succeed_n/0/%d/0/%d", mcnt, mcnt2);
-          break;
-
-        case jump_n:
-          extract_number_and_incr (&mcnt, &p);
-          extract_number_and_incr (&mcnt2, &p);
-      printf ("/jump_n/0/%d/0/%d", mcnt, mcnt2);
-          break;
-
-        case set_number_at:
-          extract_number_and_incr (&mcnt, &p);
-          extract_number_and_incr (&mcnt2, &p);
-      printf ("/set_number_at/0/%d/0/%d", mcnt, mcnt2);
-          break;
-
-        case wordbound:
-      printf ("/wordbound");
-      break;
-
-    case notwordbound:
-      printf ("/notwordbound");
-          break;
-
-    case wordbeg:
-      printf ("/wordbeg");
-      break;
-
-    case wordend:
-      printf ("/wordend");
-
-#ifdef emacs
-    case before_dot:
-      printf ("/before_dot");
-          break;
-
-    case at_dot:
-      printf ("/at_dot");
-          break;
-
-    case after_dot:
-      printf ("/after_dot");
-          break;
-
-    case syntaxspec:
-          printf ("/syntaxspec");
-      mcnt = *p++;
-      printf ("/%d", mcnt);
-          break;
-
-    case notsyntaxspec:
-          printf ("/notsyntaxspec");
-      mcnt = *p++;
-      printf ("/%d", mcnt);
-      break;
-#endif /* emacs */
-
-    case wordchar:
-      printf ("/wordchar");
-          break;
-
-    case notwordchar:
-      printf ("/notwordchar");
-          break;
-
-    case begbuf:
-      printf ("/begbuf");
-          break;
-
-    case endbuf:
-      printf ("/endbuf");
-          break;
-
-        default:
-          printf ("?%d", *(p-1));
-    }
-    }
-  printf ("/\n");
-}
-
-
-void
-print_compiled_pattern (bufp)
-    struct re_pattern_buffer *bufp;
-{
-  unsigned char *buffer = bufp->buffer;
-
-  print_partial_compiled_pattern (buffer, buffer + bufp->used);
-  printf ("%d bytes used/%d bytes allocated.\n", bufp->used, bufp->allocated);
-
-  if (bufp->fastmap_accurate && bufp->fastmap)
-    {
-      printf ("fastmap: ");
-      print_fastmap (bufp->fastmap);
-    }
-
-  printf ("re_nsub: %d\t", bufp->re_nsub);
-  printf ("regs_alloc: %d\t", bufp->regs_allocated);
-  printf ("can_be_null: %d\t", bufp->can_be_null);
-  printf ("newline_anchor: %d\n", bufp->newline_anchor);
-  printf ("no_sub: %d\t", bufp->no_sub);
-  printf ("not_bol: %d\t", bufp->not_bol);
-  printf ("not_eol: %d\t", bufp->not_eol);
-  printf ("syntax: %d\n", bufp->syntax);
-  /* Perhaps we should print the translate table?  */
-}
-
-
-void
-print_double_string (where, string1, size1, string2, size2)
-    const char *where;
-    const char *string1;
-    const char *string2;
-    int size1;
-    int size2;
-{
-  unsigned this_char;
-
-  if (where == NULL)
-    printf ("(null)");
-  else
-    {
-      if (FIRST_STRING_P (where))
-        {
-          for (this_char = where - string1; this_char < size1; this_char++)
-            printchar (string1[this_char]);
-
-          where = string2;
-        }
-
-      for (this_char = where - string2; this_char < size2; this_char++)
-        printchar (string2[this_char]);
-    }
-}
-
-#else /* not DEBUG */
-
-#undef assert
-#define assert(e)
-
-#define DEBUG_STATEMENT(e)
-#define DEBUG_PRINT1(x)
-#define DEBUG_PRINT2(x1, x2)
-#define DEBUG_PRINT3(x1, x2, x3)
-#define DEBUG_PRINT4(x1, x2, x3, x4)
-#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)
-#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)
-
-#endif /* not DEBUG */
-
-/* Set by `re_set_syntax' to the current regexp syntax to recognize.  Can
-   also be assigned to arbitrarily: each pattern buffer stores its own
-   syntax, so it can be changed between regex compilations.  */
-reg_syntax_t re_syntax_options = RE_SYNTAX_EMACS;
-
-
-/* Specify the precise syntax of regexps for compilation.  This provides
-   for compatibility for various utilities which historically have
-   different, incompatible syntaxes.
-
-   The argument SYNTAX is a bit mask comprised of the various bits
-   defined in regex.h.  We return the old syntax.  */
-
-reg_syntax_t
-re_set_syntax (syntax)
-    reg_syntax_t syntax;
-{
-  reg_syntax_t ret = re_syntax_options;
-
-  re_syntax_options = syntax;
-  return ret;
-}
-
-/* This table gives an error message for each of the error codes listed
-   in regex.h.  Obviously the order here has to be same as there.  */
-
-static const char *re_error_msg[] =
-  { NULL,					/* REG_NOERROR */
-    "No match",					/* REG_NOMATCH */
-    "Invalid regular expression",		/* REG_BADPAT */
-    "Invalid collation character",		/* REG_ECOLLATE */
-    "Invalid character class name",		/* REG_ECTYPE */
-    "Trailing backslash",			/* REG_EESCAPE */
-    "Invalid back reference",			/* REG_ESUBREG */
-    "Unmatched [ or [^",			/* REG_EBRACK */
-    "Unmatched ( or \\(",			/* REG_EPAREN */
-    "Unmatched \\{",				/* REG_EBRACE */
-    "Invalid content of \\{\\}",		/* REG_BADBR */
-    "Invalid range end",			/* REG_ERANGE */
-    "Memory exhausted",				/* REG_ESPACE */
-    "Invalid preceding regular expression",	/* REG_BADRPT */
-    "Premature end of regular expression",	/* REG_EEND */
-    "Regular expression too big",		/* REG_ESIZE */
-    "Unmatched ) or \\)",			/* REG_ERPAREN */
-  };
-
-/* Subroutine declarations and macros for regex_compile.  */
-
-static void store_op1 (), store_op2 ();
-static void insert_op1 (), insert_op2 ();
-static boolean at_begline_loc_p (), at_endline_loc_p ();
-static boolean group_in_compile_stack ();
-static reg_errcode_t compile_range ();
-
-/* Fetch the next character in the uncompiled pattern---translating it
-   if necessary.  Also cast from a signed character in the constant
-   string passed to us by the user to an unsigned char that we can use
-   as an array index (in, e.g., `translate').  */
-#define PATFETCH(c)							\
-  do {if (p == pend) return REG_EEND;					\
-    c = (unsigned char) *p++;						\
-    if (translate) c = translate[c]; 					\
-  } while (0)
-
-/* Fetch the next character in the uncompiled pattern, with no
-   translation.  */
-#define PATFETCH_RAW(c)							\
-  do {if (p == pend) return REG_EEND;					\
-    c = (unsigned char) *p++; 						\
-  } while (0)
-
-/* Go backwards one character in the pattern.  */
-#define PATUNFETCH p--
-
-
-/* If `translate' is non-null, return translate[D], else just D.  We
-   cast the subscript to translate because some data is declared as
-   `char *', to avoid warnings when a string constant is passed.  But
-   when we use a character as a subscript we must make it unsigned.  */
-#define TRANSLATE(d) (translate ? translate[(unsigned char) (d)] : (d))
-
-
-/* Macros for outputting the compiled pattern into `buffer'.  */
-
-/* If the buffer isn't allocated when it comes in, use this.  */
-#define INIT_BUF_SIZE  32
-
-/* Make sure we have at least N more bytes of space in buffer.  */
-#define GET_BUFFER_SPACE(n)						\
-    while (b - bufp->buffer + (n) > bufp->allocated)			\
-      EXTEND_BUFFER ()
-
-/* Make sure we have one more byte of buffer space and then add C to it.  */
-#define BUF_PUSH(c)							\
-  do {									\
-    GET_BUFFER_SPACE (1);						\
-    *b++ = (unsigned char) (c);						\
-  } while (0)
-
-
-/* Ensure we have two more bytes of buffer space and then append C1 and C2.  */
-#define BUF_PUSH_2(c1, c2)						\
-  do {									\
-    GET_BUFFER_SPACE (2);						\
-    *b++ = (unsigned char) (c1);					\
-    *b++ = (unsigned char) (c2);					\
-  } while (0)
-
-
-/* As with BUF_PUSH_2, except for three bytes.  */
-#define BUF_PUSH_3(c1, c2, c3)						\
-  do {									\
-    GET_BUFFER_SPACE (3);						\
-    *b++ = (unsigned char) (c1);					\
-    *b++ = (unsigned char) (c2);					\
-    *b++ = (unsigned char) (c3);					\
-  } while (0)
-
-
-/* Store a jump with opcode OP at LOC to location TO.  We store a
-   relative address offset by the three bytes the jump itself occupies.  */
-#define STORE_JUMP(op, loc, to) \
-  store_op1 (op, loc, (to) - (loc) - 3)
-
-/* Likewise, for a two-argument jump.  */
-#define STORE_JUMP2(op, loc, to, arg) \
-  store_op2 (op, loc, (to) - (loc) - 3, arg)
-
-/* Like `STORE_JUMP', but for inserting.  Assume `b' is the buffer end.  */
-#define INSERT_JUMP(op, loc, to) \
-  insert_op1 (op, loc, (to) - (loc) - 3, b)
-
-/* Like `STORE_JUMP2', but for inserting.  Assume `b' is the buffer end.  */
-#define INSERT_JUMP2(op, loc, to, arg) \
-  insert_op2 (op, loc, (to) - (loc) - 3, arg, b)
-
-
-/* This is not an arbitrary limit: the arguments which represent offsets
-   into the pattern are two bytes long.  So if 2^16 bytes turns out to
-   be too small, many things would have to change.  */
-#define MAX_BUF_SIZE (1L << 16)
-
-
-/* Extend the buffer by twice its current size via realloc and
-   reset the pointers that pointed into the old block to point to the
-   correct places in the new one.  If extending the buffer results in it
-   being larger than MAX_BUF_SIZE, then flag memory exhausted.  */
-#define EXTEND_BUFFER()							\
-  do { 									\
-    unsigned char *old_buffer = bufp->buffer;				\
-    if (bufp->allocated == MAX_BUF_SIZE) 				\
-      return REG_ESIZE;							\
-    bufp->allocated <<= 1;						\
-    if (bufp->allocated > MAX_BUF_SIZE)					\
-      bufp->allocated = MAX_BUF_SIZE; 					\
-    bufp->buffer = (unsigned char *) realloc (bufp->buffer, bufp->allocated);\
-    if (bufp->buffer == NULL)						\
-      return REG_ESPACE;						\
-    /* If the buffer moved, move all the pointers into it.  */		\
-    if (old_buffer != bufp->buffer)					\
-      {									\
-        b = (b - old_buffer) + bufp->buffer;				\
-        begalt = (begalt - old_buffer) + bufp->buffer;			\
-        if (fixup_alt_jump)						\
-          fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer;\
-        if (laststart)							\
-          laststart = (laststart - old_buffer) + bufp->buffer;		\
-        if (pending_exact)						\
-          pending_exact = (pending_exact - old_buffer) + bufp->buffer;	\
-      }									\
-  } while (0)
-
-
-/* Since we have one byte reserved for the register number argument to
-   {start,stop}_memory, the maximum number of groups we can report
-   things about is what fits in that byte.  */
-#define MAX_REGNUM 255
-
-/* But patterns can have more than `MAX_REGNUM' registers.  We just
-   ignore the excess.  */
-typedef unsigned regnum_t;
-
-
-/* Macros for the compile stack.  */
-
-/* Since offsets can go either forwards or backwards, this type needs to
-   be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1.  */
-typedef int pattern_offset_t;
-
-typedef struct
-{
-  pattern_offset_t begalt_offset;
-  pattern_offset_t fixup_alt_jump;
-  pattern_offset_t inner_group_offset;
-  pattern_offset_t laststart_offset;
-  regnum_t regnum;
-} compile_stack_elt_t;
-
-
-typedef struct
-{
-  compile_stack_elt_t *stack;
-  unsigned size;
-  unsigned avail;			/* Offset of next open position.  */
-} compile_stack_type;
-
-
-#define INIT_COMPILE_STACK_SIZE 32
-
-#define COMPILE_STACK_EMPTY  (compile_stack.avail == 0)
-#define COMPILE_STACK_FULL  (compile_stack.avail == compile_stack.size)
-
-/* The next available element.  */
-#define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail])
-
-
-/* Set the bit for character C in a list.  */
-#define SET_LIST_BIT(c)                               \
-  (b[((unsigned char) (c)) / BYTEWIDTH]               \
-   |= 1 << (((unsigned char) c) % BYTEWIDTH))
-
-
-/* Get the next unsigned number in the uncompiled pattern.  */
-#define GET_UNSIGNED_NUMBER(num) 					\
-  { if (p != pend)							\
-     {									\
-       PATFETCH (c); 							\
-       while (ISDIGIT (c)) 						\
-         { 								\
-           if (num < 0)							\
-              num = 0;							\
-           num = num * 10 + c - '0'; 					\
-           if (p == pend) 						\
-              break; 							\
-           PATFETCH (c);						\
-         } 								\
-       } 								\
-    }
-
-#define CHAR_CLASS_MAX_LENGTH  6 /* Namely, `xdigit'.  */
-
-#define IS_CHAR_CLASS(string)						\
-   (STREQ (string, "alpha") || STREQ (string, "upper")			\
-    || STREQ (string, "lower") || STREQ (string, "digit")		\
-    || STREQ (string, "alnum") || STREQ (string, "xdigit")		\
-    || STREQ (string, "space") || STREQ (string, "print")		\
-    || STREQ (string, "punct") || STREQ (string, "graph")		\
-    || STREQ (string, "cntrl") || STREQ (string, "blank"))
-
-/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX.
-   Returns one of error codes defined in `regex.h', or zero for success.
-
-   Assumes the `allocated' (and perhaps `buffer') and `translate'
-   fields are set in BUFP on entry.
-
-   If it succeeds, results are put in BUFP (if it returns an error, the
-   contents of BUFP are undefined):
-     `buffer' is the compiled pattern;
-     `syntax' is set to SYNTAX;
-     `used' is set to the length of the compiled pattern;
-     `fastmap_accurate' is zero;
-     `re_nsub' is the number of subexpressions in PATTERN;
-     `not_bol' and `not_eol' are zero;
-
-   The `fastmap' and `newline_anchor' fields are neither
-   examined nor set.  */
-
-static reg_errcode_t
-regex_compile (pattern, size, syntax, bufp)
-     const char *pattern;
-     int size;
-     reg_syntax_t syntax;
-     struct re_pattern_buffer *bufp;
-{
-  /* We fetch characters from PATTERN here.  Even though PATTERN is
-     `char *' (i.e., signed), we declare these variables as unsigned, so
-     they can be reliably used as array indices.  */
-  register unsigned char c, c1;
-
-  /* A random tempory spot in PATTERN.  */
-  const char *p1;
-
-  /* Points to the end of the buffer, where we should append.  */
-  register unsigned char *b;
-
-  /* Keeps track of unclosed groups.  */
-  compile_stack_type compile_stack;
-
-  /* Points to the current (ending) position in the pattern.  */
-  const char *p = pattern;
-  const char *pend = pattern + size;
-
-  /* How to translate the characters in the pattern.  */
-  char *translate = bufp->translate;
-
-  /* Address of the count-byte of the most recently inserted `exactn'
-     command.  This makes it possible to tell if a new exact-match
-     character can be added to that command or if the character requires
-     a new `exactn' command.  */
-  unsigned char *pending_exact = 0;
-
-  /* Address of start of the most recently finished expression.
-     This tells, e.g., postfix * where to find the start of its
-     operand.  Reset at the beginning of groups and alternatives.  */
-  unsigned char *laststart = 0;
-
-  /* Address of beginning of regexp, or inside of last group.  */
-  unsigned char *begalt;
-
-  /* Place in the uncompiled pattern (i.e., the {) to
-     which to go back if the interval is invalid.  */
-  const char *beg_interval;
-
-  /* Address of the place where a forward jump should go to the end of
-     the containing expression.  Each alternative of an `or' -- except the
-     last -- ends with a forward jump of this sort.  */
-  unsigned char *fixup_alt_jump = 0;
-
-  /* Counts open-groups as they are encountered.  Remembered for the
-     matching close-group on the compile stack, so the same register
-     number is put in the stop_memory as the start_memory.  */
-  regnum_t regnum = 0;
-
-#ifdef DEBUG
-  DEBUG_PRINT1 ("\nCompiling pattern: ");
-  if (debug)
-    {
-      unsigned debug_count;
-
-      for (debug_count = 0; debug_count < size; debug_count++)
-        printchar (pattern[debug_count]);
-      putchar ('\n');
-    }
-#endif /* DEBUG */
-
-  /* Initialize the compile stack.  */
-  compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t);
-  if (compile_stack.stack == NULL)
-    return REG_ESPACE;
-
-  compile_stack.size = INIT_COMPILE_STACK_SIZE;
-  compile_stack.avail = 0;
-
-  /* Initialize the pattern buffer.  */
-  bufp->syntax = syntax;
-  bufp->fastmap_accurate = 0;
-  bufp->not_bol = bufp->not_eol = 0;
-
-  /* Set `used' to zero, so that if we return an error, the pattern
-     printer (for debugging) will think there's no pattern.  We reset it
-     at the end.  */
-  bufp->used = 0;
-
-  /* Always count groups, whether or not bufp->no_sub is set.  */
-  bufp->re_nsub = 0;
-
-#if !defined (emacs) && !defined (SYNTAX_TABLE)
-  /* Initialize the syntax table.  */
-   init_syntax_once ();
-#endif
-
-  if (bufp->allocated == 0)
-    {
-      if (bufp->buffer)
-    { /* If zero allocated, but buffer is non-null, try to realloc
-             enough space.  This loses if buffer's address is bogus, but
-             that is the user's responsibility.  */
-          RETALLOC (bufp->buffer, INIT_BUF_SIZE, unsigned char);
-        }
-      else
-        { /* Caller did not allocate a buffer.  Do it for them.  */
-          bufp->buffer = TALLOC (INIT_BUF_SIZE, unsigned char);
-        }
-      if (!bufp->buffer) return REG_ESPACE;
-
-      bufp->allocated = INIT_BUF_SIZE;
-    }
-
-  begalt = b = bufp->buffer;
-
-  /* Loop through the uncompiled pattern until we're at the end.  */
-  while (p != pend)
-    {
-      PATFETCH (c);
-
-      switch (c)
-        {
-        case '^':
-          {
-            if (   /* If at start of pattern, it's an operator.  */
-                   p == pattern + 1
-                   /* If context independent, it's an operator.  */
-                || syntax & RE_CONTEXT_INDEP_ANCHORS
-                   /* Otherwise, depends on what's come before.  */
-                || at_begline_loc_p (pattern, p, syntax))
-              BUF_PUSH (begline);
-            else
-              goto normal_char;
-          }
-          break;
-
-
-        case '$':
-          {
-            if (   /* If at end of pattern, it's an operator.  */
-                   p == pend
-                   /* If context independent, it's an operator.  */
-                || syntax & RE_CONTEXT_INDEP_ANCHORS
-                   /* Otherwise, depends on what's next.  */
-                || at_endline_loc_p (p, pend, syntax))
-               BUF_PUSH (endline);
-             else
-               goto normal_char;
-           }
-           break;
-
-
-    case '+':
-        case '?':
-          if ((syntax & RE_BK_PLUS_QM)
-              || (syntax & RE_LIMITED_OPS))
-            goto normal_char;
-        handle_plus:
-        case '*':
-          /* If there is no previous pattern... */
-          if (!laststart)
-            {
-              if (syntax & RE_CONTEXT_INVALID_OPS)
-                return REG_BADRPT;
-              else if (!(syntax & RE_CONTEXT_INDEP_OPS))
-                goto normal_char;
-            }
-
-          {
-            /* Are we optimizing this jump?  */
-            boolean keep_string_p = false;
-
-            /* 1 means zero (many) matches is allowed.  */
-            char zero_times_ok = 0, many_times_ok = 0;
-
-            /* If there is a sequence of repetition chars, collapse it
-               down to just one (the right one).  We can't combine
-               interval operators with these because of, e.g., `a{2}*',
-               which should only match an even number of `a's.  */
-
-            for (;;)
-              {
-                zero_times_ok |= c != '+';
-                many_times_ok |= c != '?';
-
-                if (p == pend)
-                  break;
-
-                PATFETCH (c);
-
-                if (c == '*'
-                    || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?')))
-                  ;
-
-                else if (syntax & RE_BK_PLUS_QM  &&  c == '\\')
-                  {
-                    if (p == pend) return REG_EESCAPE;
-
-                    PATFETCH (c1);
-                    if (!(c1 == '+' || c1 == '?'))
-                      {
-                        PATUNFETCH;
-                        PATUNFETCH;
-                        break;
-                      }
-
-                    c = c1;
-                  }
-                else
-                  {
-                    PATUNFETCH;
-                    break;
-                  }
-
-                /* If we get here, we found another repeat character.  */
-               }
-
-            /* Star, etc. applied to an empty pattern is equivalent
-               to an empty pattern.  */
-            if (!laststart)
-              break;
-
-            /* Now we know whether or not zero matches is allowed
-               and also whether or not two or more matches is allowed.  */
-            if (many_times_ok)
-              { /* More than one repetition is allowed, so put in at the
-                   end a backward relative jump from `b' to before the next
-                   jump we're going to put in below (which jumps from
-                   laststart to after this jump).
-
-                   But if we are at the `*' in the exact sequence `.*\n',
-                   insert an unconditional jump backwards to the .,
-                   instead of the beginning of the loop.  This way we only
-                   push a failure point once, instead of every time
-                   through the loop.  */
-                assert (p - 1 > pattern);
-
-                /* Allocate the space for the jump.  */
-                GET_BUFFER_SPACE (3);
-
-                /* We know we are not at the first character of the pattern,
-                   because laststart was nonzero.  And we've already
-                   incremented `p', by the way, to be the character after
-                   the `*'.  Do we have to do something analogous here
-                   for null bytes, because of RE_DOT_NOT_NULL?  */
-                if (TRANSLATE (*(p - 2)) == TRANSLATE ('.')
-            && zero_times_ok
-                    && p < pend && TRANSLATE (*p) == TRANSLATE ('\n')
-                    && !(syntax & RE_DOT_NEWLINE))
-                  { /* We have .*\n.  */
-                    STORE_JUMP (jump, b, laststart);
-                    keep_string_p = true;
-                  }
-                else
-                  /* Anything else.  */
-                  STORE_JUMP (maybe_pop_jump, b, laststart - 3);
-
-                /* We've added more stuff to the buffer.  */
-                b += 3;
-              }
-
-            /* On failure, jump from laststart to b + 3, which will be the
-               end of the buffer after this jump is inserted.  */
-            GET_BUFFER_SPACE (3);
-            INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump
-                                       : on_failure_jump,
-                         laststart, b + 3);
-            pending_exact = 0;
-            b += 3;
-
-            if (!zero_times_ok)
-              {
-                /* At least one repetition is required, so insert a
-                   `dummy_failure_jump' before the initial
-                   `on_failure_jump' instruction of the loop. This
-                   effects a skip over that instruction the first time
-                   we hit that loop.  */
-                GET_BUFFER_SPACE (3);
-                INSERT_JUMP (dummy_failure_jump, laststart, laststart + 6);
-                b += 3;
-              }
-            }
-      break;
-
-
-    case '.':
-          laststart = b;
-          BUF_PUSH (anychar);
-          break;
-
-
-        case '[':
-          {
-            boolean had_char_class = false;
-
-            if (p == pend) return REG_EBRACK;
-
-            /* Ensure that we have enough space to push a charset: the
-               opcode, the length count, and the bitset; 34 bytes in all.  */
-        GET_BUFFER_SPACE (34);
-
-            laststart = b;
-
-            /* We test `*p == '^' twice, instead of using an if
-               statement, so we only need one BUF_PUSH.  */
-            BUF_PUSH (*p == '^' ? charset_not : charset);
-            if (*p == '^')
-              p++;
-
-            /* Remember the first position in the bracket expression.  */
-            p1 = p;
-
-            /* Push the number of bytes in the bitmap.  */
-            BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH);
-
-            /* Clear the whole map.  */
-            bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH);
-
-            /* charset_not matches newline according to a syntax bit.  */
-            if ((re_opcode_t) b[-2] == charset_not
-                && (syntax & RE_HAT_LISTS_NOT_NEWLINE))
-              SET_LIST_BIT ('\n');
-
-            /* Read in characters and ranges, setting map bits.  */
-            for (;;)
-              {
-                if (p == pend) return REG_EBRACK;
-
-                PATFETCH (c);
-
-                /* \ might escape characters inside [...] and [^...].  */
-                if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\')
-                  {
-                    if (p == pend) return REG_EESCAPE;
-
-                    PATFETCH (c1);
-                    SET_LIST_BIT (c1);
-                    continue;
-                  }
-
-                /* Could be the end of the bracket expression.  If it's
-                   not (i.e., when the bracket expression is `[]' so
-                   far), the ']' character bit gets set way below.  */
-                if (c == ']' && p != p1 + 1)
-                  break;
-
-                /* Look ahead to see if it's a range when the last thing
-                   was a character class.  */
-                if (had_char_class && c == '-' && *p != ']')
-                  return REG_ERANGE;
-
-                /* Look ahead to see if it's a range when the last thing
-                   was a character: if this is a hyphen not at the
-                   beginning or the end of a list, then it's the range
-                   operator.  */
-                if (c == '-'
-                    && !(p - 2 >= pattern && p[-2] == '[')
-                    && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^')
-                    && *p != ']')
-                  {
-                    reg_errcode_t ret
-                      = compile_range (&p, pend, translate, syntax, b);
-                    if (ret != REG_NOERROR) return ret;
-                  }
-
-                else if (p[0] == '-' && p[1] != ']')
-                  { /* This handles ranges made up of characters only.  */
-                    reg_errcode_t ret;
-
-            /* Move past the `-'.  */
-                    PATFETCH (c1);
-
-                    ret = compile_range (&p, pend, translate, syntax, b);
-                    if (ret != REG_NOERROR) return ret;
-                  }
-
-                /* See if we're at the beginning of a possible character
-                   class.  */
-
-                else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':')
-                  { /* Leave room for the null.  */
-                    char str[CHAR_CLASS_MAX_LENGTH + 1];
-
-                    PATFETCH (c);
-                    c1 = 0;
-
-                    /* If pattern is `[[:'.  */
-                    if (p == pend) return REG_EBRACK;
-
-                    for (;;)
-                      {
-                        PATFETCH (c);
-                        if (c == ':' || c == ']' || p == pend
-                            || c1 == CHAR_CLASS_MAX_LENGTH)
-                          break;
-                        str[c1++] = c;
-                      }
-                    str[c1] = '\0';
-
-                    /* If isn't a word bracketed by `[:' and:`]':
-                       undo the ending character, the letters, and leave
-                       the leading `:' and `[' (but set bits for them).  */
-                    if (c == ':' && *p == ']')
-                      {
-                        int ch;
-                        boolean is_alnum = STREQ (str, "alnum");
-                        boolean is_alpha = STREQ (str, "alpha");
-                        boolean is_blank = STREQ (str, "blank");
-                        boolean is_cntrl = STREQ (str, "cntrl");
-                        boolean is_digit = STREQ (str, "digit");
-                        boolean is_graph = STREQ (str, "graph");
-                        boolean is_lower = STREQ (str, "lower");
-                        boolean is_print = STREQ (str, "print");
-                        boolean is_punct = STREQ (str, "punct");
-                        boolean is_space = STREQ (str, "space");
-                        boolean is_upper = STREQ (str, "upper");
-                        boolean is_xdigit = STREQ (str, "xdigit");
-
-                        if (!IS_CHAR_CLASS (str)) return REG_ECTYPE;
-
-                        /* Throw away the ] at the end of the character
-                           class.  */
-                        PATFETCH (c);
-
-                        if (p == pend) return REG_EBRACK;
-
-                        for (ch = 0; ch < 1 << BYTEWIDTH; ch++)
-                          {
-                            if (   (is_alnum  && ISALNUM (ch))
-                                || (is_alpha  && ISALPHA (ch))
-                                || (is_blank  && ISBLANK (ch))
-                                || (is_cntrl  && ISCNTRL (ch))
-                                || (is_digit  && ISDIGIT (ch))
-                                || (is_graph  && ISGRAPH (ch))
-                                || (is_lower  && ISLOWER (ch))
-                                || (is_print  && ISPRINT (ch))
-                                || (is_punct  && ISPUNCT (ch))
-                                || (is_space  && ISSPACE (ch))
-                                || (is_upper  && ISUPPER (ch))
-                                || (is_xdigit && ISXDIGIT (ch)))
-                            SET_LIST_BIT (ch);
-                          }
-                        had_char_class = true;
-                      }
-                    else
-                      {
-                        c1++;
-                        while (c1--)
-                          PATUNFETCH;
-                        SET_LIST_BIT ('[');
-                        SET_LIST_BIT (':');
-                        had_char_class = false;
-                      }
-                  }
-                else
-                  {
-                    had_char_class = false;
-                    SET_LIST_BIT (c);
-                  }
-              }
-
-            /* Discard any (non)matching list bytes that are all 0 at the
-               end of the map.  Decrease the map-length byte too.  */
-            while ((int) b[-1] > 0 && b[b[-1] - 1] == 0)
-              b[-1]--;
-            b += b[-1];
-          }
-          break;
-
-
-    case '(':
-          if (syntax & RE_NO_BK_PARENS)
-            goto handle_open;
-          else
-            goto normal_char;
-
-
-        case ')':
-          if (syntax & RE_NO_BK_PARENS)
-            goto handle_close;
-          else
-            goto normal_char;
-
-
-        case '\n':
-          if (syntax & RE_NEWLINE_ALT)
-            goto handle_alt;
-          else
-            goto normal_char;
-
-
-    case '|':
-          if (syntax & RE_NO_BK_VBAR)
-            goto handle_alt;
-          else
-            goto normal_char;
-
-
-        case '{':
-           if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES)
-             goto handle_interval;
-           else
-             goto normal_char;
-
-
-        case '\\':
-          if (p == pend) return REG_EESCAPE;
-
-          /* Do not translate the character after the \, so that we can
-             distinguish, e.g., \B from \b, even if we normally would
-             translate, e.g., B to b.  */
-          PATFETCH_RAW (c);
-
-          switch (c)
-            {
-            case '(':
-              if (syntax & RE_NO_BK_PARENS)
-                goto normal_backslash;
-
-            handle_open:
-              bufp->re_nsub++;
-              regnum++;
-
-              if (COMPILE_STACK_FULL)
-                {
-                  RETALLOC (compile_stack.stack, compile_stack.size << 1,
-                            compile_stack_elt_t);
-                  if (compile_stack.stack == NULL) return REG_ESPACE;
-
-                  compile_stack.size <<= 1;
-                }
-
-              /* These are the values to restore when we hit end of this
-                 group.  They are all relative offsets, so that if the
-                 whole pattern moves because of realloc, they will still
-                 be valid.  */
-              COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer;
-              COMPILE_STACK_TOP.fixup_alt_jump
-                = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0;
-              COMPILE_STACK_TOP.laststart_offset = b - bufp->buffer;
-              COMPILE_STACK_TOP.regnum = regnum;
-
-              /* We will eventually replace the 0 with the number of
-                 groups inner to this one.  But do not push a
-                 start_memory for groups beyond the last one we can
-                 represent in the compiled pattern.  */
-              if (regnum <= MAX_REGNUM)
-                {
-                  COMPILE_STACK_TOP.inner_group_offset = b - bufp->buffer + 2;
-                  BUF_PUSH_3 (start_memory, regnum, 0);
-                }
-
-              compile_stack.avail++;
-
-              fixup_alt_jump = 0;
-              laststart = 0;
-              begalt = b;
-          /* If we've reached MAX_REGNUM groups, then this open
-         won't actually generate any code, so we'll have to
-         clear pending_exact explicitly.  */
-          pending_exact = 0;
-              break;
-
-
-            case ')':
-              if (syntax & RE_NO_BK_PARENS) goto normal_backslash;
-
-              if (COMPILE_STACK_EMPTY)
-                if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
-                  goto normal_backslash;
-                else
-                  return REG_ERPAREN;
-
-            handle_close:
-              if (fixup_alt_jump)
-                { /* Push a dummy failure point at the end of the
-                     alternative for a possible future
-                     `pop_failure_jump' to pop.  See comments at
-                     `push_dummy_failure' in `re_match_2'.  */
-                  BUF_PUSH (push_dummy_failure);
-
-                  /* We allocated space for this jump when we assigned
-                     to `fixup_alt_jump', in the `handle_alt' case below.  */
-                  STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1);
-                }
-
-              /* See similar code for backslashed left paren above.  */
-              if (COMPILE_STACK_EMPTY)
-                if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
-                  goto normal_char;
-                else
-                  return REG_ERPAREN;
-
-              /* Since we just checked for an empty stack above, this
-                 ``can't happen''.  */
-              assert (compile_stack.avail != 0);
-              {
-                /* We don't just want to restore into `regnum', because
-                   later groups should continue to be numbered higher,
-                   as in `(ab)c(de)' -- the second group is #2.  */
-                regnum_t this_group_regnum;
-
-                compile_stack.avail--;
-                begalt = bufp->buffer + COMPILE_STACK_TOP.begalt_offset;
-                fixup_alt_jump
-                  = COMPILE_STACK_TOP.fixup_alt_jump
-                    ? bufp->buffer + COMPILE_STACK_TOP.fixup_alt_jump - 1
-                    : 0;
-                laststart = bufp->buffer + COMPILE_STACK_TOP.laststart_offset;
-                this_group_regnum = COMPILE_STACK_TOP.regnum;
-        /* If we've reached MAX_REGNUM groups, then this open
-           won't actually generate any code, so we'll have to
-           clear pending_exact explicitly.  */
-        pending_exact = 0;
-
-                /* We're at the end of the group, so now we know how many
-                   groups were inside this one.  */
-                if (this_group_regnum <= MAX_REGNUM)
-                  {
-                    unsigned char *inner_group_loc
-                      = bufp->buffer + COMPILE_STACK_TOP.inner_group_offset;
-
-                    *inner_group_loc = regnum - this_group_regnum;
-                    BUF_PUSH_3 (stop_memory, this_group_regnum,
-                                regnum - this_group_regnum);
-                  }
-              }
-              break;
-
-
-            case '|':					/* `\|'.  */
-              if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR)
-                goto normal_backslash;
-            handle_alt:
-              if (syntax & RE_LIMITED_OPS)
-                goto normal_char;
-
-              /* Insert before the previous alternative a jump which
-                 jumps to this alternative if the former fails.  */
-              GET_BUFFER_SPACE (3);
-              INSERT_JUMP (on_failure_jump, begalt, b + 6);
-              pending_exact = 0;
-              b += 3;
-
-              /* The alternative before this one has a jump after it
-                 which gets executed if it gets matched.  Adjust that
-                 jump so it will jump to this alternative's analogous
-                 jump (put in below, which in turn will jump to the next
-                 (if any) alternative's such jump, etc.).  The last such
-                 jump jumps to the correct final destination.  A picture:
-                          _____ _____
-                          |   | |   |
-                          |   v |   v
-                         a | b   | c
-
-                 If we are at `b', then fixup_alt_jump right now points to a
-                 three-byte space after `a'.  We'll put in the jump, set
-                 fixup_alt_jump to right after `b', and leave behind three
-                 bytes which we'll fill in when we get to after `c'.  */
-
-              if (fixup_alt_jump)
-                STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
-
-              /* Mark and leave space for a jump after this alternative,
-                 to be filled in later either by next alternative or
-                 when know we're at the end of a series of alternatives.  */
-              fixup_alt_jump = b;
-              GET_BUFFER_SPACE (3);
-              b += 3;
-
-              laststart = 0;
-              begalt = b;
-              break;
-
-
-            case '{':
-              /* If \{ is a literal.  */
-              if (!(syntax & RE_INTERVALS)
-                     /* If we're at `\{' and it's not the open-interval
-                        operator.  */
-                  || ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
-                  || (p - 2 == pattern  &&  p == pend))
-                goto normal_backslash;
-
-            handle_interval:
-              {
-                /* If got here, then the syntax allows intervals.  */
-
-                /* At least (most) this many matches must be made.  */
-                int lower_bound = -1, upper_bound = -1;
-
-                beg_interval = p - 1;
-
-                if (p == pend)
-                  {
-                    if (syntax & RE_NO_BK_BRACES)
-                      goto unfetch_interval;
-                    else
-                      return REG_EBRACE;
-                  }
-
-                GET_UNSIGNED_NUMBER (lower_bound);
-
-                if (c == ',')
-                  {
-                    GET_UNSIGNED_NUMBER (upper_bound);
-                    if (upper_bound < 0) upper_bound = RE_DUP_MAX;
-                  }
-                else
-                  /* Interval such as `{1}' => match exactly once. */
-                  upper_bound = lower_bound;
-
-                if (lower_bound < 0 || upper_bound > RE_DUP_MAX
-                    || lower_bound > upper_bound)
-                  {
-                    if (syntax & RE_NO_BK_BRACES)
-                      goto unfetch_interval;
-                    else
-                      return REG_BADBR;
-                  }
-
-                if (!(syntax & RE_NO_BK_BRACES))
-                  {
-                    if (c != '\\') return REG_EBRACE;
-
-                    PATFETCH (c);
-                  }
-
-                if (c != '}')
-                  {
-                    if (syntax & RE_NO_BK_BRACES)
-                      goto unfetch_interval;
-                    else
-                      return REG_BADBR;
-                  }
-
-                /* We just parsed a valid interval.  */
-
-                /* If it's invalid to have no preceding re.  */
-                if (!laststart)
-                  {
-                    if (syntax & RE_CONTEXT_INVALID_OPS)
-                      return REG_BADRPT;
-                    else if (syntax & RE_CONTEXT_INDEP_OPS)
-                      laststart = b;
-                    else
-                      goto unfetch_interval;
-                  }
-
-                /* If the upper bound is zero, don't want to succeed at
-                   all; jump from `laststart' to `b + 3', which will be
-                   the end of the buffer after we insert the jump.  */
-                 if (upper_bound == 0)
-                   {
-                     GET_BUFFER_SPACE (3);
-                     INSERT_JUMP (jump, laststart, b + 3);
-                     b += 3;
-                   }
-
-                 /* Otherwise, we have a nontrivial interval.  When
-                    we're all done, the pattern will look like:
-                      set_number_at <jump count> <upper bound>
-                      set_number_at <succeed_n count> <lower bound>
-                      succeed_n <after jump addr> <succed_n count>
-                      <body of loop>
-                      jump_n <succeed_n addr> <jump count>
-                    (The upper bound and `jump_n' are omitted if
-                    `upper_bound' is 1, though.)  */
-                 else
-                   { /* If the upper bound is > 1, we need to insert
-                        more at the end of the loop.  */
-                     unsigned nbytes = 10 + (upper_bound > 1) * 10;
-
-                     GET_BUFFER_SPACE (nbytes);
-
-                     /* Initialize lower bound of the `succeed_n', even
-                        though it will be set during matching by its
-                        attendant `set_number_at' (inserted next),
-                        because `re_compile_fastmap' needs to know.
-                        Jump to the `jump_n' we might insert below.  */
-                     INSERT_JUMP2 (succeed_n, laststart,
-                                   b + 5 + (upper_bound > 1) * 5,
-                                   lower_bound);
-                     b += 5;
-
-                     /* Code to initialize the lower bound.  Insert
-                        before the `succeed_n'.  The `5' is the last two
-                        bytes of this `set_number_at', plus 3 bytes of
-                        the following `succeed_n'.  */
-                     insert_op2 (set_number_at, laststart, 5, lower_bound, b);
-                     b += 5;
-
-                     if (upper_bound > 1)
-                       { /* More than one repetition is allowed, so
-                            append a backward jump to the `succeed_n'
-                            that starts this interval.
-
-                            When we've reached this during matching,
-                            we'll have matched the interval once, so
-                            jump back only `upper_bound - 1' times.  */
-                         STORE_JUMP2 (jump_n, b, laststart + 5,
-                                      upper_bound - 1);
-                         b += 5;
-
-                         /* The location we want to set is the second
-                            parameter of the `jump_n'; that is `b-2' as
-                            an absolute address.  `laststart' will be
-                            the `set_number_at' we're about to insert;
-                            `laststart+3' the number to set, the source
-                            for the relative address.  But we are
-                            inserting into the middle of the pattern --
-                            so everything is getting moved up by 5.
-                            Conclusion: (b - 2) - (laststart + 3) + 5,
-                            i.e., b - laststart.
-
-                            We insert this at the beginning of the loop
-                            so that if we fail during matching, we'll
-                            reinitialize the bounds.  */
-                         insert_op2 (set_number_at, laststart, b - laststart,
-                                     upper_bound - 1, b);
-                         b += 5;
-                       }
-                   }
-                pending_exact = 0;
-                beg_interval = NULL;
-              }
-              break;
-
-            unfetch_interval:
-              /* If an invalid interval, match the characters as literals.  */
-               assert (beg_interval);
-               p = beg_interval;
-               beg_interval = NULL;
-
-               /* normal_char and normal_backslash need `c'.  */
-               PATFETCH (c);
-
-               if (!(syntax & RE_NO_BK_BRACES))
-                 {
-                   if (p > pattern  &&  p[-1] == '\\')
-                     goto normal_backslash;
-                 }
-               goto normal_char;
-
-#ifdef emacs
-            /* There is no way to specify the before_dot and after_dot
-               operators.  rms says this is ok.  --karl  */
-            case '=':
-              BUF_PUSH (at_dot);
-              break;
-
-            case 's':
-              laststart = b;
-              PATFETCH (c);
-              BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]);
-              break;
-
-            case 'S':
-              laststart = b;
-              PATFETCH (c);
-              BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]);
-              break;
-#endif /* emacs */
-
-
-            case 'w':
-              laststart = b;
-              BUF_PUSH (wordchar);
-              break;
-
-
-            case 'W':
-              laststart = b;
-              BUF_PUSH (notwordchar);
-              break;
-
-
-            case '<':
-              BUF_PUSH (wordbeg);
-              break;
-
-            case '>':
-              BUF_PUSH (wordend);
-              break;
-
-            case 'b':
-              BUF_PUSH (wordbound);
-              break;
-
-            case 'B':
-              BUF_PUSH (notwordbound);
-              break;
-
-            case '`':
-              BUF_PUSH (begbuf);
-              break;
-
-            case '\'':
-              BUF_PUSH (endbuf);
-              break;
-
-            case '1': case '2': case '3': case '4': case '5':
-            case '6': case '7': case '8': case '9':
-              if (syntax & RE_NO_BK_REFS)
-                goto normal_char;
-
-              c1 = c - '0';
-
-              if (c1 > regnum)
-                return REG_ESUBREG;
-
-              /* Can't back reference to a subexpression if inside of it.  */
-              if (group_in_compile_stack (compile_stack, c1))
-                goto normal_char;
-
-              laststart = b;
-              BUF_PUSH_2 (duplicate, c1);
-              break;
-
-
-            case '+':
-            case '?':
-              if (syntax & RE_BK_PLUS_QM)
-                goto handle_plus;
-              else
-                goto normal_backslash;
-
-            default:
-            normal_backslash:
-              /* You might think it would be useful for \ to mean
-                 not to translate; but if we don't translate it
-                 it will never match anything.  */
-              c = TRANSLATE (c);
-              goto normal_char;
-            }
-          break;
-
-
-    default:
-        /* Expects the character in `c'.  */
-    normal_char:
-          /* If no exactn currently being built.  */
-          if (!pending_exact
-
-              /* If last exactn not at current position.  */
-              || pending_exact + *pending_exact + 1 != b
-
-              /* We have only one byte following the exactn for the count.  */
-          || *pending_exact == (1 << BYTEWIDTH) - 1
-
-              /* If followed by a repetition operator.  */
-              || *p == '*' || *p == '^'
-          || ((syntax & RE_BK_PLUS_QM)
-          ? *p == '\\' && (p[1] == '+' || p[1] == '?')
-          : (*p == '+' || *p == '?'))
-          || ((syntax & RE_INTERVALS)
-                  && ((syntax & RE_NO_BK_BRACES)
-              ? *p == '{'
-                      : (p[0] == '\\' && p[1] == '{'))))
-        {
-          /* Start building a new exactn.  */
-
-              laststart = b;
-
-          BUF_PUSH_2 (exactn, 0);
-          pending_exact = b - 1;
-            }
-
-      BUF_PUSH (c);
-          (*pending_exact)++;
-      break;
-        } /* switch (c) */
-    } /* while p != pend */
-
-
-  /* Through the pattern now.  */
-
-  if (fixup_alt_jump)
-    STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
-
-  if (!COMPILE_STACK_EMPTY)
-    return REG_EPAREN;
-
-  free (compile_stack.stack);
-
-  /* We have succeeded; set the length of the buffer.  */
-  bufp->used = b - bufp->buffer;
-
-#ifdef DEBUG
-  if (debug)
-    {
-      DEBUG_PRINT1 ("\nCompiled pattern: ");
-      print_compiled_pattern (bufp);
-    }
-#endif /* DEBUG */
-
-  return REG_NOERROR;
-} /* regex_compile */
-
-/* Subroutines for `regex_compile'.  */
-
-/* Store OP at LOC followed by two-byte integer parameter ARG.  */
-
-static void
-store_op1 (op, loc, arg)
-    re_opcode_t op;
-    unsigned char *loc;
-    int arg;
-{
-  *loc = (unsigned char) op;
-  STORE_NUMBER (loc + 1, arg);
-}
-
-
-/* Like `store_op1', but for two two-byte parameters ARG1 and ARG2.  */
-
-static void
-store_op2 (op, loc, arg1, arg2)
-    re_opcode_t op;
-    unsigned char *loc;
-    int arg1, arg2;
-{
-  *loc = (unsigned char) op;
-  STORE_NUMBER (loc + 1, arg1);
-  STORE_NUMBER (loc + 3, arg2);
-}
-
-
-/* Copy the bytes from LOC to END to open up three bytes of space at LOC
-   for OP followed by two-byte integer parameter ARG.  */
-
-static void
-insert_op1 (op, loc, arg, end)
-    re_opcode_t op;
-    unsigned char *loc;
-    int arg;
-    unsigned char *end;
-{
-  register unsigned char *pfrom = end;
-  register unsigned char *pto = end + 3;
-
-  while (pfrom != loc)
-    *--pto = *--pfrom;
-
-  store_op1 (op, loc, arg);
-}
-
-
-/* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2.  */
-
-static void
-insert_op2 (op, loc, arg1, arg2, end)
-    re_opcode_t op;
-    unsigned char *loc;
-    int arg1, arg2;
-    unsigned char *end;
-{
-  register unsigned char *pfrom = end;
-  register unsigned char *pto = end + 5;
-
-  while (pfrom != loc)
-    *--pto = *--pfrom;
-
-  store_op2 (op, loc, arg1, arg2);
-}
-
-
-/* P points to just after a ^ in PATTERN.  Return true if that ^ comes
-   after an alternative or a begin-subexpression.  We assume there is at
-   least one character before the ^.  */
-
-static boolean
-at_begline_loc_p (pattern, p, syntax)
-    const char *pattern, *p;
-    reg_syntax_t syntax;
-{
-  const char *prev = p - 2;
-  boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
-
-  return
-       /* After a subexpression?  */
-       (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
-       /* After an alternative?  */
-    || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash));
-}
-
-
-/* The dual of at_begline_loc_p.  This one is for $.  We assume there is
-   at least one character after the $, i.e., `P < PEND'.  */
-
-static boolean
-at_endline_loc_p (p, pend, syntax)
-    const char *p, *pend;
-    int syntax;
-{
-  const char *next = p;
-  boolean next_backslash = *next == '\\';
-  const char *next_next = p + 1 < pend ? p + 1 : NULL;
-
-  return
-       /* Before a subexpression?  */
-       (syntax & RE_NO_BK_PARENS ? *next == ')'
-        : next_backslash && next_next && *next_next == ')')
-       /* Before an alternative?  */
-    || (syntax & RE_NO_BK_VBAR ? *next == '|'
-        : next_backslash && next_next && *next_next == '|');
-}
-
-
-/* Returns true if REGNUM is in one of COMPILE_STACK's elements and
-   false if it's not.  */
-
-static boolean
-group_in_compile_stack (compile_stack, regnum)
-    compile_stack_type compile_stack;
-    regnum_t regnum;
-{
-  int this_element;
-
-  for (this_element = compile_stack.avail - 1;
-       this_element >= 0;
-       this_element--)
-    if (compile_stack.stack[this_element].regnum == regnum)
-      return true;
-
-  return false;
-}
-
-
-/* Read the ending character of a range (in a bracket expression) from the
-   uncompiled pattern *P_PTR (which ends at PEND).  We assume the
-   starting character is in `P[-2]'.  (`P[-1]' is the character `-'.)
-   Then we set the translation of all bits between the starting and
-   ending characters (inclusive) in the compiled pattern B.
-
-   Return an error code.
-
-   We use these short variable names so we can use the same macros as
-   `regex_compile' itself.  */
-
-static reg_errcode_t
-compile_range (p_ptr, pend, translate, syntax, b)
-    const char **p_ptr, *pend;
-    char *translate;
-    reg_syntax_t syntax;
-    unsigned char *b;
-{
-  unsigned this_char;
-
-  const char *p = *p_ptr;
-  int range_start, range_end;
-
-  if (p == pend)
-    return REG_ERANGE;
-
-  /* Even though the pattern is a signed `char *', we need to fetch
-     with unsigned char *'s; if the high bit of the pattern character
-     is set, the range endpoints will be negative if we fetch using a
-     signed char *.
-
-     We also want to fetch the endpoints without translating them; the
-     appropriate translation is done in the bit-setting loop below.  */
-  range_start = ((unsigned char *) p)[-2];
-  range_end   = ((unsigned char *) p)[0];
-
-  /* Have to increment the pointer into the pattern string, so the
-     caller isn't still at the ending character.  */
-  (*p_ptr)++;
-
-  /* If the start is after the end, the range is empty.  */
-  if (range_start > range_end)
-    return syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR;
-
-  /* Here we see why `this_char' has to be larger than an `unsigned
-     char' -- the range is inclusive, so if `range_end' == 0xff
-     (assuming 8-bit characters), we would otherwise go into an infinite
-     loop, since all characters <= 0xff.  */
-  for (this_char = range_start; this_char <= range_end; this_char++)
-    {
-      SET_LIST_BIT (TRANSLATE (this_char));
-    }
-
-  return REG_NOERROR;
-}
-
-/* Failure stack declarations and macros; both re_compile_fastmap and
-   re_match_2 use a failure stack.  These have to be macros because of
-   REGEX_ALLOCATE.  */
-
-
-/* Number of failure points for which to initially allocate space
-   when matching.  If this number is exceeded, we allocate more
-   space, so it is not a hard limit.  */
-#ifndef INIT_FAILURE_ALLOC
-#define INIT_FAILURE_ALLOC 5
-#endif
-
-/* Roughly the maximum number of failure points on the stack.  Would be
-   exactly that if always used MAX_FAILURE_SPACE each time we failed.
-   This is a variable only so users of regex can assign to it; we never
-   change it ourselves.  */
-int re_max_failures = 2000;
-
-typedef const unsigned char *fail_stack_elt_t;
-
-typedef struct
-{
-  fail_stack_elt_t *stack;
-  unsigned size;
-  unsigned avail;			/* Offset of next open position.  */
-} fail_stack_type;
-
-#define FAIL_STACK_EMPTY()     (fail_stack.avail == 0)
-#define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0)
-#define FAIL_STACK_FULL()      (fail_stack.avail == fail_stack.size)
-#define FAIL_STACK_TOP()       (fail_stack.stack[fail_stack.avail])
-
-
-/* Initialize `fail_stack'.  Do `return -2' if the alloc fails.  */
-
-#define INIT_FAIL_STACK()						\
-  do {									\
-    fail_stack.stack = (fail_stack_elt_t *)				\
-      REGEX_ALLOCATE (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t));	\
-                                    \
-    if (fail_stack.stack == NULL)					\
-      return -2;							\
-                                    \
-    fail_stack.size = INIT_FAILURE_ALLOC;				\
-    fail_stack.avail = 0;						\
-  } while (0)
-
-
-/* Double the size of FAIL_STACK, up to approximately `re_max_failures' items.
-
-   Return 1 if succeeds, and 0 if either ran out of memory
-   allocating space for it or it was already too large.
-
-   REGEX_REALLOCATE requires `destination' be declared.   */
-
-#define DOUBLE_FAIL_STACK(fail_stack)					\
-  ((fail_stack).size > re_max_failures * MAX_FAILURE_ITEMS		\
-   ? 0									\
-   : ((fail_stack).stack = (fail_stack_elt_t *)				\
-        REGEX_REALLOCATE ((fail_stack).stack, 				\
-          (fail_stack).size * sizeof (fail_stack_elt_t),		\
-          ((fail_stack).size << 1) * sizeof (fail_stack_elt_t)),	\
-                                    \
-      (fail_stack).stack == NULL					\
-      ? 0								\
-      : ((fail_stack).size <<= 1, 					\
-         1)))
-
-
-/* Push PATTERN_OP on FAIL_STACK.
-
-   Return 1 if was able to do so and 0 if ran out of memory allocating
-   space to do so.  */
-#define PUSH_PATTERN_OP(pattern_op, fail_stack)				\
-  ((FAIL_STACK_FULL ()							\
-    && !DOUBLE_FAIL_STACK (fail_stack))					\
-    ? 0									\
-    : ((fail_stack).stack[(fail_stack).avail++] = pattern_op,		\
-       1))
-
-/* This pushes an item onto the failure stack.  Must be a four-byte
-   value.  Assumes the variable `fail_stack'.  Probably should only
-   be called from within `PUSH_FAILURE_POINT'.  */
-#define PUSH_FAILURE_ITEM(item)						\
-  fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item
-
-/* The complement operation.  Assumes `fail_stack' is nonempty.  */
-#define POP_FAILURE_ITEM() fail_stack.stack[--fail_stack.avail]
-
-/* Used to omit pushing failure point id's when we're not debugging.  */
-#ifdef DEBUG
-#define DEBUG_PUSH PUSH_FAILURE_ITEM
-#define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_ITEM ()
-#else
-#define DEBUG_PUSH(item)
-#define DEBUG_POP(item_addr)
-#endif
-
-
-/* Push the information about the state we will need
-   if we ever fail back to it.
-
-   Requires variables fail_stack, regstart, regend, reg_info, and
-   num_regs be declared.  DOUBLE_FAIL_STACK requires `destination' be
-   declared.
-
-   Does `return FAILURE_CODE' if runs out of memory.  */
-
-#define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code)	\
-  do {									\
-    char *destination;							\
-    /* Must be int, so when we don't save any registers, the arithmetic	\
-       of 0 + -1 isn't done as unsigned.  */				\
-    int this_reg;							\
-                                        \
-    DEBUG_STATEMENT (failure_id++);					\
-    DEBUG_STATEMENT (nfailure_points_pushed++);				\
-    DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id);		\
-    DEBUG_PRINT2 ("  Before push, next avail: %d\n", (fail_stack).avail);\
-    DEBUG_PRINT2 ("                     size: %d\n", (fail_stack).size);\
-                                    \
-    DEBUG_PRINT2 ("  slots needed: %d\n", NUM_FAILURE_ITEMS);		\
-    DEBUG_PRINT2 ("     available: %d\n", REMAINING_AVAIL_SLOTS);	\
-                                    \
-    /* Ensure we have enough space allocated for what we will push.  */	\
-    while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS)			\
-      {									\
-        if (!DOUBLE_FAIL_STACK (fail_stack))			\
-          return failure_code;						\
-                                    \
-        DEBUG_PRINT2 ("\n  Doubled stack; size now: %d\n",		\
-               (fail_stack).size);				\
-        DEBUG_PRINT2 ("  slots available: %d\n", REMAINING_AVAIL_SLOTS);\
-      }									\
-                                    \
-    /* Push the info, starting with the registers.  */			\
-    DEBUG_PRINT1 ("\n");						\
-                                    \
-    for (this_reg = lowest_active_reg; this_reg <= highest_active_reg;	\
-         this_reg++)							\
-      {									\
-    DEBUG_PRINT2 ("  Pushing reg: %d\n", this_reg);			\
-        DEBUG_STATEMENT (num_regs_pushed++);				\
-                                    \
-    DEBUG_PRINT2 ("    start: 0x%x\n", regstart[this_reg]);		\
-        PUSH_FAILURE_ITEM (regstart[this_reg]);				\
-                                                                        \
-    DEBUG_PRINT2 ("    end: 0x%x\n", regend[this_reg]);		\
-        PUSH_FAILURE_ITEM (regend[this_reg]);				\
-                                    \
-    DEBUG_PRINT2 ("    info: 0x%x\n      ", reg_info[this_reg]);	\
-        DEBUG_PRINT2 (" match_null=%d",					\
-                      REG_MATCH_NULL_STRING_P (reg_info[this_reg]));	\
-        DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg]));	\
-        DEBUG_PRINT2 (" matched_something=%d",				\
-                      MATCHED_SOMETHING (reg_info[this_reg]));		\
-        DEBUG_PRINT2 (" ever_matched=%d",				\
-                      EVER_MATCHED_SOMETHING (reg_info[this_reg]));	\
-    DEBUG_PRINT1 ("\n");						\
-        PUSH_FAILURE_ITEM (reg_info[this_reg].word);			\
-      }									\
-                                    \
-    DEBUG_PRINT2 ("  Pushing  low active reg: %d\n", lowest_active_reg);\
-    PUSH_FAILURE_ITEM (lowest_active_reg);				\
-                                    \
-    DEBUG_PRINT2 ("  Pushing high active reg: %d\n", highest_active_reg);\
-    PUSH_FAILURE_ITEM (highest_active_reg);				\
-                                    \
-    DEBUG_PRINT2 ("  Pushing pattern 0x%x: ", pattern_place);		\
-    DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend);		\
-    PUSH_FAILURE_ITEM (pattern_place);					\
-                                    \
-    DEBUG_PRINT2 ("  Pushing string 0x%x: `", string_place);		\
-    DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2,   \
-                 size2);				\
-    DEBUG_PRINT1 ("'\n");						\
-    PUSH_FAILURE_ITEM (string_place);					\
-                                    \
-    DEBUG_PRINT2 ("  Pushing failure id: %u\n", failure_id);		\
-    DEBUG_PUSH (failure_id);						\
-  } while (0)
-
-/* This is the number of items that are pushed and popped on the stack
-   for each register.  */
-#define NUM_REG_ITEMS  3
-
-/* Individual items aside from the registers.  */
-#ifdef DEBUG
-#define NUM_NONREG_ITEMS 5 /* Includes failure point id.  */
-#else
-#define NUM_NONREG_ITEMS 4
-#endif
-
-/* We push at most this many items on the stack.  */
-#define MAX_FAILURE_ITEMS ((num_regs - 1) * NUM_REG_ITEMS + NUM_NONREG_ITEMS)
-
-/* We actually push this many items.  */
-#define NUM_FAILURE_ITEMS						\
-  ((highest_active_reg - lowest_active_reg + 1) * NUM_REG_ITEMS 	\
-    + NUM_NONREG_ITEMS)
-
-/* How many items can still be added to the stack without overflowing it.  */
-#define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail)
-
-
-/* Pops what PUSH_FAIL_STACK pushes.
-
-   We restore into the parameters, all of which should be lvalues:
-     STR -- the saved data position.
-     PAT -- the saved pattern position.
-     LOW_REG, HIGH_REG -- the highest and lowest active registers.
-     REGSTART, REGEND -- arrays of string positions.
-     REG_INFO -- array of information about each subexpression.
-
-   Also assumes the variables `fail_stack' and (if debugging), `bufp',
-   `pend', `string1', `size1', `string2', and `size2'.  */
-
-#define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\
-{									\
-  DEBUG_STATEMENT (fail_stack_elt_t failure_id;)			\
-  int this_reg;								\
-  const unsigned char *string_temp;					\
-                                    \
-  assert (!FAIL_STACK_EMPTY ());					\
-                                    \
-  /* Remove failure points and point to how many regs pushed.  */	\
-  DEBUG_PRINT1 ("POP_FAILURE_POINT:\n");				\
-  DEBUG_PRINT2 ("  Before pop, next avail: %d\n", fail_stack.avail);	\
-  DEBUG_PRINT2 ("                    size: %d\n", fail_stack.size);	\
-                                    \
-  assert (fail_stack.avail >= NUM_NONREG_ITEMS);			\
-                                    \
-  DEBUG_POP (&failure_id);						\
-  DEBUG_PRINT2 ("  Popping failure id: %u\n", failure_id);		\
-                                    \
-  /* If the saved string location is NULL, it came from an		\
-     on_failure_keep_string_jump opcode, and we want to throw away the	\
-     saved NULL, thus retaining our current position in the string.  */	\
-  string_temp = POP_FAILURE_ITEM ();					\
-  if (string_temp != NULL)						\
-    str = (const char *) string_temp;					\
-                                    \
-  DEBUG_PRINT2 ("  Popping string 0x%x: `", str);			\
-  DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2);	\
-  DEBUG_PRINT1 ("'\n");							\
-                                    \
-  pat = (unsigned char *) POP_FAILURE_ITEM ();				\
-  DEBUG_PRINT2 ("  Popping pattern 0x%x: ", pat);			\
-  DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend);			\
-                                    \
-  /* Restore register info.  */						\
-  high_reg = (unsigned) POP_FAILURE_ITEM ();				\
-  DEBUG_PRINT2 ("  Popping high active reg: %d\n", high_reg);		\
-                                    \
-  low_reg = (unsigned) POP_FAILURE_ITEM ();				\
-  DEBUG_PRINT2 ("  Popping  low active reg: %d\n", low_reg);		\
-                                    \
-  for (this_reg = high_reg; this_reg >= low_reg; this_reg--)		\
-    {									\
-      DEBUG_PRINT2 ("    Popping reg: %d\n", this_reg);			\
-                                    \
-      reg_info[this_reg].word = POP_FAILURE_ITEM ();			\
-      DEBUG_PRINT2 ("      info: 0x%x\n", reg_info[this_reg]);		\
-                                    \
-      regend[this_reg] = (const char *) POP_FAILURE_ITEM ();		\
-      DEBUG_PRINT2 ("      end: 0x%x\n", regend[this_reg]);		\
-                                    \
-      regstart[this_reg] = (const char *) POP_FAILURE_ITEM ();		\
-      DEBUG_PRINT2 ("      start: 0x%x\n", regstart[this_reg]);		\
-    }									\
-                                    \
-  DEBUG_STATEMENT (nfailure_points_popped++);				\
-} /* POP_FAILURE_POINT */
-
-/* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in
-   BUFP.  A fastmap records which of the (1 << BYTEWIDTH) possible
-   characters can start a string that matches the pattern.  This fastmap
-   is used by re_search to skip quickly over impossible starting points.
-
-   The caller must supply the address of a (1 << BYTEWIDTH)-byte data
-   area as BUFP->fastmap.
-
-   We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in
-   the pattern buffer.
-
-   Returns 0 if we succeed, -2 if an internal error.   */
-
-int
-re_compile_fastmap (bufp)
-     struct re_pattern_buffer *bufp;
-{
-  int j, k;
-  fail_stack_type fail_stack;
-#ifndef REGEX_MALLOC
-  char *destination;
-#endif
-  /* We don't push any register information onto the failure stack.  */
-  unsigned num_regs = 0;
-
-  register char *fastmap = bufp->fastmap;
-  unsigned char *pattern = bufp->buffer;
-  unsigned long size = bufp->used;
-  const unsigned char *p = pattern;
-  register unsigned char *pend = pattern + size;
-
-  /* Assume that each path through the pattern can be null until
-     proven otherwise.  We set this false at the bottom of switch
-     statement, to which we get only if a particular path doesn't
-     match the empty string.  */
-  boolean path_can_be_null = true;
-
-  /* We aren't doing a `succeed_n' to begin with.  */
-  boolean succeed_n_p = false;
-
-  assert (fastmap != NULL && p != NULL);
-
-  INIT_FAIL_STACK ();
-  bzero (fastmap, 1 << BYTEWIDTH);  /* Assume nothing's valid.  */
-  bufp->fastmap_accurate = 1;	    /* It will be when we're done.  */
-  bufp->can_be_null = 0;
-
-  while (p != pend || !FAIL_STACK_EMPTY ())
-    {
-      if (p == pend)
-        {
-          bufp->can_be_null |= path_can_be_null;
-
-          /* Reset for next path.  */
-          path_can_be_null = true;
-
-          p = fail_stack.stack[--fail_stack.avail];
-    }
-
-      /* We should never be about to go beyond the end of the pattern.  */
-      assert (p < pend);
-
-#ifdef SWITCH_ENUM_BUG
-      switch ((int) ((re_opcode_t) *p++))
-#else
-      switch ((re_opcode_t) *p++)
-#endif
-    {
-
-        /* I guess the idea here is to simply not bother with a fastmap
-           if a backreference is used, since it's too hard to figure out
-           the fastmap for the corresponding group.  Setting
-           `can_be_null' stops `re_search_2' from using the fastmap, so
-           that is all we do.  */
-    case duplicate:
-      bufp->can_be_null = 1;
-          return 0;
-
-
-      /* Following are the cases which match a character.  These end
-         with `break'.  */
-
-    case exactn:
-          fastmap[p[1]] = 1;
-      break;
-
-
-        case charset:
-          for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
-        if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))
-              fastmap[j] = 1;
-      break;
-
-
-    case charset_not:
-      /* Chars beyond end of map must be allowed.  */
-      for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)
-            fastmap[j] = 1;
-
-      for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
-        if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))))
-              fastmap[j] = 1;
-          break;
-
-
-    case wordchar:
-      for (j = 0; j < (1 << BYTEWIDTH); j++)
-        if (SYNTAX (j) == Sword)
-          fastmap[j] = 1;
-      break;
-
-
-    case notwordchar:
-      for (j = 0; j < (1 << BYTEWIDTH); j++)
-        if (SYNTAX (j) != Sword)
-          fastmap[j] = 1;
-      break;
-
-
-        case anychar:
-          /* `.' matches anything ...  */
-      for (j = 0; j < (1 << BYTEWIDTH); j++)
-            fastmap[j] = 1;
-
-          /* ... except perhaps newline.  */
-          if (!(bufp->syntax & RE_DOT_NEWLINE))
-            fastmap['\n'] = 0;
-
-          /* Return if we have already set `can_be_null'; if we have,
-             then the fastmap is irrelevant.  Something's wrong here.  */
-      else if (bufp->can_be_null)
-        return 0;
-
-          /* Otherwise, have to check alternative paths.  */
-      break;
-
-
-#ifdef emacs
-        case syntaxspec:
-      k = *p++;
-      for (j = 0; j < (1 << BYTEWIDTH); j++)
-        if (SYNTAX (j) == (enum syntaxcode) k)
-          fastmap[j] = 1;
-      break;
-
-
-    case notsyntaxspec:
-      k = *p++;
-      for (j = 0; j < (1 << BYTEWIDTH); j++)
-        if (SYNTAX (j) != (enum syntaxcode) k)
-          fastmap[j] = 1;
-      break;
-
-
-      /* All cases after this match the empty string.  These end with
-         `continue'.  */
-
-
-    case before_dot:
-    case at_dot:
-    case after_dot:
-          continue;
-#endif /* not emacs */
-
-
-        case no_op:
-        case begline:
-        case endline:
-    case begbuf:
-    case endbuf:
-    case wordbound:
-    case notwordbound:
-    case wordbeg:
-    case wordend:
-        case push_dummy_failure:
-          continue;
-
-
-    case jump_n:
-        case pop_failure_jump:
-    case maybe_pop_jump:
-    case jump:
-        case jump_past_alt:
-    case dummy_failure_jump:
-          EXTRACT_NUMBER_AND_INCR (j, p);
-      p += j;
-      if (j > 0)
-        continue;
-
-          /* Jump backward implies we just went through the body of a
-             loop and matched nothing.  Opcode jumped to should be
-             `on_failure_jump' or `succeed_n'.  Just treat it like an
-             ordinary jump.  For a * loop, it has pushed its failure
-             point already; if so, discard that as redundant.  */
-          if ((re_opcode_t) *p != on_failure_jump
-          && (re_opcode_t) *p != succeed_n)
-        continue;
-
-          p++;
-          EXTRACT_NUMBER_AND_INCR (j, p);
-          p += j;
-
-          /* If what's on the stack is where we are now, pop it.  */
-          if (!FAIL_STACK_EMPTY ()
-          && fail_stack.stack[fail_stack.avail - 1] == p)
-            fail_stack.avail--;
-
-          continue;
-
-
-        case on_failure_jump:
-        case on_failure_keep_string_jump:
-    handle_on_failure_jump:
-          EXTRACT_NUMBER_AND_INCR (j, p);
-
-          /* For some patterns, e.g., `(a?)?', `p+j' here points to the
-             end of the pattern.  We don't want to push such a point,
-             since when we restore it above, entering the switch will
-             increment `p' past the end of the pattern.  We don't need
-             to push such a point since we obviously won't find any more
-             fastmap entries beyond `pend'.  Such a pattern can match
-             the null string, though.  */
-          if (p + j < pend)
-            {
-              if (!PUSH_PATTERN_OP (p + j, fail_stack))
-                return -2;
-            }
-          else
-            bufp->can_be_null = 1;
-
-          if (succeed_n_p)
-            {
-              EXTRACT_NUMBER_AND_INCR (k, p);	/* Skip the n.  */
-              succeed_n_p = false;
-        }
-
-          continue;
-
-
-    case succeed_n:
-          /* Get to the number of times to succeed.  */
-          p += 2;
-
-          /* Increment p past the n for when k != 0.  */
-          EXTRACT_NUMBER_AND_INCR (k, p);
-          if (k == 0)
-        {
-              p -= 4;
-          succeed_n_p = true;  /* Spaghetti code alert.  */
-              goto handle_on_failure_jump;
-            }
-          continue;
-
-
-    case set_number_at:
-          p += 4;
-          continue;
-
-
-    case start_memory:
-        case stop_memory:
-      p += 2;
-      continue;
-
-
-    default:
-          abort (); /* We have listed all the cases.  */
-        } /* switch *p++ */
-
-      /* Getting here means we have found the possible starting
-         characters for one path of the pattern -- and that the empty
-         string does not match.  We need not follow this path further.
-         Instead, look at the next alternative (remembered on the
-         stack), or quit if no more.  The test at the top of the loop
-         does these things.  */
-      path_can_be_null = false;
-      p = pend;
-    } /* while p */
-
-  /* Set `can_be_null' for the last path (also the first path, if the
-     pattern is empty).  */
-  bufp->can_be_null |= path_can_be_null;
-  return 0;
-} /* re_compile_fastmap */
-
-/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
-   ENDS.  Subsequent matches using PATTERN_BUFFER and REGS will use
-   this memory for recording register information.  STARTS and ENDS
-   must be allocated using the malloc library routine, and must each
-   be at least NUM_REGS * sizeof (regoff_t) bytes long.
-
-   If NUM_REGS == 0, then subsequent matches should allocate their own
-   register data.
-
-   Unless this function is called, the first search or match using
-   PATTERN_BUFFER will allocate its own register data, without
-   freeing the old data.  */
-
-void
-re_set_registers (bufp, regs, num_regs, starts, ends)
-    struct re_pattern_buffer *bufp;
-    struct re_registers *regs;
-    unsigned num_regs;
-    regoff_t *starts, *ends;
-{
-  if (num_regs)
-    {
-      bufp->regs_allocated = REGS_REALLOCATE;
-      regs->num_regs = num_regs;
-      regs->start = starts;
-      regs->end = ends;
-    }
-  else
-    {
-      bufp->regs_allocated = REGS_UNALLOCATED;
-      regs->num_regs = 0;
-      regs->start = regs->end = (regoff_t) 0;
-    }
-}
-
-/* Searching routines.  */
-
-/* Like re_search_2, below, but only one string is specified, and
-   doesn't let you say where to stop matching. */
-
-int
-re_search (bufp, string, size, startpos, range, regs)
-     struct re_pattern_buffer *bufp;
-     const char *string;
-     int size, startpos, range;
-     struct re_registers *regs;
-{
-  return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
-              regs, size);
-}
-
-
-/* Using the compiled pattern in BUFP->buffer, first tries to match the
-   virtual concatenation of STRING1 and STRING2, starting first at index
-   STARTPOS, then at STARTPOS + 1, and so on.
-
-   STRING1 and STRING2 have length SIZE1 and SIZE2, respectively.
-
-   RANGE is how far to scan while trying to match.  RANGE = 0 means try
-   only at STARTPOS; in general, the last start tried is STARTPOS +
-   RANGE.
-
-   In REGS, return the indices of the virtual concatenation of STRING1
-   and STRING2 that matched the entire BUFP->buffer and its contained
-   subexpressions.
-
-   Do not consider matching one past the index STOP in the virtual
-   concatenation of STRING1 and STRING2.
-
-   We return either the position in the strings at which the match was
-   found, -1 if no match, or -2 if error (such as failure
-   stack overflow).  */
-
-int
-re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
-     struct re_pattern_buffer *bufp;
-     const char *string1, *string2;
-     int size1, size2;
-     int startpos;
-     int range;
-     struct re_registers *regs;
-     int stop;
-{
-  int val;
-  register char *fastmap = bufp->fastmap;
-  register char *translate = bufp->translate;
-  int total_size = size1 + size2;
-  int endpos = startpos + range;
-
-  /* Check for out-of-range STARTPOS.  */
-  if (startpos < 0 || startpos > total_size)
-    return -1;
-
-  /* Fix up RANGE if it might eventually take us outside
-     the virtual concatenation of STRING1 and STRING2.  */
-  if (endpos < -1)
-    range = -1 - startpos;
-  else if (endpos > total_size)
-    range = total_size - startpos;
-
-  /* If the search isn't to be a backwards one, don't waste time in a
-     search for a pattern that must be anchored.  */
-  if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0)
-    {
-      if (startpos > 0)
-    return -1;
-      else
-    range = 1;
-    }
-
-  /* Update the fastmap now if not correct already.  */
-  if (fastmap && !bufp->fastmap_accurate)
-    if (re_compile_fastmap (bufp) == -2)
-      return -2;
-
-  /* Loop through the string, looking for a place to start matching.  */
-  for (;;)
-    {
-      /* If a fastmap is supplied, skip quickly over characters that
-         cannot be the start of a match.  If the pattern can match the
-         null string, however, we don't need to skip characters; we want
-         the first null string.  */
-      if (fastmap && startpos < total_size && !bufp->can_be_null)
-    {
-      if (range > 0)	/* Searching forwards.  */
-        {
-          register const char *d;
-          register int lim = 0;
-          int irange = range;
-
-              if (startpos < size1 && startpos + range >= size1)
-                lim = range - (size1 - startpos);
-
-          d = (startpos >= size1 ? string2 - size1 : string1) + startpos;
-
-              /* Written out as an if-else to avoid testing `translate'
-                 inside the loop.  */
-          if (translate)
-                while (range > lim
-                       && !fastmap[(unsigned char)
-                   translate[(unsigned char) *d++]])
-                  range--;
-          else
-                while (range > lim && !fastmap[(unsigned char) *d++])
-                  range--;
-
-          startpos += irange - range;
-        }
-      else				/* Searching backwards.  */
-        {
-          register char c = (size1 == 0 || startpos >= size1
-                                 ? string2[startpos - size1]
-                                 : string1[startpos]);
-
-          if (!fastmap[(unsigned char) TRANSLATE (c)])
-        goto advance;
-        }
-    }
-
-      /* If can't match the null string, and that's all we have left, fail.  */
-      if (range >= 0 && startpos == total_size && fastmap
-          && !bufp->can_be_null)
-    return -1;
-
-      val = re_match_2 (bufp, string1, size1, string2, size2,
-                    startpos, regs, stop);
-      if (val >= 0)
-    return startpos;
-
-      if (val == -2)
-    return -2;
-
-    advance:
-      if (!range)
-        break;
-      else if (range > 0)
-        {
-          range--;
-          startpos++;
-        }
-      else
-        {
-          range++;
-          startpos--;
-        }
-    }
-  return -1;
-} /* re_search_2 */
-
-/* Declarations and macros for re_match_2.  */
-
-static int bcmp_translate ();
-static boolean alt_match_null_string_p (),
-               common_op_match_null_string_p (),
-               group_match_null_string_p ();
-
-/* Structure for per-register (a.k.a. per-group) information.
-   This must not be longer than one word, because we push this value
-   onto the failure stack.  Other register information, such as the
-   starting and ending positions (which are addresses), and the list of
-   inner groups (which is a bits list) are maintained in separate
-   variables.
-
-   We are making a (strictly speaking) nonportable assumption here: that
-   the compiler will pack our bit fields into something that fits into
-   the type of `word', i.e., is something that fits into one item on the
-   failure stack.  */
-typedef union
-{
-  fail_stack_elt_t word;
-  struct
-  {
-      /* This field is one if this group can match the empty string,
-         zero if not.  If not yet determined,  `MATCH_NULL_UNSET_VALUE'.  */
-#define MATCH_NULL_UNSET_VALUE 3
-    unsigned match_null_string_p : 2;
-    unsigned is_active : 1;
-    unsigned matched_something : 1;
-    unsigned ever_matched_something : 1;
-  } bits;
-} register_info_type;
-
-#define REG_MATCH_NULL_STRING_P(R)  ((R).bits.match_null_string_p)
-#define IS_ACTIVE(R)  ((R).bits.is_active)
-#define MATCHED_SOMETHING(R)  ((R).bits.matched_something)
-#define EVER_MATCHED_SOMETHING(R)  ((R).bits.ever_matched_something)
-
-
-/* Call this when have matched a real character; it sets `matched' flags
-   for the subexpressions which we are currently inside.  Also records
-   that those subexprs have matched.  */
-#define SET_REGS_MATCHED()						\
-  do									\
-    {									\
-      unsigned r;							\
-      for (r = lowest_active_reg; r <= highest_active_reg; r++)		\
-        {								\
-          MATCHED_SOMETHING (reg_info[r])				\
-            = EVER_MATCHED_SOMETHING (reg_info[r])			\
-            = 1;							\
-        }								\
-    }									\
-  while (0)
-
-
-/* This converts PTR, a pointer into one of the search strings `string1'
-   and `string2' into an offset from the beginning of that string.  */
-#define POINTER_TO_OFFSET(ptr)						\
-  (FIRST_STRING_P (ptr) ? (ptr) - string1 : (ptr) - string2 + size1)
-
-/* Registers are set to a sentinel when they haven't yet matched.  */
-#define REG_UNSET_VALUE ((char *) -1)
-#define REG_UNSET(e) ((e) == REG_UNSET_VALUE)
-
-
-/* Macros for dealing with the split strings in re_match_2.  */
-
-#define MATCHING_IN_FIRST_STRING  (dend == end_match_1)
-
-/* Call before fetching a character with *d.  This switches over to
-   string2 if necessary.  */
-#define PREFETCH()							\
-  while (d == dend)						    	\
-    {									\
-      /* End of string2 => fail.  */					\
-      if (dend == end_match_2) 						\
-        goto fail;							\
-      /* End of string1 => advance to string2.  */ 			\
-      d = string2;						        \
-      dend = end_match_2;						\
-    }
-
-
-/* Test if at very beginning or at very end of the virtual concatenation
-   of `string1' and `string2'.  If only one string, it's `string2'.  */
-#define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2)
-#define AT_STRINGS_END(d) ((d) == end2)
-
-
-/* Test if D points to a character which is word-constituent.  We have
-   two special cases to check for: if past the end of string1, look at
-   the first character in string2; and if before the beginning of
-   string2, look at the last character in string1.  */
-#define WORDCHAR_P(d)							\
-  (SYNTAX ((d) == end1 ? *string2					\
-           : (d) == string2 - 1 ? *(end1 - 1) : *(d))			\
-   == Sword)
-
-/* Test if the character before D and the one at D differ with respect
-   to being word-constituent.  */
-#define AT_WORD_BOUNDARY(d)						\
-  (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)				\
-   || WORDCHAR_P (d - 1) != WORDCHAR_P (d))
-
-
-/* Free everything we malloc.  */
-#ifdef REGEX_MALLOC
-#define FREE_VAR(var) if (var) free (var); var = NULL
-#define FREE_VARIABLES()						\
-  do {									\
-    FREE_VAR (fail_stack.stack);					\
-    FREE_VAR (regstart);						\
-    FREE_VAR (regend);							\
-    FREE_VAR (old_regstart);						\
-    FREE_VAR (old_regend);						\
-    FREE_VAR (best_regstart);						\
-    FREE_VAR (best_regend);						\
-    FREE_VAR (reg_info);						\
-    FREE_VAR (reg_dummy);						\
-    FREE_VAR (reg_info_dummy);						\
-  } while (0)
-#else /* not REGEX_MALLOC */
-/* Some MIPS systems (at least) want this to free alloca'd storage.  */
-#define FREE_VARIABLES() alloca (0)
-#endif /* not REGEX_MALLOC */
-
-
-/* These values must meet several constraints.  They must not be valid
-   register values; since we have a limit of 255 registers (because
-   we use only one byte in the pattern for the register number), we can
-   use numbers larger than 255.  They must differ by 1, because of
-   NUM_FAILURE_ITEMS above.  And the value for the lowest register must
-   be larger than the value for the highest register, so we do not try
-   to actually save any registers when none are active.  */
-#define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH)
-#define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1)
-
-/* Matching routines.  */
-
-#ifndef emacs   /* Emacs never uses this.  */
-/* re_match is like re_match_2 except it takes only a single string.  */
-
-int
-re_match (bufp, string, size, pos, regs)
-     struct re_pattern_buffer *bufp;
-     const char *string;
-     int size, pos;
-     struct re_registers *regs;
- {
-  return re_match_2 (bufp, NULL, 0, string, size, pos, regs, size);
-}
-#endif /* not emacs */
-
-
-/* re_match_2 matches the compiled pattern in BUFP against the
-   the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1
-   and SIZE2, respectively).  We start matching at POS, and stop
-   matching at STOP.
-
-   If REGS is non-null and the `no_sub' field of BUFP is nonzero, we
-   store offsets for the substring each group matched in REGS.  See the
-   documentation for exactly how many groups we fill.
-
-   We return -1 if no match, -2 if an internal error (such as the
-   failure stack overflowing).  Otherwise, we return the length of the
-   matched substring.  */
-
-int
-re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
-     struct re_pattern_buffer *bufp;
-     const char *string1, *string2;
-     int size1, size2;
-     int pos;
-     struct re_registers *regs;
-     int stop;
-{
-  /* General temporaries.  */
-  int mcnt;
-  unsigned char *p1;
-
-  /* Just past the end of the corresponding string.  */
-  const char *end1, *end2;
-
-  /* Pointers into string1 and string2, just past the last characters in
-     each to consider matching.  */
-  const char *end_match_1, *end_match_2;
-
-  /* Where we are in the data, and the end of the current string.  */
-  const char *d, *dend;
-
-  /* Where we are in the pattern, and the end of the pattern.  */
-  unsigned char *p = bufp->buffer;
-  register unsigned char *pend = p + bufp->used;
-
-  /* We use this to map every character in the string.  */
-  char *translate = bufp->translate;
-
-  /* Failure point stack.  Each place that can handle a failure further
-     down the line pushes a failure point on this stack.  It consists of
-     restart, regend, and reg_info for all registers corresponding to
-     the subexpressions we're currently inside, plus the number of such
-     registers, and, finally, two char *'s.  The first char * is where
-     to resume scanning the pattern; the second one is where to resume
-     scanning the strings.  If the latter is zero, the failure point is
-     a ``dummy''; if a failure happens and the failure point is a dummy,
-     it gets discarded and the next next one is tried.  */
-  fail_stack_type fail_stack;
-#ifdef DEBUG
-  static unsigned failure_id = 0;
-  unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0;
-#endif
-
-  /* We fill all the registers internally, independent of what we
-     return, for use in backreferences.  The number here includes
-     an element for register zero.  */
-  unsigned num_regs = bufp->re_nsub + 1;
-
-  /* The currently active registers.  */
-  unsigned lowest_active_reg = NO_LOWEST_ACTIVE_REG;
-  unsigned highest_active_reg = NO_HIGHEST_ACTIVE_REG;
-
-  /* Information on the contents of registers. These are pointers into
-     the input strings; they record just what was matched (on this
-     attempt) by a subexpression part of the pattern, that is, the
-     regnum-th regstart pointer points to where in the pattern we began
-     matching and the regnum-th regend points to right after where we
-     stopped matching the regnum-th subexpression.  (The zeroth register
-     keeps track of what the whole pattern matches.)  */
-  const char **regstart, **regend;
-
-  /* If a group that's operated upon by a repetition operator fails to
-     match anything, then the register for its start will need to be
-     restored because it will have been set to wherever in the string we
-     are when we last see its open-group operator.  Similarly for a
-     register's end.  */
-  const char **old_regstart, **old_regend;
-
-  /* The is_active field of reg_info helps us keep track of which (possibly
-     nested) subexpressions we are currently in. The matched_something
-     field of reg_info[reg_num] helps us tell whether or not we have
-     matched any of the pattern so far this time through the reg_num-th
-     subexpression.  These two fields get reset each time through any
-     loop their register is in.  */
-  register_info_type *reg_info;
-
-  /* The following record the register info as found in the above
-     variables when we find a match better than any we've seen before.
-     This happens as we backtrack through the failure points, which in
-     turn happens only if we have not yet matched the entire string. */
-  unsigned best_regs_set = false;
-  const char **best_regstart, **best_regend;
-
-  /* Logically, this is `best_regend[0]'.  But we don't want to have to
-     allocate space for that if we're not allocating space for anything
-     else (see below).  Also, we never need info about register 0 for
-     any of the other register vectors, and it seems rather a kludge to
-     treat `best_regend' differently than the rest.  So we keep track of
-     the end of the best match so far in a separate variable.  We
-     initialize this to NULL so that when we backtrack the first time
-     and need to test it, it's not garbage.  */
-  const char *match_end = NULL;
-
-  /* Used when we pop values we don't care about.  */
-  const char **reg_dummy;
-  register_info_type *reg_info_dummy;
-
-#ifdef DEBUG
-  /* Counts the total number of registers pushed.  */
-  unsigned num_regs_pushed = 0;
-#endif
-
-  DEBUG_PRINT1 ("\n\nEntering re_match_2.\n");
-
-  INIT_FAIL_STACK ();
-
-  /* Do not bother to initialize all the register variables if there are
-     no groups in the pattern, as it takes a fair amount of time.  If
-     there are groups, we include space for register 0 (the whole
-     pattern), even though we never use it, since it simplifies the
-     array indexing.  We should fix this.  */
-  if (bufp->re_nsub)
-    {
-      regstart = REGEX_TALLOC (num_regs, const char *);
-      regend = REGEX_TALLOC (num_regs, const char *);
-      old_regstart = REGEX_TALLOC (num_regs, const char *);
-      old_regend = REGEX_TALLOC (num_regs, const char *);
-      best_regstart = REGEX_TALLOC (num_regs, const char *);
-      best_regend = REGEX_TALLOC (num_regs, const char *);
-      reg_info = REGEX_TALLOC (num_regs, register_info_type);
-      reg_dummy = REGEX_TALLOC (num_regs, const char *);
-      reg_info_dummy = REGEX_TALLOC (num_regs, register_info_type);
-
-      if (!(regstart && regend && old_regstart && old_regend && reg_info
-            && best_regstart && best_regend && reg_dummy && reg_info_dummy))
-        {
-          FREE_VARIABLES ();
-          return -2;
-        }
-    }
-#ifdef REGEX_MALLOC
-  else
-    {
-      /* We must initialize all our variables to NULL, so that
-         `FREE_VARIABLES' doesn't try to free them.  */
-      regstart = regend = old_regstart = old_regend = best_regstart
-        = best_regend = reg_dummy = NULL;
-      reg_info = reg_info_dummy = (register_info_type *) NULL;
-    }
-#endif /* REGEX_MALLOC */
-
-  /* The starting position is bogus.  */
-  if (pos < 0 || pos > size1 + size2)
-    {
-      FREE_VARIABLES ();
-      return -1;
-    }
-
-  /* Initialize subexpression text positions to -1 to mark ones that no
-     start_memory/stop_memory has been seen for. Also initialize the
-     register information struct.  */
-  for (mcnt = 1; mcnt < num_regs; mcnt++)
-    {
-      regstart[mcnt] = regend[mcnt]
-        = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE;
-
-      REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE;
-      IS_ACTIVE (reg_info[mcnt]) = 0;
-      MATCHED_SOMETHING (reg_info[mcnt]) = 0;
-      EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0;
-    }
-
-  /* We move `string1' into `string2' if the latter's empty -- but not if
-     `string1' is null.  */
-  if (size2 == 0 && string1 != NULL)
-    {
-      string2 = string1;
-      size2 = size1;
-      string1 = 0;
-      size1 = 0;
-    }
-  end1 = string1 + size1;
-  end2 = string2 + size2;
-
-  /* Compute where to stop matching, within the two strings.  */
-  if (stop <= size1)
-    {
-      end_match_1 = string1 + stop;
-      end_match_2 = string2;
-    }
-  else
-    {
-      end_match_1 = end1;
-      end_match_2 = string2 + stop - size1;
-    }
-
-  /* `p' scans through the pattern as `d' scans through the data.
-     `dend' is the end of the input string that `d' points within.  `d'
-     is advanced into the following input string whenever necessary, but
-     this happens before fetching; therefore, at the beginning of the
-     loop, `d' can be pointing at the end of a string, but it cannot
-     equal `string2'.  */
-  if (size1 > 0 && pos <= size1)
-    {
-      d = string1 + pos;
-      dend = end_match_1;
-    }
-  else
-    {
-      d = string2 + pos - size1;
-      dend = end_match_2;
-    }
-
-  DEBUG_PRINT1 ("The compiled pattern is: ");
-  DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend);
-  DEBUG_PRINT1 ("The string to match is: `");
-  DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2);
-  DEBUG_PRINT1 ("'\n");
-
-  /* This loops over pattern commands.  It exits by returning from the
-     function if the match is complete, or it drops through if the match
-     fails at this starting point in the input data.  */
-  for (;;)
-    {
-      DEBUG_PRINT2 ("\n0x%x: ", p);
-
-      if (p == pend)
-    { /* End of pattern means we might have succeeded.  */
-          DEBUG_PRINT1 ("end of pattern ... ");
-
-      /* If we haven't matched the entire string, and we want the
-             longest match, try backtracking.  */
-          if (d != end_match_2)
-        {
-              DEBUG_PRINT1 ("backtracking.\n");
-
-              if (!FAIL_STACK_EMPTY ())
-                { /* More failure points to try.  */
-                  boolean same_str_p = (FIRST_STRING_P (match_end)
-                                == MATCHING_IN_FIRST_STRING);
-
-                  /* If exceeds best match so far, save it.  */
-                  if (!best_regs_set
-                      || (same_str_p && d > match_end)
-                      || (!same_str_p && !MATCHING_IN_FIRST_STRING))
-                    {
-                      best_regs_set = true;
-                      match_end = d;
-
-                      DEBUG_PRINT1 ("\nSAVING match as best so far.\n");
-
-                      for (mcnt = 1; mcnt < num_regs; mcnt++)
-                        {
-                          best_regstart[mcnt] = regstart[mcnt];
-                          best_regend[mcnt] = regend[mcnt];
-                        }
-                    }
-                  goto fail;
-                }
-
-              /* If no failure points, don't restore garbage.  */
-              else if (best_regs_set)
-                {
-            restore_best_regs:
-                  /* Restore best match.  It may happen that `dend ==
-                     end_match_1' while the restored d is in string2.
-                     For example, the pattern `x.*y.*z' against the
-                     strings `x-' and `y-z-', if the two strings are
-                     not consecutive in memory.  */
-                  DEBUG_PRINT1 ("Restoring best registers.\n");
-
-                  d = match_end;
-                  dend = ((d >= string1 && d <= end1)
-                   ? end_match_1 : end_match_2);
-
-          for (mcnt = 1; mcnt < num_regs; mcnt++)
-            {
-              regstart[mcnt] = best_regstart[mcnt];
-              regend[mcnt] = best_regend[mcnt];
-            }
-                }
-            } /* d != end_match_2 */
-
-          DEBUG_PRINT1 ("Accepting match.\n");
-
-          /* If caller wants register contents data back, do it.  */
-          if (regs && !bufp->no_sub)
-        {
-              /* Have the register data arrays been allocated?  */
-              if (bufp->regs_allocated == REGS_UNALLOCATED)
-                { /* No.  So allocate them with malloc.  We need one
-                     extra element beyond `num_regs' for the `-1' marker
-                     GNU code uses.  */
-                  regs->num_regs = MAX (RE_NREGS, num_regs + 1);
-                  regs->start = TALLOC (regs->num_regs, regoff_t);
-                  regs->end = TALLOC (regs->num_regs, regoff_t);
-                  if (regs->start == NULL || regs->end == NULL)
-                    return -2;
-                  bufp->regs_allocated = REGS_REALLOCATE;
-                }
-              else if (bufp->regs_allocated == REGS_REALLOCATE)
-                { /* Yes.  If we need more elements than were already
-                     allocated, reallocate them.  If we need fewer, just
-                     leave it alone.  */
-                  if (regs->num_regs < num_regs + 1)
-                    {
-                      regs->num_regs = num_regs + 1;
-                      RETALLOC (regs->start, regs->num_regs, regoff_t);
-                      RETALLOC (regs->end, regs->num_regs, regoff_t);
-                      if (regs->start == NULL || regs->end == NULL)
-                        return -2;
-                    }
-                }
-              else
-                assert (bufp->regs_allocated == REGS_FIXED);
-
-              /* Convert the pointer data in `regstart' and `regend' to
-                 indices.  Register zero has to be set differently,
-                 since we haven't kept track of any info for it.  */
-              if (regs->num_regs > 0)
-                {
-                  regs->start[0] = pos;
-                  regs->end[0] = (MATCHING_IN_FIRST_STRING ? d - string1
-                      : d - string2 + size1);
-                }
-
-              /* Go through the first `min (num_regs, regs->num_regs)'
-                 registers, since that is all we initialized.  */
-          for (mcnt = 1; mcnt < MIN (num_regs, regs->num_regs); mcnt++)
-        {
-                  if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt]))
-                    regs->start[mcnt] = regs->end[mcnt] = -1;
-                  else
-                    {
-              regs->start[mcnt] = POINTER_TO_OFFSET (regstart[mcnt]);
-                      regs->end[mcnt] = POINTER_TO_OFFSET (regend[mcnt]);
-                    }
-        }
-
-              /* If the regs structure we return has more elements than
-                 were in the pattern, set the extra elements to -1.  If
-                 we (re)allocated the registers, this is the case,
-                 because we always allocate enough to have at least one
-                 -1 at the end.  */
-              for (mcnt = num_regs; mcnt < regs->num_regs; mcnt++)
-                regs->start[mcnt] = regs->end[mcnt] = -1;
-        } /* regs && !bufp->no_sub */
-
-          FREE_VARIABLES ();
-          DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n",
-                        nfailure_points_pushed, nfailure_points_popped,
-                        nfailure_points_pushed - nfailure_points_popped);
-          DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
-
-          mcnt = d - pos - (MATCHING_IN_FIRST_STRING
-                ? string1
-                : string2 - size1);
-
-          DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
-
-          return mcnt;
-        }
-
-      /* Otherwise match next pattern command.  */
-#ifdef SWITCH_ENUM_BUG
-      switch ((int) ((re_opcode_t) *p++))
-#else
-      switch ((re_opcode_t) *p++)
-#endif
-    {
-        /* Ignore these.  Used to ignore the n of succeed_n's which
-           currently have n == 0.  */
-        case no_op:
-          DEBUG_PRINT1 ("EXECUTING no_op.\n");
-          break;
-
-
-        /* Match the next n pattern characters exactly.  The following
-           byte in the pattern defines n, and the n bytes after that
-           are the characters to match.  */
-    case exactn:
-      mcnt = *p++;
-          DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt);
-
-          /* This is written out as an if-else so we don't waste time
-             testing `translate' inside the loop.  */
-          if (translate)
-        {
-          do
-        {
-          PREFETCH ();
-          if (translate[(unsigned char) *d++] != (char) *p++)
-                    goto fail;
-        }
-          while (--mcnt);
-        }
-      else
-        {
-          do
-        {
-          PREFETCH ();
-          if (*d++ != (char) *p++) goto fail;
-        }
-          while (--mcnt);
-        }
-      SET_REGS_MATCHED ();
-          break;
-
-
-        /* Match any character except possibly a newline or a null.  */
-    case anychar:
-          DEBUG_PRINT1 ("EXECUTING anychar.\n");
-
-          PREFETCH ();
-
-          if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n')
-              || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000'))
-        goto fail;
-
-          SET_REGS_MATCHED ();
-          DEBUG_PRINT2 ("  Matched `%d'.\n", *d);
-          d++;
-      break;
-
-
-    case charset:
-    case charset_not:
-      {
-        register unsigned char c;
-        boolean not = (re_opcode_t) *(p - 1) == charset_not;
-
-            DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : "");
-
-        PREFETCH ();
-        c = TRANSLATE (*d); /* The character to match.  */
-
-            /* Cast to `unsigned' instead of `unsigned char' in case the
-               bit list is a full 32 bytes long.  */
-        if (c < (unsigned) (*p * BYTEWIDTH)
-        && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-          not = !not;
-
-        p += 1 + *p;
-
-        if (!not) goto fail;
-
-        SET_REGS_MATCHED ();
-            d++;
-        break;
-      }
-
-
-        /* The beginning of a group is represented by start_memory.
-           The arguments are the register number in the next byte, and the
-           number of groups inner to this one in the next.  The text
-           matched within the group is recorded (in the internal
-           registers data structure) under the register number.  */
-        case start_memory:
-      DEBUG_PRINT3 ("EXECUTING start_memory %d (%d):\n", *p, p[1]);
-
-          /* Find out if this group can match the empty string.  */
-      p1 = p;		/* To send to group_match_null_string_p.  */
-
-          if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE)
-            REG_MATCH_NULL_STRING_P (reg_info[*p])
-              = group_match_null_string_p (&p1, pend, reg_info);
-
-          /* Save the position in the string where we were the last time
-             we were at this open-group operator in case the group is
-             operated upon by a repetition operator, e.g., with `(a*)*b'
-             against `ab'; then we want to ignore where we are now in
-             the string in case this attempt to match fails.  */
-          old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
-                             ? REG_UNSET (regstart[*p]) ? d : regstart[*p]
-                             : regstart[*p];
-      DEBUG_PRINT2 ("  old_regstart: %d\n",
-             POINTER_TO_OFFSET (old_regstart[*p]));
-
-          regstart[*p] = d;
-      DEBUG_PRINT2 ("  regstart: %d\n", POINTER_TO_OFFSET (regstart[*p]));
-
-          IS_ACTIVE (reg_info[*p]) = 1;
-          MATCHED_SOMETHING (reg_info[*p]) = 0;
-
-          /* This is the new highest active register.  */
-          highest_active_reg = *p;
-
-          /* If nothing was active before, this is the new lowest active
-             register.  */
-          if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
-            lowest_active_reg = *p;
-
-          /* Move past the register number and inner group count.  */
-          p += 2;
-          break;
-
-
-        /* The stop_memory opcode represents the end of a group.  Its
-           arguments are the same as start_memory's: the register
-           number, and the number of inner groups.  */
-    case stop_memory:
-      DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]);
-
-          /* We need to save the string position the last time we were at
-             this close-group operator in case the group is operated
-             upon by a repetition operator, e.g., with `((a*)*(b*)*)*'
-             against `aba'; then we want to ignore where we are now in
-             the string in case this attempt to match fails.  */
-          old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
-                           ? REG_UNSET (regend[*p]) ? d : regend[*p]
-               : regend[*p];
-      DEBUG_PRINT2 ("      old_regend: %d\n",
-             POINTER_TO_OFFSET (old_regend[*p]));
-
-          regend[*p] = d;
-      DEBUG_PRINT2 ("      regend: %d\n", POINTER_TO_OFFSET (regend[*p]));
-
-          /* This register isn't active anymore.  */
-          IS_ACTIVE (reg_info[*p]) = 0;
-
-          /* If this was the only register active, nothing is active
-             anymore.  */
-          if (lowest_active_reg == highest_active_reg)
-            {
-              lowest_active_reg = NO_LOWEST_ACTIVE_REG;
-              highest_active_reg = NO_HIGHEST_ACTIVE_REG;
-            }
-          else
-            { /* We must scan for the new highest active register, since
-                 it isn't necessarily one less than now: consider
-                 (a(b)c(d(e)f)g).  When group 3 ends, after the f), the
-                 new highest active register is 1.  */
-              unsigned char r = *p - 1;
-              while (r > 0 && !IS_ACTIVE (reg_info[r]))
-                r--;
-
-              /* If we end up at register zero, that means that we saved
-                 the registers as the result of an `on_failure_jump', not
-                 a `start_memory', and we jumped to past the innermost
-                 `stop_memory'.  For example, in ((.)*) we save
-                 registers 1 and 2 as a result of the *, but when we pop
-                 back to the second ), we are at the stop_memory 1.
-                 Thus, nothing is active.  */
-          if (r == 0)
-                {
-                  lowest_active_reg = NO_LOWEST_ACTIVE_REG;
-                  highest_active_reg = NO_HIGHEST_ACTIVE_REG;
-                }
-              else
-                highest_active_reg = r;
-            }
-
-          /* If just failed to match something this time around with a
-             group that's operated on by a repetition operator, try to
-             force exit from the ``loop'', and restore the register
-             information for this group that we had before trying this
-             last match.  */
-          if ((!MATCHED_SOMETHING (reg_info[*p])
-               || (re_opcode_t) p[-3] == start_memory)
-          && (p + 2) < pend)
-            {
-              boolean is_a_jump_n = false;
-
-              p1 = p + 2;
-              mcnt = 0;
-              switch ((re_opcode_t) *p1++)
-                {
-                  case jump_n:
-            is_a_jump_n = true;
-                  case pop_failure_jump:
-          case maybe_pop_jump:
-          case jump:
-          case dummy_failure_jump:
-                    EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-            if (is_a_jump_n)
-              p1 += 2;
-                    break;
-
-                  default:
-                    /* do nothing */ ;
-                }
-          p1 += mcnt;
-
-              /* If the next operation is a jump backwards in the pattern
-             to an on_failure_jump right before the start_memory
-                 corresponding to this stop_memory, exit from the loop
-                 by forcing a failure after pushing on the stack the
-                 on_failure_jump's jump in the pattern, and d.  */
-              if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump
-                  && (re_opcode_t) p1[3] == start_memory && p1[4] == *p)
-        {
-                  /* If this group ever matched anything, then restore
-                     what its registers were before trying this last
-                     failed match, e.g., with `(a*)*b' against `ab' for
-                     regstart[1], and, e.g., with `((a*)*(b*)*)*'
-                     against `aba' for regend[3].
-
-                     Also restore the registers for inner groups for,
-                     e.g., `((a*)(b*))*' against `aba' (register 3 would
-                     otherwise get trashed).  */
-
-                  if (EVER_MATCHED_SOMETHING (reg_info[*p]))
-            {
-              unsigned r;
-
-                      EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
-
-              /* Restore this and inner groups' (if any) registers.  */
-                      for (r = *p; r < *p + *(p + 1); r++)
-                        {
-                          regstart[r] = old_regstart[r];
-
-                          /* xx why this test?  */
-                          if ((int) old_regend[r] >= (int) regstart[r])
-                            regend[r] = old_regend[r];
-                        }
-                    }
-          p1++;
-                  EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-                  PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
-
-                  goto fail;
-                }
-            }
-
-          /* Move past the register number and the inner group count.  */
-          p += 2;
-          break;
-
-
-    /* \<digit> has been turned into a `duplicate' command which is
-           followed by the numeric value of <digit> as the register number.  */
-        case duplicate:
-      {
-        register const char *d2, *dend2;
-        int regno = *p++;   /* Get which register to match against.  */
-        DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
-
-        /* Can't back reference a group which we've never matched.  */
-            if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno]))
-              goto fail;
-
-            /* Where in input to try to start matching.  */
-            d2 = regstart[regno];
-
-            /* Where to stop matching; if both the place to start and
-               the place to stop matching are in the same string, then
-               set to the place to stop, otherwise, for now have to use
-               the end of the first string.  */
-
-            dend2 = ((FIRST_STRING_P (regstart[regno])
-              == FIRST_STRING_P (regend[regno]))
-             ? regend[regno] : end_match_1);
-        for (;;)
-          {
-        /* If necessary, advance to next segment in register
-                   contents.  */
-        while (d2 == dend2)
-          {
-            if (dend2 == end_match_2) break;
-            if (dend2 == regend[regno]) break;
-
-                    /* End of string1 => advance to string2. */
-                    d2 = string2;
-                    dend2 = regend[regno];
-          }
-        /* At end of register contents => success */
-        if (d2 == dend2) break;
-
-        /* If necessary, advance to next segment in data.  */
-        PREFETCH ();
-
-        /* How many characters left in this segment to match.  */
-        mcnt = dend - d;
-
-        /* Want how many consecutive characters we can match in
-                   one shot, so, if necessary, adjust the count.  */
-                if (mcnt > dend2 - d2)
-          mcnt = dend2 - d2;
-
-        /* Compare that many; failure if mismatch, else move
-                   past them.  */
-        if (translate
-                    ? bcmp_translate (d, d2, mcnt, translate)
-                    : bcmp (d, d2, mcnt))
-          goto fail;
-        d += mcnt, d2 += mcnt;
-          }
-      }
-      break;
-
-
-        /* begline matches the empty string at the beginning of the string
-           (unless `not_bol' is set in `bufp'), and, if
-           `newline_anchor' is set, after newlines.  */
-    case begline:
-          DEBUG_PRINT1 ("EXECUTING begline.\n");
-
-          if (AT_STRINGS_BEG (d))
-            {
-              if (!bufp->not_bol) break;
-            }
-          else if (d[-1] == '\n' && bufp->newline_anchor)
-            {
-              break;
-            }
-          /* In all other cases, we fail.  */
-          goto fail;
-
-
-        /* endline is the dual of begline.  */
-    case endline:
-          DEBUG_PRINT1 ("EXECUTING endline.\n");
-
-          if (AT_STRINGS_END (d))
-            {
-              if (!bufp->not_eol) break;
-            }
-
-          /* We have to ``prefetch'' the next character.  */
-          else if ((d == end1 ? *string2 : *d) == '\n'
-                   && bufp->newline_anchor)
-            {
-              break;
-            }
-          goto fail;
-
-
-    /* Match at the very beginning of the data.  */
-        case begbuf:
-          DEBUG_PRINT1 ("EXECUTING begbuf.\n");
-          if (AT_STRINGS_BEG (d))
-            break;
-          goto fail;
-
-
-    /* Match at the very end of the data.  */
-        case endbuf:
-          DEBUG_PRINT1 ("EXECUTING endbuf.\n");
-      if (AT_STRINGS_END (d))
-        break;
-          goto fail;
-
-
-        /* on_failure_keep_string_jump is used to optimize `.*\n'.  It
-           pushes NULL as the value for the string on the stack.  Then
-           `pop_failure_point' will keep the current value for the
-           string, instead of restoring it.  To see why, consider
-           matching `foo\nbar' against `.*\n'.  The .* matches the foo;
-           then the . fails against the \n.  But the next thing we want
-           to do is match the \n against the \n; if we restored the
-           string value, we would be back at the foo.
-
-           Because this is used only in specific cases, we don't need to
-           check all the things that `on_failure_jump' does, to make
-           sure the right things get saved on the stack.  Hence we don't
-           share its code.  The only reason to push anything on the
-           stack at all is that otherwise we would have to change
-           `anychar's code to do something besides goto fail in this
-           case; that seems worse than this.  */
-        case on_failure_keep_string_jump:
-          DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump");
-
-          EXTRACT_NUMBER_AND_INCR (mcnt, p);
-          DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt);
-
-          PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
-          break;
-
-
-    /* Uses of on_failure_jump:
-
-           Each alternative starts with an on_failure_jump that points
-           to the beginning of the next alternative.  Each alternative
-           except the last ends with a jump that in effect jumps past
-           the rest of the alternatives.  (They really jump to the
-           ending jump of the following alternative, because tensioning
-           these jumps is a hassle.)
-
-           Repeats start with an on_failure_jump that points past both
-           the repetition text and either the following jump or
-           pop_failure_jump back to this on_failure_jump.  */
-    case on_failure_jump:
-        on_failure:
-          DEBUG_PRINT1 ("EXECUTING on_failure_jump");
-
-          EXTRACT_NUMBER_AND_INCR (mcnt, p);
-          DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt);
-
-          /* If this on_failure_jump comes right before a group (i.e.,
-             the original * applied to a group), save the information
-             for that group and all inner ones, so that if we fail back
-             to this point, the group's information will be correct.
-             For example, in \(a*\)*\1, we need the preceding group,
-             and in \(\(a*\)b*\)\2, we need the inner group.  */
-
-          /* We can't use `p' to check ahead because we push
-             a failure point to `p + mcnt' after we do this.  */
-          p1 = p;
-
-          /* We need to skip no_op's before we look for the
-             start_memory in case this on_failure_jump is happening as
-             the result of a completed succeed_n, as in \(a\)\{1,3\}b\1
-             against aba.  */
-          while (p1 < pend && (re_opcode_t) *p1 == no_op)
-            p1++;
-
-          if (p1 < pend && (re_opcode_t) *p1 == start_memory)
-            {
-              /* We have a new highest active register now.  This will
-                 get reset at the start_memory we are about to get to,
-                 but we will have saved all the registers relevant to
-                 this repetition op, as described above.  */
-              highest_active_reg = *(p1 + 1) + *(p1 + 2);
-              if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
-                lowest_active_reg = *(p1 + 1);
-            }
-
-          DEBUG_PRINT1 (":\n");
-          PUSH_FAILURE_POINT (p + mcnt, d, -2);
-          break;
-
-
-        /* A smart repeat ends with `maybe_pop_jump'.
-       We change it to either `pop_failure_jump' or `jump'.  */
-        case maybe_pop_jump:
-          EXTRACT_NUMBER_AND_INCR (mcnt, p);
-          DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt);
-          {
-        register unsigned char *p2 = p;
-
-            /* Compare the beginning of the repeat with what in the
-               pattern follows its end. If we can establish that there
-               is nothing that they would both match, i.e., that we
-               would have to backtrack because of (as in, e.g., `a*a')
-               then we can change to pop_failure_jump, because we'll
-               never have to backtrack.
-
-               This is not true in the case of alternatives: in
-               `(a|ab)*' we do need to backtrack to the `ab' alternative
-               (e.g., if the string was `ab').  But instead of trying to
-               detect that here, the alternative has put on a dummy
-               failure point which is what we will end up popping.  */
-
-        /* Skip over open/close-group commands.  */
-        while (p2 + 2 < pend
-           && ((re_opcode_t) *p2 == stop_memory
-               || (re_opcode_t) *p2 == start_memory))
-          p2 += 3;			/* Skip over args, too.  */
-
-            /* If we're at the end of the pattern, we can change.  */
-            if (p2 == pend)
-          {
-        /* Consider what happens when matching ":\(.*\)"
-           against ":/".  I don't really understand this code
-           yet.  */
-            p[-3] = (unsigned char) pop_failure_jump;
-                DEBUG_PRINT1
-                  ("  End of pattern: change to `pop_failure_jump'.\n");
-              }
-
-            else if ((re_opcode_t) *p2 == exactn
-             || (bufp->newline_anchor && (re_opcode_t) *p2 == endline))
-          {
-        register unsigned char c
-                  = *p2 == (unsigned char) endline ? '\n' : p2[2];
-        p1 = p + mcnt;
-
-                /* p1[0] ... p1[2] are the `on_failure_jump' corresponding
-                   to the `maybe_finalize_jump' of this case.  Examine what
-                   follows.  */
-                if ((re_opcode_t) p1[3] == exactn && p1[5] != c)
-                  {
-            p[-3] = (unsigned char) pop_failure_jump;
-                    DEBUG_PRINT3 ("  %c != %c => pop_failure_jump.\n",
-                                  c, p1[5]);
-                  }
-
-        else if ((re_opcode_t) p1[3] == charset
-             || (re_opcode_t) p1[3] == charset_not)
-          {
-            int not = (re_opcode_t) p1[3] == charset_not;
-
-            if (c < (unsigned char) (p1[4] * BYTEWIDTH)
-            && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-              not = !not;
-
-                    /* `not' is equal to 1 if c would match, which means
-                        that we can't change to pop_failure_jump.  */
-            if (!not)
-                      {
-                p[-3] = (unsigned char) pop_failure_jump;
-                        DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
-                      }
-          }
-          }
-      }
-      p -= 2;		/* Point at relative address again.  */
-      if ((re_opcode_t) p[-1] != pop_failure_jump)
-        {
-          p[-1] = (unsigned char) jump;
-              DEBUG_PRINT1 ("  Match => jump.\n");
-          goto unconditional_jump;
-        }
-        /* Note fall through.  */
-
-
-    /* The end of a simple repeat has a pop_failure_jump back to
-           its matching on_failure_jump, where the latter will push a
-           failure point.  The pop_failure_jump takes off failure
-           points put on by this pop_failure_jump's matching
-           on_failure_jump; we got through the pattern to here from the
-           matching on_failure_jump, so didn't fail.  */
-        case pop_failure_jump:
-          {
-            /* We need to pass separate storage for the lowest and
-               highest registers, even though we don't care about the
-               actual values.  Otherwise, we will restore only one
-               register from the stack, since lowest will == highest in
-               `pop_failure_point'.  */
-            unsigned dummy_low_reg, dummy_high_reg;
-            unsigned char *pdummy;
-            const char *sdummy;
-
-            DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n");
-            POP_FAILURE_POINT (sdummy, pdummy,
-                               dummy_low_reg, dummy_high_reg,
-                               reg_dummy, reg_dummy, reg_info_dummy);
-          }
-          /* Note fall through.  */
-
-
-        /* Unconditionally jump (without popping any failure points).  */
-        case jump:
-    unconditional_jump:
-      EXTRACT_NUMBER_AND_INCR (mcnt, p);	/* Get the amount to jump.  */
-          DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt);
-      p += mcnt;				/* Do the jump.  */
-          DEBUG_PRINT2 ("(to 0x%x).\n", p);
-      break;
-
-
-        /* We need this opcode so we can detect where alternatives end
-           in `group_match_null_string_p' et al.  */
-        case jump_past_alt:
-          DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n");
-          goto unconditional_jump;
-
-
-        /* Normally, the on_failure_jump pushes a failure point, which
-           then gets popped at pop_failure_jump.  We will end up at
-           pop_failure_jump, also, and with a pattern of, say, `a+', we
-           are skipping over the on_failure_jump, so we have to push
-           something meaningless for pop_failure_jump to pop.  */
-        case dummy_failure_jump:
-          DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n");
-          /* It doesn't matter what we push for the string here.  What
-             the code at `fail' tests is the value for the pattern.  */
-          PUSH_FAILURE_POINT (0, 0, -2);
-          goto unconditional_jump;
-
-
-        /* At the end of an alternative, we need to push a dummy failure
-           point in case we are followed by a `pop_failure_jump', because
-           we don't want the failure point for the alternative to be
-           popped.  For example, matching `(a|ab)*' against `aab'
-           requires that we match the `ab' alternative.  */
-        case push_dummy_failure:
-          DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n");
-          /* See comments just above at `dummy_failure_jump' about the
-             two zeroes.  */
-          PUSH_FAILURE_POINT (0, 0, -2);
-          break;
-
-        /* Have to succeed matching what follows at least n times.
-           After that, handle like `on_failure_jump'.  */
-        case succeed_n:
-          EXTRACT_NUMBER (mcnt, p + 2);
-          DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt);
-
-          assert (mcnt >= 0);
-          /* Originally, this is how many times we HAVE to succeed.  */
-          if (mcnt > 0)
-            {
-               mcnt--;
-           p += 2;
-               STORE_NUMBER_AND_INCR (p, mcnt);
-               DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p, mcnt);
-            }
-      else if (mcnt == 0)
-            {
-              DEBUG_PRINT2 ("  Setting two bytes from 0x%x to no_op.\n", p+2);
-          p[2] = (unsigned char) no_op;
-              p[3] = (unsigned char) no_op;
-              goto on_failure;
-            }
-          break;
-
-        case jump_n:
-          EXTRACT_NUMBER (mcnt, p + 2);
-          DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt);
-
-          /* Originally, this is how many times we CAN jump.  */
-          if (mcnt)
-            {
-               mcnt--;
-               STORE_NUMBER (p + 2, mcnt);
-           goto unconditional_jump;
-            }
-          /* If don't have to jump any more, skip over the rest of command.  */
-      else
-        p += 4;
-          break;
-
-    case set_number_at:
-      {
-            DEBUG_PRINT1 ("EXECUTING set_number_at.\n");
-
-            EXTRACT_NUMBER_AND_INCR (mcnt, p);
-            p1 = p + mcnt;
-            EXTRACT_NUMBER_AND_INCR (mcnt, p);
-            DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p1, mcnt);
-        STORE_NUMBER (p1, mcnt);
-            break;
-          }
-
-        case wordbound:
-          DEBUG_PRINT1 ("EXECUTING wordbound.\n");
-          if (AT_WORD_BOUNDARY (d))
-        break;
-          goto fail;
-
-    case notwordbound:
-          DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
-      if (AT_WORD_BOUNDARY (d))
-        goto fail;
-          break;
-
-    case wordbeg:
-          DEBUG_PRINT1 ("EXECUTING wordbeg.\n");
-      if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
-        break;
-          goto fail;
-
-    case wordend:
-          DEBUG_PRINT1 ("EXECUTING wordend.\n");
-      if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1)
-              && (!WORDCHAR_P (d) || AT_STRINGS_END (d)))
-        break;
-          goto fail;
-
-#ifdef emacs
-#ifdef emacs19
-    case before_dot:
-          DEBUG_PRINT1 ("EXECUTING before_dot.\n");
-      if (PTR_CHAR_POS ((unsigned char *) d) >= point)
-        goto fail;
-      break;
-
-    case at_dot:
-          DEBUG_PRINT1 ("EXECUTING at_dot.\n");
-      if (PTR_CHAR_POS ((unsigned char *) d) != point)
-        goto fail;
-      break;
-
-    case after_dot:
-          DEBUG_PRINT1 ("EXECUTING after_dot.\n");
-          if (PTR_CHAR_POS ((unsigned char *) d) <= point)
-        goto fail;
-      break;
-#else /* not emacs19 */
-    case at_dot:
-          DEBUG_PRINT1 ("EXECUTING at_dot.\n");
-      if (PTR_CHAR_POS ((unsigned char *) d) + 1 != point)
-        goto fail;
-      break;
-#endif /* not emacs19 */
-
-    case syntaxspec:
-          DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt);
-      mcnt = *p++;
-      goto matchsyntax;
-
-        case wordchar:
-          DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n");
-      mcnt = (int) Sword;
-        matchsyntax:
-      PREFETCH ();
-      if (SYNTAX (*d++) != (enum syntaxcode) mcnt)
-            goto fail;
-          SET_REGS_MATCHED ();
-      break;
-
-    case notsyntaxspec:
-          DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt);
-      mcnt = *p++;
-      goto matchnotsyntax;
-
-        case notwordchar:
-          DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n");
-      mcnt = (int) Sword;
-        matchnotsyntax:
-      PREFETCH ();
-      if (SYNTAX (*d++) == (enum syntaxcode) mcnt)
-            goto fail;
-      SET_REGS_MATCHED ();
-          break;
-
-#else /* not emacs */
-    case wordchar:
-          DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n");
-      PREFETCH ();
-          if (!WORDCHAR_P (d))
-            goto fail;
-      SET_REGS_MATCHED ();
-          d++;
-      break;
-
-    case notwordchar:
-          DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n");
-      PREFETCH ();
-      if (WORDCHAR_P (d))
-            goto fail;
-          SET_REGS_MATCHED ();
-          d++;
-      break;
-#endif /* not emacs */
-
-        default:
-          abort ();
-    }
-      continue;  /* Successfully executed one pattern command; keep going.  */
-
-
-    /* We goto here if a matching operation fails. */
-    fail:
-      if (!FAIL_STACK_EMPTY ())
-    { /* A restart point is known.  Restore to that state.  */
-          DEBUG_PRINT1 ("\nFAIL:\n");
-          POP_FAILURE_POINT (d, p,
-                             lowest_active_reg, highest_active_reg,
-                             regstart, regend, reg_info);
-
-          /* If this failure point is a dummy, try the next one.  */
-          if (!p)
-        goto fail;
-
-          /* If we failed to the end of the pattern, don't examine *p.  */
-      assert (p <= pend);
-          if (p < pend)
-            {
-              boolean is_a_jump_n = false;
-
-              /* If failed to a backwards jump that's part of a repetition
-                 loop, need to pop this failure point and use the next one.  */
-              switch ((re_opcode_t) *p)
-                {
-                case jump_n:
-                  is_a_jump_n = true;
-                case maybe_pop_jump:
-                case pop_failure_jump:
-                case jump:
-                  p1 = p + 1;
-                  EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-                  p1 += mcnt;
-
-                  if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n)
-                      || (!is_a_jump_n
-                          && (re_opcode_t) *p1 == on_failure_jump))
-                    goto fail;
-                  break;
-                default:
-                  /* do nothing */ ;
-                }
-            }
-
-          if (d >= string1 && d <= end1)
-        dend = end_match_1;
-        }
-      else
-        break;   /* Matching at this starting point really fails.  */
-    } /* for (;;) */
-
-  if (best_regs_set)
-    goto restore_best_regs;
-
-  FREE_VARIABLES ();
-
-  return -1;         			/* Failure to match.  */
-} /* re_match_2 */
-
-/* Subroutine definitions for re_match_2.  */
-
-
-/* We are passed P pointing to a register number after a start_memory.
-
-   Return true if the pattern up to the corresponding stop_memory can
-   match the empty string, and false otherwise.
-
-   If we find the matching stop_memory, sets P to point to one past its number.
-   Otherwise, sets P to an undefined byte less than or equal to END.
-
-   We don't handle duplicates properly (yet).  */
-
-static boolean
-group_match_null_string_p (p, end, reg_info)
-    unsigned char **p, *end;
-    register_info_type *reg_info;
-{
-  int mcnt;
-  /* Point to after the args to the start_memory.  */
-  unsigned char *p1 = *p + 2;
-
-  while (p1 < end)
-    {
-      /* Skip over opcodes that can match nothing, and return true or
-     false, as appropriate, when we get to one that can't, or to the
-         matching stop_memory.  */
-
-      switch ((re_opcode_t) *p1)
-        {
-        /* Could be either a loop or a series of alternatives.  */
-        case on_failure_jump:
-          p1++;
-          EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-
-          /* If the next operation is not a jump backwards in the
-         pattern.  */
-
-      if (mcnt >= 0)
-        {
-              /* Go through the on_failure_jumps of the alternatives,
-                 seeing if any of the alternatives cannot match nothing.
-                 The last alternative starts with only a jump,
-                 whereas the rest start with on_failure_jump and end
-                 with a jump, e.g., here is the pattern for `a|b|c':
-
-                 /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6
-                 /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3
-                 /exactn/1/c
-
-                 So, we have to first go through the first (n-1)
-                 alternatives and then deal with the last one separately.  */
-
-
-              /* Deal with the first (n-1) alternatives, which start
-                 with an on_failure_jump (see above) that jumps to right
-                 past a jump_past_alt.  */
-
-              while ((re_opcode_t) p1[mcnt-3] == jump_past_alt)
-                {
-                  /* `mcnt' holds how many bytes long the alternative
-                     is, including the ending `jump_past_alt' and
-                     its number.  */
-
-                  if (!alt_match_null_string_p (p1, p1 + mcnt - 3,
-                                      reg_info))
-                    return false;
-
-                  /* Move to right after this alternative, including the
-             jump_past_alt.  */
-                  p1 += mcnt;
-
-                  /* Break if it's the beginning of an n-th alternative
-                     that doesn't begin with an on_failure_jump.  */
-                  if ((re_opcode_t) *p1 != on_failure_jump)
-                    break;
-
-          /* Still have to check that it's not an n-th
-             alternative that starts with an on_failure_jump.  */
-          p1++;
-                  EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-                  if ((re_opcode_t) p1[mcnt-3] != jump_past_alt)
-                    {
-              /* Get to the beginning of the n-th alternative.  */
-                      p1 -= 3;
-                      break;
-                    }
-                }
-
-              /* Deal with the last alternative: go back and get number
-                 of the `jump_past_alt' just before it.  `mcnt' contains
-                 the length of the alternative.  */
-              EXTRACT_NUMBER (mcnt, p1 - 2);
-
-              if (!alt_match_null_string_p (p1, p1 + mcnt, reg_info))
-                return false;
-
-              p1 += mcnt;	/* Get past the n-th alternative.  */
-            } /* if mcnt > 0 */
-          break;
-
-
-        case stop_memory:
-      assert (p1[1] == **p);
-          *p = p1 + 2;
-          return true;
-
-
-        default:
-          if (!common_op_match_null_string_p (&p1, end, reg_info))
-            return false;
-        }
-    } /* while p1 < end */
-
-  return false;
-} /* group_match_null_string_p */
-
-
-/* Similar to group_match_null_string_p, but doesn't deal with alternatives:
-   It expects P to be the first byte of a single alternative and END one
-   byte past the last. The alternative can contain groups.  */
-
-static boolean
-alt_match_null_string_p (p, end, reg_info)
-    unsigned char *p, *end;
-    register_info_type *reg_info;
-{
-  int mcnt;
-  unsigned char *p1 = p;
-
-  while (p1 < end)
-    {
-      /* Skip over opcodes that can match nothing, and break when we get
-         to one that can't.  */
-
-      switch ((re_opcode_t) *p1)
-        {
-    /* It's a loop.  */
-        case on_failure_jump:
-          p1++;
-          EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-          p1 += mcnt;
-          break;
-
-    default:
-          if (!common_op_match_null_string_p (&p1, end, reg_info))
-            return false;
-        }
-    }  /* while p1 < end */
-
-  return true;
-} /* alt_match_null_string_p */
-
-
-/* Deals with the ops common to group_match_null_string_p and
-   alt_match_null_string_p.
-
-   Sets P to one after the op and its arguments, if any.  */
-
-static boolean
-common_op_match_null_string_p (p, end, reg_info)
-    unsigned char **p, *end;
-    register_info_type *reg_info;
-{
-  int mcnt;
-  boolean ret;
-  int reg_no;
-  unsigned char *p1 = *p;
-
-  switch ((re_opcode_t) *p1++)
-    {
-    case no_op:
-    case begline:
-    case endline:
-    case begbuf:
-    case endbuf:
-    case wordbeg:
-    case wordend:
-    case wordbound:
-    case notwordbound:
-#ifdef emacs
-    case before_dot:
-    case at_dot:
-    case after_dot:
-#endif
-      break;
-
-    case start_memory:
-      reg_no = *p1;
-      assert (reg_no > 0 && reg_no <= MAX_REGNUM);
-      ret = group_match_null_string_p (&p1, end, reg_info);
-
-      /* Have to set this here in case we're checking a group which
-         contains a group and a back reference to it.  */
-
-      if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE)
-        REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret;
-
-      if (!ret)
-        return false;
-      break;
-
-    /* If this is an optimized succeed_n for zero times, make the jump.  */
-    case jump:
-      EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-      if (mcnt >= 0)
-        p1 += mcnt;
-      else
-        return false;
-      break;
-
-    case succeed_n:
-      /* Get to the number of times to succeed.  */
-      p1 += 2;
-      EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-
-      if (mcnt == 0)
-        {
-          p1 -= 4;
-          EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-          p1 += mcnt;
-        }
-      else
-        return false;
-      break;
-
-    case duplicate:
-      if (!REG_MATCH_NULL_STRING_P (reg_info[*p1]))
-        return false;
-      break;
-
-    case set_number_at:
-      p1 += 4;
-
-    default:
-      /* All other opcodes mean we cannot match the empty string.  */
-      return false;
-  }
-
-  *p = p1;
-  return true;
-} /* common_op_match_null_string_p */
-
-
-/* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN
-   bytes; nonzero otherwise.  */
-
-static int
-bcmp_translate (s1, s2, len, translate)
-     unsigned char *s1, *s2;
-     register int len;
-     char *translate;
-{
-  register unsigned char *p1 = s1, *p2 = s2;
-  while (len)
-    {
-      if (translate[*p1++] != translate[*p2++]) return 1;
-      len--;
-    }
-  return 0;
-}
-
-/* Entry points for GNU code.  */
-
-/* re_compile_pattern is the GNU regular expression compiler: it
-   compiles PATTERN (of length SIZE) and puts the result in BUFP.
-   Returns 0 if the pattern was valid, otherwise an error string.
-
-   Assumes the `allocated' (and perhaps `buffer') and `translate' fields
-   are set in BUFP on entry.
-
-   We call regex_compile to do the actual compilation.  */
-
-const char *
-re_compile_pattern (pattern, length, bufp)
-     const char *pattern;
-     int length;
-     struct re_pattern_buffer *bufp;
-{
-  reg_errcode_t ret;
-
-  /* GNU code is written to assume at least RE_NREGS registers will be set
-     (and at least one extra will be -1).  */
-  bufp->regs_allocated = REGS_UNALLOCATED;
-
-  /* And GNU code determines whether or not to get register information
-     by passing null for the REGS argument to re_match, etc., not by
-     setting no_sub.  */
-  bufp->no_sub = 0;
-
-  /* Match anchors at newline.  */
-  bufp->newline_anchor = 1;
-
-  ret = regex_compile (pattern, length, re_syntax_options, bufp);
-
-  return re_error_msg[(int) ret];
-}
-
-/* Entry points compatible with 4.2 BSD regex library.  We don't define
-   them if this is an Emacs or POSIX compilation.  */
-
-#if !defined (emacs) && !defined (_POSIX_SOURCE)
-
-/* BSD has one and only one pattern buffer.  */
-static struct re_pattern_buffer re_comp_buf;
-
-char *
-re_comp (s)
-    const char *s;
-{
-  reg_errcode_t ret;
-
-  if (!s)
-    {
-      if (!re_comp_buf.buffer)
-    return "No previous regular expression";
-      return 0;
-    }
-
-  if (!re_comp_buf.buffer)
-    {
-      re_comp_buf.buffer = (unsigned char *) malloc (200);
-      if (re_comp_buf.buffer == NULL)
-        return "Memory exhausted";
-      re_comp_buf.allocated = 200;
-
-      re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);
-      if (re_comp_buf.fastmap == NULL)
-    return "Memory exhausted";
-    }
-
-  /* Since `re_exec' always passes NULL for the `regs' argument, we
-     don't need to initialize the pattern buffer fields which affect it.  */
-
-  /* Match anchors at newlines.  */
-  re_comp_buf.newline_anchor = 1;
-
-  ret = regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf);
-
-  /* Yes, we're discarding `const' here.  */
-  return (char *) re_error_msg[(int) ret];
-}
-
-
-int
-re_exec (s)
-    const char *s;
-{
-  const int len = strlen (s);
-  return
-    0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0);
-}
-#endif /* not emacs and not _POSIX_SOURCE */
-
-/* POSIX.2 functions.  Don't define these for Emacs.  */
-
-#ifndef emacs
-
-/* regcomp takes a regular expression as a string and compiles it.
-
-   PREG is a regex_t *.  We do not expect any fields to be initialized,
-   since POSIX says we shouldn't.  Thus, we set
-
-     `buffer' to the compiled pattern;
-     `used' to the length of the compiled pattern;
-     `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
-       REG_EXTENDED bit in CFLAGS is set; otherwise, to
-       RE_SYNTAX_POSIX_BASIC;
-     `newline_anchor' to REG_NEWLINE being set in CFLAGS;
-     `fastmap' and `fastmap_accurate' to zero;
-     `re_nsub' to the number of subexpressions in PATTERN.
-
-   PATTERN is the address of the pattern string.
-
-   CFLAGS is a series of bits which affect compilation.
-
-     If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
-     use POSIX basic syntax.
-
-     If REG_NEWLINE is set, then . and [^...] don't match newline.
-     Also, regexec will try a match beginning after every newline.
-
-     If REG_ICASE is set, then we considers upper- and lowercase
-     versions of letters to be equivalent when matching.
-
-     If REG_NOSUB is set, then when PREG is passed to regexec, that
-     routine will report only success or failure, and nothing about the
-     registers.
-
-   It returns 0 if it succeeds, nonzero if it doesn't.  (See regex.h for
-   the return codes and their meanings.)  */
-
-int
-regcomp (preg, pattern, cflags)
-    regex_t *preg;
-    const char *pattern;
-    int cflags;
-{
-  reg_errcode_t ret;
-  unsigned syntax
-    = (cflags & REG_EXTENDED) ?
-      RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC;
-
-  /* regex_compile will allocate the space for the compiled pattern.  */
-  preg->buffer = 0;
-  preg->allocated = 0;
-
-  /* Don't bother to use a fastmap when searching.  This simplifies the
-     REG_NEWLINE case: if we used a fastmap, we'd have to put all the
-     characters after newlines into the fastmap.  This way, we just try
-     every character.  */
-  preg->fastmap = 0;
-
-  if (cflags & REG_ICASE)
-    {
-      unsigned i;
-
-      preg->translate = (char *) malloc (CHAR_SET_SIZE);
-      if (preg->translate == NULL)
-        return (int) REG_ESPACE;
-
-      /* Map uppercase characters to corresponding lowercase ones.  */
-      for (i = 0; i < CHAR_SET_SIZE; i++)
-        preg->translate[i] = ISUPPER (i) ? tolower (i) : i;
-    }
-  else
-    preg->translate = NULL;
-
-  /* If REG_NEWLINE is set, newlines are treated differently.  */
-  if (cflags & REG_NEWLINE)
-    { /* REG_NEWLINE implies neither . nor [^...] match newline.  */
-      syntax &= ~RE_DOT_NEWLINE;
-      syntax |= RE_HAT_LISTS_NOT_NEWLINE;
-      /* It also changes the matching behavior.  */
-      preg->newline_anchor = 1;
-    }
-  else
-    preg->newline_anchor = 0;
-
-  preg->no_sub = !!(cflags & REG_NOSUB);
-
-  /* POSIX says a null character in the pattern terminates it, so we
-     can use strlen here in compiling the pattern.  */
-  ret = regex_compile (pattern, strlen (pattern), syntax, preg);
-
-  /* POSIX doesn't distinguish between an unmatched open-group and an
-     unmatched close-group: both are REG_EPAREN.  */
-  if (ret == REG_ERPAREN) ret = REG_EPAREN;
-
-  return (int) ret;
-}
-
-
-/* regexec searches for a given pattern, specified by PREG, in the
-   string STRING.
-
-   If NMATCH is zero or REG_NOSUB was set in the cflags argument to
-   `regcomp', we ignore PMATCH.  Otherwise, we assume PMATCH has at
-   least NMATCH elements, and we set them to the offsets of the
-   corresponding matched substrings.
-
-   EFLAGS specifies `execution flags' which affect matching: if
-   REG_NOTBOL is set, then ^ does not match at the beginning of the
-   string; if REG_NOTEOL is set, then $ does not match at the end.
-
-   We return 0 if we find a match and REG_NOMATCH if not.  */
-
-int
-regexec (preg, string, nmatch, pmatch, eflags)
-    const regex_t *preg;
-    const char *string;
-    size_t nmatch;
-    regmatch_t pmatch[];
-    int eflags;
-{
-  int ret;
-  struct re_registers regs;
-  regex_t private_preg;
-  int len = strlen (string);
-  boolean want_reg_info = !preg->no_sub && nmatch > 0;
-
-  private_preg = *preg;
-
-  private_preg.not_bol = !!(eflags & REG_NOTBOL);
-  private_preg.not_eol = !!(eflags & REG_NOTEOL);
-
-  /* The user has told us exactly how many registers to return
-     information about, via `nmatch'.  We have to pass that on to the
-     matching routines.  */
-  private_preg.regs_allocated = REGS_FIXED;
-
-  if (want_reg_info)
-    {
-      regs.num_regs = nmatch;
-      regs.start = TALLOC (nmatch, regoff_t);
-      regs.end = TALLOC (nmatch, regoff_t);
-      if (regs.start == NULL || regs.end == NULL)
-        return (int) REG_NOMATCH;
-    }
-
-  /* Perform the searching operation.  */
-  ret = re_search (&private_preg, string, len,
-                   /* start: */ 0, /* range: */ len,
-                   want_reg_info ? &regs : (struct re_registers *) 0);
-
-  /* Copy the register information to the POSIX structure.  */
-  if (want_reg_info)
-    {
-      if (ret >= 0)
-        {
-          unsigned r;
-
-          for (r = 0; r < nmatch; r++)
-            {
-              pmatch[r].rm_so = regs.start[r];
-              pmatch[r].rm_eo = regs.end[r];
-            }
-        }
-
-      /* If we needed the temporary register info, free the space now.  */
-      free (regs.start);
-      free (regs.end);
-    }
-
-  /* We want zero return to mean success, unlike `re_search'.  */
-  return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH;
-}
-
-
-/* Returns a message corresponding to an error code, ERRCODE, returned
-   from either regcomp or regexec.   We don't use PREG here.  */
-
-size_t
-regerror (errcode_v, preg, errbuf, errbuf_size)
-    int errcode_v;
-    const regex_t *preg;
-    char *errbuf;
-    size_t errbuf_size;
-{
-  const char *msg;
-  size_t msg_size;
-
-  if (errcode_v < 0
-      || errcode_v >= (sizeof (re_error_msg) / sizeof (re_error_msg[0])))
-    /* Only error codes returned by the rest of the code should be passed
-       to this routine.  If we are given anything else, or if other regex
-       code generates an invalid error code, then the program has a bug.
-       Dump core so we can fix it.  */
-    abort ();
-
-  msg = re_error_msg[errcode_v];
-
-  /* POSIX doesn't require that we do anything in this case, but why
-     not be nice.  */
-  if (! msg)
-    msg = "Success";
-
-  msg_size = strlen (msg) + 1; /* Includes the null.  */
-
-  if (errbuf_size != 0)
-    {
-      if (msg_size > errbuf_size)
-        {
-          strncpy (errbuf, msg, errbuf_size - 1);
-          errbuf[errbuf_size - 1] = 0;
-        }
-      else
-        strcpy (errbuf, msg);
-    }
-
-  return msg_size;
-}
-
-
-/* Free dynamically allocated space used by PREG.  */
-
-void
-regfree (preg)
-    regex_t *preg;
-{
-  if (preg->buffer != NULL)
-    free (preg->buffer);
-  preg->buffer = NULL;
-
-  preg->allocated = 0;
-  preg->used = 0;
-
-  if (preg->fastmap != NULL)
-    free (preg->fastmap);
-  preg->fastmap = NULL;
-  preg->fastmap_accurate = 0;
-
-  if (preg->translate != NULL)
-    free (preg->translate);
-  preg->translate = NULL;
-}
-
-#endif /* not emacs  */
-
-/*
-Local variables:
-make-backup-files: t
-version-control: t
-trim-versions-without-asking: nil
-End:
-*/
diff --git a/apertium/win32/regex.h b/apertium/win32/regex.h
deleted file mode 100644
index 39511de..0000000
--- a/apertium/win32/regex.h
+++ /dev/null
@@ -1,498 +0,0 @@
-/* Definitions for data structures and routines for the regular
-   expression library, version 0.12.
-
-   Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-#ifndef __REGEXP_LIBRARY_H__
-#define __REGEXP_LIBRARY_H__
-
-#ifdef __cplusplus
-  extern "C" {
-#endif
-
-/* POSIX says that <sys/types.h> must be included (by the caller) before
-   <regex.h>.  */
-
-#ifdef VMS
-/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
-   should be there.  */
-#include <stddef.h>
-#endif
-
-
-/* The following bits are used to determine the regexp syntax we
-   recognize.  The set/not-set meanings are chosen so that Emacs syntax
-   remains the value 0.  The bits are given in alphabetical order, and
-   the definitions shifted by one from the previous bit; thus, when we
-   add or remove a bit, only one other definition need change.  */
-typedef unsigned reg_syntax_t;
-
-/* If this bit is not set, then \ inside a bracket expression is literal.
-   If set, then such a \ quotes the following character.  */
-#define RE_BACKSLASH_ESCAPE_IN_LISTS (1)
-
-/* If this bit is not set, then + and ? are operators, and \+ and \? are
-	 literals.
-   If set, then \+ and \? are operators and + and ? are literals.  */
-#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
-
-/* If this bit is set, then character classes are supported.  They are:
-	 [:alpha:], [:upper:], [:lower:],  [:digit:], [:alnum:], [:xdigit:],
-	 [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
-   If not set, then character classes are not supported.  */
-#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
-
-/* If this bit is set, then ^ and $ are always anchors (outside bracket
-	 expressions, of course).
-   If this bit is not set, then it depends:
-		^  is an anchor if it is at the beginning of a regular
-		   expression or after an open-group or an alternation operator;
-		$  is an anchor if it is at the end of a regular expression, or
-		   before a close-group or an alternation operator.
-
-   This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
-   POSIX draft 11.2 says that * etc. in leading positions is undefined.
-   We already implemented a previous draft which made those constructs
-   invalid, though, so we haven't changed the code back.  */
-#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
-
-/* If this bit is set, then special characters are always special
-	 regardless of where they are in the pattern.
-   If this bit is not set, then special characters are special only in
-	 some contexts; otherwise they are ordinary.  Specifically,
-	 * + ? and intervals are only special when not after the beginning,
-	 open-group, or alternation operator.  */
-#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
-
-/* If this bit is set, then *, +, ?, and { cannot be first in an re or
-	 immediately after an alternation or begin-group operator.  */
-#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
-
-/* If this bit is set, then . matches newline.
-   If not set, then it doesn't.  */
-#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
-
-/* If this bit is set, then . doesn't match NUL.
-   If not set, then it does.  */
-#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
-
-/* If this bit is set, nonmatching lists [^...] do not match newline.
-   If not set, they do.  */
-#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
-
-/* If this bit is set, either \{...\} or {...} defines an
-	 interval, depending on RE_NO_BK_BRACES.
-   If not set, \{, \}, {, and } are literals.  */
-#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-
-/* If this bit is set, +, ? and | aren't recognized as operators.
-   If not set, they are.  */
-#define RE_LIMITED_OPS (RE_INTERVALS << 1)
-
-/* If this bit is set, newline is an alternation operator.
-   If not set, newline is literal.  */
-#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
-
-/* If this bit is set, then `{...}' defines an interval, and \{ and \}
-	 are literals.
-  If not set, then `\{...\}' defines an interval.  */
-#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
-
-/* If this bit is set, (...) defines a group, and \( and \) are literals.
-   If not set, \(...\) defines a group, and ( and ) are literals.  */
-#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
-
-/* If this bit is set, then \<digit> matches <digit>.
-   If not set, then \<digit> is a back-reference.  */
-#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
-
-/* If this bit is set, then | is an alternation operator, and \| is literal.
-   If not set, then \| is an alternation operator, and | is literal.  */
-#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
-
-/* If this bit is set, then an ending range point collating higher
-	 than the starting range point, as in [z-a], is invalid.
-   If not set, then when ending range point collates higher than the
-	 starting range point, the range is ignored.  */
-#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
-
-/* If this bit is set, then an unmatched ) is ordinary.
-   If not set, then an unmatched ) is invalid.  */
-#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
-
-/* This global variable defines the particular regexp syntax to use (for
-   some interfaces).  When a regexp is compiled, the syntax used is
-   stored in the pattern buffer, so changing this does not affect
-   already-compiled regexps.  */
-extern reg_syntax_t re_syntax_options;
-
-/* Define combinations of the above bits for the standard possibilities.
-   (The [[[ comments delimit what gets put into the Texinfo file, so
-   don't delete them!)  */
-/* [[[begin syntaxes]]] */
-#define RE_SYNTAX_EMACS 0
-
-#define RE_SYNTAX_AWK							\
-  (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL			\
-   | RE_NO_BK_PARENS            | RE_NO_BK_REFS				\
-   | RE_NO_BK_VBAR               | RE_NO_EMPTY_RANGES			\
-   | RE_UNMATCHED_RIGHT_PAREN_ORD)
-
-#define RE_SYNTAX_POSIX_AWK 						\
-  (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS)
-
-#define RE_SYNTAX_GREP							\
-  (RE_BK_PLUS_QM              | RE_CHAR_CLASSES				\
-   | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS				\
-   | RE_NEWLINE_ALT)
-
-#define RE_SYNTAX_EGREP							\
-  (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS			\
-   | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE			\
-   | RE_NEWLINE_ALT       | RE_NO_BK_PARENS				\
-   | RE_NO_BK_VBAR)
-
-#define RE_SYNTAX_POSIX_EGREP						\
-  (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
-
-/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
-#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
-
-#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
-
-/* Syntax bits common to both basic and extended POSIX regex syntax.  */
-#define _RE_SYNTAX_POSIX_COMMON						\
-  (RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL		\
-   | RE_INTERVALS  | RE_NO_EMPTY_RANGES)
-
-#define RE_SYNTAX_POSIX_BASIC						\
-  (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
-
-/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
-   RE_LIMITED_OPS, i.e., \? \+ \| are not recognized.  Actually, this
-   isn't minimal, since other operators, such as \`, aren't disabled.  */
-#define RE_SYNTAX_POSIX_MINIMAL_BASIC					\
-  (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
-
-#define RE_SYNTAX_POSIX_EXTENDED					\
-  (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS			\
-   | RE_CONTEXT_INDEP_OPS  | RE_NO_BK_BRACES				\
-   | RE_NO_BK_PARENS       | RE_NO_BK_VBAR				\
-   | RE_UNMATCHED_RIGHT_PAREN_ORD)
-
-/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
-   replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added.  */
-#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED				\
-  (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS			\
-   | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES				\
-   | RE_NO_BK_PARENS        | RE_NO_BK_REFS				\
-   | RE_NO_BK_VBAR	    | RE_UNMATCHED_RIGHT_PAREN_ORD)
-/* [[[end syntaxes]]] */
-
-/* Maximum number of duplicates an interval can allow.  Some systems
-   (erroneously) define this in other header files, but we want our
-   value, so remove any previous define.  */
-#ifdef RE_DUP_MAX
-#undef RE_DUP_MAX
-#endif
-#define RE_DUP_MAX ((1 << 15) - 1)
-
-
-/* POSIX `cflags' bits (i.e., information for `regcomp').  */
-
-/* If this bit is set, then use extended regular expression syntax.
-   If not set, then use basic regular expression syntax.  */
-#define REG_EXTENDED 1
-
-/* If this bit is set, then ignore case when matching.
-   If not set, then case is significant.  */
-#define REG_ICASE (REG_EXTENDED << 1)
-
-/* If this bit is set, then anchors do not match at newline
-	 characters in the string.
-   If not set, then anchors do match at newlines.  */
-#define REG_NEWLINE (REG_ICASE << 1)
-
-/* If this bit is set, then report only success or fail in regexec.
-   If not set, then returns differ between not matching and errors.  */
-#define REG_NOSUB (REG_NEWLINE << 1)
-
-
-/* POSIX `eflags' bits (i.e., information for regexec).  */
-
-/* If this bit is set, then the beginning-of-line operator doesn't match
-	 the beginning of the string (presumably because it's not the
-	 beginning of a line).
-   If not set, then the beginning-of-line operator does match the
-	 beginning of the string.  */
-#define REG_NOTBOL 1
-
-/* Like REG_NOTBOL, except for the end-of-line.  */
-#define REG_NOTEOL (1 << 1)
-
-
-/* If any error codes are removed, changed, or added, update the
-   `re_error_msg' table in regex.c.  */
-typedef enum
-{
-  REG_NOERROR = 0,	/* Success.  */
-  REG_NOMATCH,		/* Didn't find a match (for regexec).  */
-
-  /* POSIX regcomp return error codes.  (In the order listed in the
-	 standard.)  */
-  REG_BADPAT,		/* Invalid pattern.  */
-  REG_ECOLLATE,		/* Not implemented.  */
-  REG_ECTYPE,		/* Invalid character class name.  */
-  REG_EESCAPE,		/* Trailing backslash.  */
-  REG_ESUBREG,		/* Invalid back reference.  */
-  REG_EBRACK,		/* Unmatched left bracket.  */
-  REG_EPAREN,		/* Parenthesis imbalance.  */
-  REG_EBRACE,		/* Unmatched \{.  */
-  REG_BADBR,		/* Invalid contents of \{\}.  */
-  REG_ERANGE,		/* Invalid range end.  */
-  REG_ESPACE,		/* Ran out of memory.  */
-  REG_BADRPT,		/* No preceding re for repetition op.  */
-
-  /* Error codes we've added.  */
-  REG_EEND,		/* Premature end.  */
-  REG_ESIZE,		/* Compiled pattern bigger than 2^16 bytes.  */
-  REG_ERPAREN		/* Unmatched ) or \); not returned from regcomp.  */
-} reg_errcode_t;
-
-/* This data structure represents a compiled pattern.  Before calling
-   the pattern compiler, the fields `buffer', `allocated', `fastmap',
-   `translate', and `no_sub' can be set.  After the pattern has been
-   compiled, the `re_nsub' field is available.  All other fields are
-   private to the regex routines.  */
-
-struct re_pattern_buffer
-{
-/* [[[begin pattern_buffer]]] */
-	/* Space that holds the compiled pattern.  It is declared as
-		  `unsigned char *' because its elements are
-		   sometimes used as array indexes.  */
-  unsigned char *buffer;
-
-	/* Number of bytes to which `buffer' points.  */
-  unsigned long allocated;
-
-	/* Number of bytes actually used in `buffer'.  */
-  unsigned long used;
-
-		/* Syntax setting with which the pattern was compiled.  */
-  reg_syntax_t syntax;
-
-		/* Pointer to a fastmap, if any, otherwise zero.  re_search uses
-		   the fastmap, if there is one, to skip over impossible
-		   starting points for matches.  */
-  char *fastmap;
-
-		/* Either a translate table to apply to all characters before
-		   comparing them, or zero for no translation.  The translation
-		   is applied to a pattern when it is compiled and to a string
-		   when it is matched.  */
-  char *translate;
-
-	/* Number of subexpressions found by the compiler.  */
-  size_t re_nsub;
-
-		/* Zero if this pattern cannot match the empty string, one else.
-		   Well, in truth it's used only in `re_search_2', to see
-		   whether or not we should use the fastmap, so we don't set
-		   this absolutely perfectly; see `re_compile_fastmap' (the
-		   `duplicate' case).  */
-  unsigned can_be_null : 1;
-
-		/* If REGS_UNALLOCATED, allocate space in the `regs' structure
-			 for `max (RE_NREGS, re_nsub + 1)' groups.
-		   If REGS_REALLOCATE, reallocate space if necessary.
-		   If REGS_FIXED, use what's there.  */
-#define REGS_UNALLOCATED 0
-#define REGS_REALLOCATE 1
-#define REGS_FIXED 2
-  unsigned regs_allocated : 2;
-
-		/* Set to zero when `regex_compile' compiles a pattern; set to one
-		   by `re_compile_fastmap' if it updates the fastmap.  */
-  unsigned fastmap_accurate : 1;
-
-		/* If set, `re_match_2' does not return information about
-		   subexpressions.  */
-  unsigned no_sub : 1;
-
-		/* If set, a beginning-of-line anchor doesn't match at the
-		   beginning of the string.  */
-  unsigned not_bol : 1;
-
-		/* Similarly for an end-of-line anchor.  */
-  unsigned not_eol : 1;
-
-		/* If true, an anchor at a newline matches.  */
-  unsigned newline_anchor : 1;
-
-/* [[[end pattern_buffer]]] */
-};
-
-typedef struct re_pattern_buffer regex_t;
-
-
-/* search.c (search_buffer) in Emacs needs this one opcode value.  It is
-   defined both in `regex.c' and here.  */
-#define RE_EXACTN_VALUE 1
-
-/* Type for byte offsets within the string.  POSIX mandates this.  */
-typedef int regoff_t;
-
-
-/* This is the structure we store register match data in.  See
-   regex.texinfo for a full description of what registers match.  */
-struct re_registers
-{
-  unsigned num_regs;
-  regoff_t *start;
-  regoff_t *end;
-};
-
-
-/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
-   `re_match_2' returns information about at least this many registers
-   the first time a `regs' structure is passed.  */
-#ifndef RE_NREGS
-#define RE_NREGS 30
-#endif
-
-
-/* POSIX specification for registers.  Aside from the different names than
-   `re_registers', POSIX uses an array of structures, instead of a
-   structure of arrays.  */
-typedef struct
-{
-  regoff_t rm_so;  /* Byte offset from string's start to substring's start.  */
-  regoff_t rm_eo;  /* Byte offset from string's start to substring's end.  */
-} regmatch_t;
-
-/* Declarations for routines.  */
-
-/* To avoid duplicating every routine declaration -- once with a
-   prototype (if we are ANSI), and once without (if we aren't) -- we
-   use the following macro to declare argument types.  This
-   unfortunately clutters up the declarations a bit, but I think it's
-   worth it.  */
-
-#if __STDC__
-
-#define _RE_ARGS(args) args
-
-#else /* not __STDC__ */
-
-#define _RE_ARGS(args) ()
-
-#endif /* not __STDC__ */
-
-/* Sets the current default syntax to SYNTAX, and return the old syntax.
-   You can also simply assign to the `re_syntax_options' variable.  */
-extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
-
-/* Compile the regular expression PATTERN, with length LENGTH
-   and syntax given by the global `re_syntax_options', into the buffer
-   BUFFER.  Return NULL if successful, and an error string if not.  */
-extern const char *re_compile_pattern
-  _RE_ARGS ((const char *pattern, int length,
-			 struct re_pattern_buffer *buffer));
-
-
-/* Compile a fastmap for the compiled pattern in BUFFER; used to
-   accelerate searches.  Return 0 if successful and -2 if was an
-   internal error.  */
-extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
-
-
-/* Search in the string STRING (with length LENGTH) for the pattern
-   compiled into BUFFER.  Start searching at position START, for RANGE
-   characters.  Return the starting position of the match, -1 for no
-   match, or -2 for an internal error.  Also return register
-   information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
-extern int re_search
-  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
-			int length, int start, int range, struct re_registers *regs));
-
-
-/* Like `re_search', but search in the concatenation of STRING1 and
-   STRING2.  Also, stop searching at index START + STOP.  */
-extern int re_search_2
-  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
-			 int length1, const char *string2, int length2,
-			 int start, int range, struct re_registers *regs, int stop));
-
-
-/* Like `re_search', but return how many characters in STRING the regexp
-   in BUFFER matched, starting at position START.  */
-extern int re_match
-  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
-			 int length, int start, struct re_registers *regs));
-
-
-/* Relates to `re_match' as `re_search_2' relates to `re_search'.  */
-extern int re_match_2
-  _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
-			 int length1, const char *string2, int length2,
-			 int start, struct re_registers *regs, int stop));
-
-
-/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
-   ENDS.  Subsequent matches using BUFFER and REGS will use this memory
-   for recording register information.  STARTS and ENDS must be
-   allocated with malloc, and must each be at least `NUM_REGS * sizeof
-   (regoff_t)' bytes long.
-
-   If NUM_REGS == 0, then subsequent matches should allocate their own
-   register data.
-
-   Unless this function is called, the first search or match using
-   PATTERN_BUFFER will allocate its own register data, without
-   freeing the old data.  */
-extern void re_set_registers
-  _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
-			 unsigned num_regs, regoff_t *starts, regoff_t *ends));
-
-/* 4.2 bsd compatibility.  */
-extern char *re_comp _RE_ARGS ((const char *));
-extern int re_exec _RE_ARGS ((const char *));
-
-/* POSIX compatibility.  */
-extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
-extern int regexec
-  _RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
-			 regmatch_t pmatch[], int eflags));
-extern size_t regerror
-  _RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
-			 size_t errbuf_size));
-extern void regfree _RE_ARGS ((regex_t *preg));
-
-#ifdef __cplusplus
-  }
-#endif
-
-#endif /* not __REGEXP_LIBRARY_H__ */
-
-/*
-Local variables:
-make-backup-files: t
-version-control: t
-trim-versions-without-asking: nil
-End:
-*/
diff --git a/apertium/win32/runner_skeleton.c b/apertium/win32/runner_skeleton.c
deleted file mode 100644
index 00597f1..0000000
--- a/apertium/win32/runner_skeleton.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include <stdio.h>
-#include <conio.h>
-#include <process.h>
-#include <direct.h>
-#include <stdlib.h>
-#include <string.h>
-#include <wchar.h>
-
-#define PATH_BUF_SIZE 8191
-#define NUM_EXEC_ARGS 3
-#define ARG_BUF_SIZE (8191 - NUM_EXEC_ARGS)
-#define ENV_VAR_SIZE 32768
-
-/* Strip the last component off a pathname.
-   Thus, parent("a\b\c") -> "a\b" */
-char* parent(char* parent_buf) {
-        char* pos = strrchr(parent_buf, '\\');
-        pos[0] = '\0';
-
-        return parent_buf;
-}
-
-/* Remove the .exe if the user invoked this executable with its extension.
-   That is, if the user typed something like apertium.exe instead of apertium. */
-char* remove_extension(char* buf) {
-        char* pos = strrchr(buf, '.');
-
-        if (pos != NULL && strcmp(pos, ".exe") == 0) {
-                pos[0] = '\0';
-        }
-
-        return buf;
-}
-
-#define MIN(x, y) ((x) < (y) ? x : y)
-
-int main(int argc, char* argv[]) {
-        char *args[ARG_BUF_SIZE];
-        char base_path[PATH_BUF_SIZE + 1];
-        char script_path[PATH_BUF_SIZE + 1];
-        char shell_path[PATH_BUF_SIZE + 1];
-        char env_path[ENV_VAR_SIZE];
-        int argi;
-
-        _fullpath(shell_path, argv[0], PATH_BUF_SIZE);
-        strcpy(script_path, shell_path);
-        strcpy(base_path, shell_path);
-
-        parent(shell_path);
-        strcat(shell_path, "\\sh.exe");
-
-        remove_extension(script_path);
-        parent(base_path);
-
-        args[0] = shell_path;
-        args[1] = "--norc";
-        args[2] = script_path;
-
-        /* Any parameters passed on the command line will be passed through to the shell script */
-        for (argi = 0; argi < MIN(argc - 1, ARG_BUF_SIZE); argi++) {
-                printf("%s\n", argv[argi + 1]);
-                args[argi + NUM_EXEC_ARGS] = argv[argi + 1];
-        }
-        /* Signal the end of the argument list */
-        args[argi + NUM_EXEC_ARGS] = NULL;
-
-        /* Add this executable's directory to the path */
-        strcpy(env_path, "PATH=");
-        strcat(env_path, getenv("PATH"));
-        strcat(env_path, ";");
-        strcat(env_path, base_path);
-        _putenv(env_path);
-
-        _spawnv(_P_WAIT, args[0], &args[1]);
-
-        _flushall();
-}
diff --git a/apertium/win32/snprintf.c b/apertium/win32/snprintf.c
deleted file mode 100644
index 86f42e9..0000000
--- a/apertium/win32/snprintf.c
+++ /dev/null
@@ -1,1025 +0,0 @@
-/*
- * snprintf.c - a portable implementation of snprintf
- *
- * AUTHOR
- *   Mark Martinec <mark.martinec at ijs.si>, April 1999.
- *
- *   Copyright 1999, Mark Martinec. All rights reserved.
- *
- * TERMS AND CONDITIONS
- *   This program is free software; you can redistribute it and/or modify
- *   it under the terms of the "Frontier Artistic License" which comes
- *   with this Kit.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty
- *   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *   See the Frontier Artistic License for more details.
- *
- *   You should have received a copy of the Frontier Artistic License
- *   with this Kit in the file named LICENSE.txt .
- *   If not, I'll be glad to provide one.
- *
- * FEATURES
- * - careful adherence to specs regarding flags, field width and precision;
- * - good performance for large string handling (large format, large
- *   argument or large paddings). Performance is similar to system's sprintf
- *   and in several cases significantly better (make sure you compile with
- *   optimizations turned on, tell the compiler the code is strict ANSI
- *   if necessary to give it more freedom for optimizations);
- * - return value semantics per ISO/IEC 9899:1999 ("ISO C99");
- * - written in standard ISO/ANSI C - requires an ANSI C compiler.
- *
- * SUPPORTED CONVERSION SPECIFIERS AND DATA TYPES
- *
- * This snprintf only supports the following conversion specifiers:
- * s, c, d, u, o, x, X, p  (and synonyms: i, D, U, O - see below)
- * with flags: '-', '+', ' ', '0' and '#'.
- * An asterisk is supported for field width as well as precision.
- *
- * Length modifiers 'h' (short int), 'l' (long int),
- * and 'll' (long long int) are supported.
- * NOTE:
- *   If macro SNPRINTF_LONGLONG_SUPPORT is not defined (default) the
- *   length modifier 'll' is recognized but treated the same as 'l',
- *   which may cause argument value truncation! Defining
- *   SNPRINTF_LONGLONG_SUPPORT requires that your system's sprintf also
- *   handles length modifier 'll'.  long long int is a language extension
- *   which may not be portable.
- *
- * Conversion of numeric data (conversion specifiers d, u, o, x, X, p)
- * with length modifiers (none or h, l, ll) is left to the system routine
- * sprintf, but all handling of flags, field width and precision as well as
- * c and s conversions is done very carefully by this portable routine.
- * If a string precision (truncation) is specified (e.g. %.8s) it is
- * guaranteed the string beyond the specified precision will not be referenced.
- *
- * Length modifiers h, l and ll are ignored for c and s conversions (data
- * types wint_t and wchar_t are not supported).
- *
- * The following common synonyms for conversion characters are supported:
- *   - i is a synonym for d
- *   - D is a synonym for ld, explicit length modifiers are ignored
- *   - U is a synonym for lu, explicit length modifiers are ignored
- *   - O is a synonym for lo, explicit length modifiers are ignored
- * The D, O and U conversion characters are nonstandard, they are supported
- * for backward compatibility only, and should not be used for new code.
- *
- * The following is specifically NOT supported:
- *   - flag ' (thousands' grouping character) is recognized but ignored
- *   - numeric conversion specifiers: f, e, E, g, G and synonym F,
- *     as well as the new a and A conversion specifiers
- *   - length modifier 'L' (long double) and 'q' (quad - use 'll' instead)
- *   - wide character/string conversions: lc, ls, and nonstandard
- *     synonyms C and S
- *   - writeback of converted string length: conversion character n
- *   - the n$ specification for direct reference to n-th argument
- *   - locales
- *
- * It is permitted for str_m to be zero, and it is permitted to specify NULL
- * pointer for resulting string argument if str_m is zero (as per ISO C99).
- *
- * The return value is the number of characters which would be generated
- * for the given input, excluding the trailing null. If this value
- * is greater or equal to str_m, not all characters from the result
- * have been stored in str, output bytes beyond the (str_m-1) -th character
- * are discarded. If str_m is greater than zero it is guaranteed
- * the resulting string will be null-terminated.
- *
- * NOTE that this matches the ISO C99, OpenBSD, and GNU C library 2.1,
- * but is different from some older and vendor implementations,
- * and is also different from XPG, XSH5, SUSv2 specifications.
- * For historical discussion on changes in the semantics and standards
- * of snprintf see printf(3) man page in the Linux programmers manual.
- *
- * Routines asprintf and vasprintf return a pointer (in the ptr argument)
- * to a buffer sufficiently large to hold the resulting string. This pointer
- * should be passed to free(3) to release the allocated storage when it is
- * no longer needed. If sufficient space cannot be allocated, these functions
- * will return -1 and set ptr to be a NULL pointer. These two routines are a
- * GNU C library extensions (glibc).
- *
- * Routines asnprintf and vasnprintf are similar to asprintf and vasprintf,
- * yet, like snprintf and vsnprintf counterparts, will write at most str_m-1
- * characters into the allocated output string, the last character in the
- * allocated buffer then gets the terminating null. If the formatted string
- * length (the return value) is greater than or equal to the str_m argument,
- * the resulting string was truncated and some of the formatted characters
- * were discarded. These routines present a handy way to limit the amount
- * of allocated memory to some sane value.
- *
- * AVAILABILITY
- *   http://www.ijs.si/software/snprintf/
- *
- * REVISION HISTORY
- * 1999-04	V0.9  Mark Martinec
- *		- initial version, some modifications after comparing printf
- *		  man pages for Digital Unix 4.0, Solaris 2.6 and HPUX 10,
- *		  and checking how Perl handles sprintf (differently!);
- * 1999-04-09	V1.0  Mark Martinec <mark.martinec at ijs.si>
- *		- added main test program, fixed remaining inconsistencies,
- *		  added optional (long long int) support;
- * 1999-04-12	V1.1  Mark Martinec <mark.martinec at ijs.si>
- *		- support the 'p' conversion (pointer to void);
- *		- if a string precision is specified
- *		  make sure the string beyond the specified precision
- *		  will not be referenced (e.g. by strlen);
- * 1999-04-13	V1.2  Mark Martinec <mark.martinec at ijs.si>
- *		- support synonyms %D=%ld, %U=%lu, %O=%lo;
- *		- speed up the case of long format string with few conversions;
- * 1999-06-30	V1.3  Mark Martinec <mark.martinec at ijs.si>
- *		- fixed runaway loop (eventually crashing when str_l wraps
- *		  beyond 2^31) while copying format string without
- *		  conversion specifiers to a buffer that is too short
- *		  (thanks to Edwin Young <edwiny at autonomy.com> for
- *		  spotting the problem);
- *		- added macros PORTABLE_SNPRINTF_VERSION_(MAJOR|MINOR)
- *		  to snprintf.h
- * 2000-02-14	V2.0 (never released) Mark Martinec <mark.martinec at ijs.si>
- *		- relaxed license terms: The Artistic License now applies.
- *		  You may still apply the GNU GENERAL PUBLIC LICENSE
- *		  as was distributed with previous versions, if you prefer;
- *		- changed REVISION HISTORY dates to use ISO 8601 date format;
- *		- added vsnprintf (patch also independently proposed by
- *		  Caolan McNamara 2000-05-04, and Keith M Willenson 2000-06-01)
- * 2000-06-27	V2.1  Mark Martinec <mark.martinec at ijs.si>
- *		- removed POSIX check for str_m<1; value 0 for str_m is
- *		  allowed by ISO C99 (and GNU C library 2.1) - (pointed out
- *		  on 2000-05-04 by Caolan McNamara, caolan@ csn dot ul dot ie).
- *		  Besides relaxed license this change in standards adherence
- *		  is the main reason to bump up the major version number;
- *		- added nonstandard routines asnprintf, vasnprintf, asprintf,
- *		  vasprintf that dynamically allocate storage for the
- *		  resulting string; these routines are not compiled by default,
- *		  see comments where NEED_V?ASN?PRINTF macros are defined;
- *		- autoconf contributed by Caolan McNamara
- * 2000-10-06	V2.2  Mark Martinec <mark.martinec at ijs.si>
- *		- BUG FIX: the %c conversion used a temporary variable
- *		  that was no longer in scope when referenced,
- *		  possibly causing incorrect resulting character;
- *		- BUG FIX: make precision and minimal field width unsigned
- *		  to handle huge values (2^31 <= n < 2^32) correctly;
- *		  also be more careful in the use of signed/unsigned/size_t
- *		  internal variables - probably more careful than many
- *		  vendor implementations, but there may still be a case
- *		  where huge values of str_m, precision or minimal field
- *		  could cause incorrect behaviour;
- *		- use separate variables for signed/unsigned arguments,
- *		  and for short/int, long, and long long argument lengths
- *		  to avoid possible incompatibilities on certain
- *		  computer architectures. Also use separate variable
- *		  arg_sign to hold sign of a numeric argument,
- *		  to make code more transparent;
- *		- some fiddling with zero padding and "0x" to make it
- *		  Linux compatible;
- *		- systematically use macros fast_memcpy and fast_memset
- *		  instead of case-by-case hand optimization; determine some
- *		  breakeven string lengths for different architectures;
- *		- terminology change: 'format' -> 'conversion specifier',
- *		  'C9x' -> 'ISO/IEC 9899:1999 ("ISO C99")',
- *		  'alternative form' -> 'alternate form',
- *		  'data type modifier' -> 'length modifier';
- *		- several comments rephrased and new ones added;
- *		- make compiler not complain about 'credits' defined but
- *		  not used;
- */
-
-
-/* Define HAVE_SNPRINTF if your system already has snprintf and vsnprintf.
- *
- * If HAVE_SNPRINTF is defined this module will not produce code for
- * snprintf and vsnprintf, unless PREFER_PORTABLE_SNPRINTF is defined as well,
- * causing this portable version of snprintf to be called portable_snprintf
- * (and portable_vsnprintf).
- */
-/* #define HAVE_SNPRINTF */
-
-/* Define PREFER_PORTABLE_SNPRINTF if your system does have snprintf and
- * vsnprintf but you would prefer to use the portable routine(s) instead.
- * In this case the portable routine is declared as portable_snprintf
- * (and portable_vsnprintf) and a macro 'snprintf' (and 'vsnprintf')
- * is defined to expand to 'portable_v?snprintf' - see file snprintf.h .
- * Defining this macro is only useful if HAVE_SNPRINTF is also defined,
- * but does does no harm if defined nevertheless.
- */
-/* #define PREFER_PORTABLE_SNPRINTF */
-
-/* Define SNPRINTF_LONGLONG_SUPPORT if you want to support
- * data type (long long int) and length modifier 'll' (e.g. %lld).
- * If undefined, 'll' is recognized but treated as a single 'l'.
- *
- * If the system's sprintf does not handle 'll'
- * the SNPRINTF_LONGLONG_SUPPORT must not be defined!
- *
- * This is off by default as (long long int) is a language extension.
- */
-/* #define SNPRINTF_LONGLONG_SUPPORT */
-
-/* Define NEED_SNPRINTF_ONLY if you only need snprintf, and not vsnprintf.
- * If NEED_SNPRINTF_ONLY is defined, the snprintf will be defined directly,
- * otherwise both snprintf and vsnprintf routines will be defined
- * and snprintf will be a simple wrapper around vsnprintf, at the expense
- * of an extra procedure call.
- */
-/* #define NEED_SNPRINTF_ONLY */
-
-/* Define NEED_V?ASN?PRINTF macros if you need library extension
- * routines asprintf, vasprintf, asnprintf, vasnprintf respectively,
- * and your system library does not provide them. They are all small
- * wrapper routines around portable_vsnprintf. Defining any of the four
- * NEED_V?ASN?PRINTF macros automatically turns off NEED_SNPRINTF_ONLY
- * and turns on PREFER_PORTABLE_SNPRINTF.
- *
- * Watch for name conflicts with the system library if these routines
- * are already present there.
- *
- * NOTE: vasprintf and vasnprintf routines need va_copy() from stdarg.h, as
- * specified by C99, to be able to traverse the same list of arguments twice.
- * I don't know of any other standard and portable way of achieving the same.
- * With some versions of gcc you may use __va_copy(). You might even get away
- * with "ap2 = ap", in this case you must not call va_end(ap2) !
- *   #define va_copy(ap2,ap) ap2 = ap
- */
-/* #define NEED_ASPRINTF   */
-/* #define NEED_ASNPRINTF  */
-/* #define NEED_VASPRINTF  */
-/* #define NEED_VASNPRINTF */
-
-
-/* Define the following macros if desired:
- *   SOLARIS_COMPATIBLE, SOLARIS_BUG_COMPATIBLE,
- *   HPUX_COMPATIBLE, HPUX_BUG_COMPATIBLE, LINUX_COMPATIBLE,
- *   DIGITAL_UNIX_COMPATIBLE, DIGITAL_UNIX_BUG_COMPATIBLE,
- *   PERL_COMPATIBLE, PERL_BUG_COMPATIBLE,
- *
- * - For portable applications it is best not to rely on peculiarities
- *   of a given implementation so it may be best not to define any
- *   of the macros that select compatibility and to avoid features
- *   that vary among the systems.
- *
- * - Selecting compatibility with more than one operating system
- *   is not strictly forbidden but is not recommended.
- *
- * - 'x'_BUG_COMPATIBLE implies 'x'_COMPATIBLE .
- *
- * - 'x'_COMPATIBLE refers to (and enables) a behaviour that is
- *   documented in a sprintf man page on a given operating system
- *   and actually adhered to by the system's sprintf (but not on
- *   most other operating systems). It may also refer to and enable
- *   a behaviour that is declared 'undefined' or 'implementation specific'
- *   in the man page but a given implementation behaves predictably
- *   in a certain way.
- *
- * - 'x'_BUG_COMPATIBLE refers to (and enables) a behaviour of system's sprintf
- *   that contradicts the sprintf man page on the same operating system.
- *
- * - I do not claim that the 'x'_COMPATIBLE and 'x'_BUG_COMPATIBLE
- *   conditionals take into account all idiosyncrasies of a particular
- *   implementation, there may be other incompatibilities.
- */
-
-
-

-/* ============================================= */
-/* NO USER SERVICABLE PARTS FOLLOWING THIS POINT */
-/* ============================================= */
-
-#define PORTABLE_SNPRINTF_VERSION_MAJOR 2
-#define PORTABLE_SNPRINTF_VERSION_MINOR 2
-
-#if defined(NEED_ASPRINTF) || defined(NEED_ASNPRINTF) || defined(NEED_VASPRINTF) || defined(NEED_VASNPRINTF)
-# if defined(NEED_SNPRINTF_ONLY)
-# undef NEED_SNPRINTF_ONLY
-# endif
-# if !defined(PREFER_PORTABLE_SNPRINTF)
-# define PREFER_PORTABLE_SNPRINTF
-# endif
-#endif
-
-#if defined(SOLARIS_BUG_COMPATIBLE) && !defined(SOLARIS_COMPATIBLE)
-#define SOLARIS_COMPATIBLE
-#endif
-
-#if defined(HPUX_BUG_COMPATIBLE) && !defined(HPUX_COMPATIBLE)
-#define HPUX_COMPATIBLE
-#endif
-
-#if defined(DIGITAL_UNIX_BUG_COMPATIBLE) && !defined(DIGITAL_UNIX_COMPATIBLE)
-#define DIGITAL_UNIX_COMPATIBLE
-#endif
-
-#if defined(PERL_BUG_COMPATIBLE) && !defined(PERL_COMPATIBLE)
-#define PERL_COMPATIBLE
-#endif
-
-#if defined(LINUX_BUG_COMPATIBLE) && !defined(LINUX_COMPATIBLE)
-#define LINUX_COMPATIBLE
-#endif
-
-#include <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <errno.h>
-
-#ifdef isdigit
-#undef isdigit
-#endif
-#define isdigit(c) ((c) >= '0' && (c) <= '9')
-
-/* For copying strings longer or equal to 'breakeven_point'
- * it is more efficient to call memcpy() than to do it inline.
- * The value depends mostly on the processor architecture,
- * but also on the compiler and its optimization capabilities.
- * The value is not critical, some small value greater than zero
- * will be just fine if you don't care to squeeze every drop
- * of performance out of the code.
- *
- * Small values favor memcpy, large values favor inline code.
- */
-#if defined(__alpha__) || defined(__alpha)
-#  define breakeven_point   2	/* AXP (DEC Alpha)     - gcc or cc or egcs */
-#endif
-#if defined(__i386__)  || defined(__i386)
-#  define breakeven_point  12	/* Intel Pentium/Linux - gcc 2.96 */
-#endif
-#if defined(__hppa)
-#  define breakeven_point  10	/* HP-PA               - gcc */
-#endif
-#if defined(__sparc__) || defined(__sparc)
-#  define breakeven_point  33	/* Sun Sparc 5         - gcc 2.8.1 */
-#endif
-
-/* some other values of possible interest: */
-/* #define breakeven_point  8 */  /* VAX 4000          - vaxc */
-/* #define breakeven_point 19 */  /* VAX 4000          - gcc 2.7.0 */
-
-#ifndef breakeven_point
-#  define breakeven_point   6	/* some reasonable one-size-fits-all value */
-#endif
-
-#define fast_memcpy(d,s,n) \
-  { register size_t nn = (size_t)(n); \
-    if (nn >= breakeven_point) memcpy((d), (s), nn); \
-    else if (nn > 0) { /* proc call overhead is worth only for large strings*/\
-      register char *dd; register const char *ss; \
-      for (ss=(s), dd=(d); nn>0; nn--) *dd++ = *ss++; } }
-
-#define fast_memset(d,c,n) \
-  { register size_t nn = (size_t)(n); \
-    if (nn >= breakeven_point) memset((d), (int)(c), nn); \
-    else if (nn > 0) { /* proc call overhead is worth only for large strings*/\
-      register char *dd; register const int cc=(int)(c); \
-      for (dd=(d); nn>0; nn--) *dd++ = cc; } }
-
-/* prototypes */
-
-#if defined(NEED_ASPRINTF)
-int asprintf   (char **ptr, const char *fmt, /*args*/ ...);
-#endif
-#if defined(NEED_VASPRINTF)
-int vasprintf  (char **ptr, const char *fmt, va_list ap);
-#endif
-#if defined(NEED_ASNPRINTF)
-int asnprintf  (char **ptr, size_t str_m, const char *fmt, /*args*/ ...);
-#endif
-#if defined(NEED_VASNPRINTF)
-int vasnprintf (char **ptr, size_t str_m, const char *fmt, va_list ap);
-#endif
-
-#if defined(HAVE_SNPRINTF)
-/* declare our portable snprintf  routine under name portable_snprintf  */
-/* declare our portable vsnprintf routine under name portable_vsnprintf */
-#else
-/* declare our portable routines under names snprintf and vsnprintf */
-#define portable_snprintf snprintf
-#if !defined(NEED_SNPRINTF_ONLY)
-#define portable_vsnprintf vsnprintf
-#endif
-#endif
-
-#if !defined(HAVE_SNPRINTF) || defined(PREFER_PORTABLE_SNPRINTF)
-int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...);
-#if !defined(NEED_SNPRINTF_ONLY)
-int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap);
-#endif
-#endif
-
-/* declarations */
-
-static char credits[] = "\n\
-@(#)snprintf.c, v2.2: Mark Martinec, <mark.martinec at ijs.si>\n\
-@(#)snprintf.c, v2.2: Copyright 1999, Mark Martinec. Frontier Artistic License applies.\n\
-@(#)snprintf.c, v2.2: http://www.ijs.si/software/snprintf/\n";
-
-#if defined(NEED_ASPRINTF)
-int asprintf(char **ptr, const char *fmt, /*args*/ ...) {
-  va_list ap;
-  size_t str_m;
-  int str_l;
-
-  *ptr = NULL;
-  va_start(ap, fmt);                            /* measure the required size */
-  str_l = portable_vsnprintf(NULL, (size_t)0, fmt, ap);
-  va_end(ap);
-  assert(str_l >= 0);        /* possible integer overflow if str_m > INT_MAX */
-  *ptr = (char *) malloc(str_m = (size_t)str_l + 1);
-  if (*ptr == NULL) { errno = ENOMEM; str_l = -1; }
-  else {
-    int str_l2;
-    va_start(ap, fmt);
-    str_l2 = portable_vsnprintf(*ptr, str_m, fmt, ap);
-    va_end(ap);
-    assert(str_l2 == str_l);
-  }
-  return str_l;
-}
-#endif
-
-#if defined(NEED_VASPRINTF)
-int vasprintf(char **ptr, const char *fmt, va_list ap) {
-  size_t str_m;
-  int str_l;
-
-  *ptr = NULL;
-  { va_list ap2;
-    va_copy(ap2, ap);  /* don't consume the original ap, we'll need it again */
-    str_l = portable_vsnprintf(NULL, (size_t)0, fmt, ap2);/*get required size*/
-    va_end(ap2);
-  }
-  assert(str_l >= 0);        /* possible integer overflow if str_m > INT_MAX */
-  *ptr = (char *) malloc(str_m = (size_t)str_l + 1);
-  if (*ptr == NULL) { errno = ENOMEM; str_l = -1; }
-  else {
-    int str_l2 = portable_vsnprintf(*ptr, str_m, fmt, ap);
-    assert(str_l2 == str_l);
-  }
-  return str_l;
-}
-#endif
-
-#if defined(NEED_ASNPRINTF)
-int asnprintf (char **ptr, size_t str_m, const char *fmt, /*args*/ ...) {
-  va_list ap;
-  int str_l;
-
-  *ptr = NULL;
-  va_start(ap, fmt);                            /* measure the required size */
-  str_l = portable_vsnprintf(NULL, (size_t)0, fmt, ap);
-  va_end(ap);
-  assert(str_l >= 0);        /* possible integer overflow if str_m > INT_MAX */
-  if ((size_t)str_l + 1 < str_m) str_m = (size_t)str_l + 1;      /* truncate */
-  /* if str_m is 0, no buffer is allocated, just set *ptr to NULL */
-  if (str_m == 0) {  /* not interested in resulting string, just return size */
-  } else {
-    *ptr = (char *) malloc(str_m);
-    if (*ptr == NULL) { errno = ENOMEM; str_l = -1; }
-    else {
-      int str_l2;
-      va_start(ap, fmt);
-      str_l2 = portable_vsnprintf(*ptr, str_m, fmt, ap);
-      va_end(ap);
-      assert(str_l2 == str_l);
-    }
-  }
-  return str_l;
-}
-#endif
-
-#if defined(NEED_VASNPRINTF)
-int vasnprintf (char **ptr, size_t str_m, const char *fmt, va_list ap) {
-  int str_l;
-
-  *ptr = NULL;
-  { va_list ap2;
-    va_copy(ap2, ap);  /* don't consume the original ap, we'll need it again */
-    str_l = portable_vsnprintf(NULL, (size_t)0, fmt, ap2);/*get required size*/
-    va_end(ap2);
-  }
-  assert(str_l >= 0);        /* possible integer overflow if str_m > INT_MAX */
-  if ((size_t)str_l + 1 < str_m) str_m = (size_t)str_l + 1;      /* truncate */
-  /* if str_m is 0, no buffer is allocated, just set *ptr to NULL */
-  if (str_m == 0) {  /* not interested in resulting string, just return size */
-  } else {
-    *ptr = (char *) malloc(str_m);
-    if (*ptr == NULL) { errno = ENOMEM; str_l = -1; }
-    else {
-      int str_l2 = portable_vsnprintf(*ptr, str_m, fmt, ap);
-      assert(str_l2 == str_l);
-    }
-  }
-  return str_l;
-}
-#endif
-
-/*
- * If the system does have snprintf and the portable routine is not
- * specifically required, this module produces no code for snprintf/vsnprintf.
- */
-#if !defined(HAVE_SNPRINTF) || defined(PREFER_PORTABLE_SNPRINTF)
-
-#if !defined(NEED_SNPRINTF_ONLY)
-int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...) {
-  va_list ap;
-  int str_l;
-
-  va_start(ap, fmt);
-  str_l = portable_vsnprintf(str, str_m, fmt, ap);
-  va_end(ap);
-  return str_l;
-}
-#endif
-
-#if defined(NEED_SNPRINTF_ONLY)
-int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...) {
-#else
-int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) {
-#endif
-
-#if defined(NEED_SNPRINTF_ONLY)
-  va_list ap;
-#endif
-  size_t str_l = 0;
-  const char *p = fmt;
-
-/* In contrast with POSIX, the ISO C99 now says
- * that str can be NULL and str_m can be 0.
- * This is more useful than the old:  if (str_m < 1) return -1; */
-
-#if defined(NEED_SNPRINTF_ONLY)
-  va_start(ap, fmt);
-#endif
-  if (!p) p = "";
-  while (*p) {
-    if (*p != '%') {
-   /* if (str_l < str_m) str[str_l++] = *p++;    -- this would be sufficient */
-   /* but the following code achieves better performance for cases
-    * where format string is long and contains few conversions */
-      const char *q = strchr(p+1,'%');
-      size_t n = !q ? strlen(p) : (q-p);
-      if (str_l < str_m) {
-        size_t avail = str_m-str_l;
-        fast_memcpy(str+str_l, p, (n>avail?avail:n));
-      }
-      p += n; str_l += n;
-    } else {
-      const char *starting_p;
-      size_t min_field_width = 0, precision = 0;
-      int zero_padding = 0, precision_specified = 0, justify_left = 0;
-      int alternate_form = 0, force_sign = 0;
-      int space_for_positive = 1; /* If both the ' ' and '+' flags appear,
-                                     the ' ' flag should be ignored. */
-      char length_modifier = '\0';            /* allowed values: \0, h, l, L */
-      char tmp[32];/* temporary buffer for simple numeric->string conversion */
-
-      const char *str_arg;      /* string address in case of string argument */
-      size_t str_arg_l;         /* natural field width of arg without padding
-                                   and sign */
-      unsigned char uchar_arg;
-        /* unsigned char argument value - only defined for c conversion.
-           N.B. standard explicitly states the char argument for
-           the c conversion is unsigned */
-
-      size_t number_of_zeros_to_pad = 0;
-        /* number of zeros to be inserted for numeric conversions
-           as required by the precision or minimal field width */
-
-      size_t zero_padding_insertion_ind = 0;
-        /* index into tmp where zero padding is to be inserted */
-
-      char fmt_spec = '\0';
-        /* current conversion specifier character */
-
-      str_arg = credits;/* just to make compiler happy (defined but not used)*/
-      str_arg = NULL;
-      starting_p = p; p++;  /* skip '%' */
-   /* parse flags */
-      while (*p == '0' || *p == '-' || *p == '+' ||
-             *p == ' ' || *p == '#' || *p == '\'') {
-        switch (*p) {
-        case '0': zero_padding = 1; break;
-        case '-': justify_left = 1; break;
-        case '+': force_sign = 1; space_for_positive = 0; break;
-        case ' ': force_sign = 1;
-     /* If both the ' ' and '+' flags appear, the ' ' flag should be ignored */
-#ifdef PERL_COMPATIBLE
-     /* ... but in Perl the last of ' ' and '+' applies */
-                  space_for_positive = 1;
-#endif
-                  break;
-        case '#': alternate_form = 1; break;
-        case '\'': break;
-        }
-        p++;
-      }
-   /* If the '0' and '-' flags both appear, the '0' flag should be ignored. */
-
-   /* parse field width */
-      if (*p == '*') {
-        int j;
-        p++; j = va_arg(ap, int);
-        if (j >= 0) min_field_width = j;
-        else { min_field_width = -j; justify_left = 1; }
-      } else if (isdigit((int)(*p))) {
-        /* size_t could be wider than unsigned int;
-           make sure we treat argument like common implementations do */
-        unsigned int uj = *p++ - '0';
-        while (isdigit((int)(*p))) uj = 10*uj + (unsigned int)(*p++ - '0');
-        min_field_width = uj;
-      }
-   /* parse precision */
-      if (*p == '.') {
-        p++; precision_specified = 1;
-        if (*p == '*') {
-          int j = va_arg(ap, int);
-          p++;
-          if (j >= 0) precision = j;
-          else {
-            precision_specified = 0; precision = 0;
-         /* NOTE:
-          *   Solaris 2.6 man page claims that in this case the precision
-          *   should be set to 0.  Digital Unix 4.0, HPUX 10 and BSD man page
-          *   claim that this case should be treated as unspecified precision,
-          *   which is what we do here.
-          */
-          }
-        } else if (isdigit((int)(*p))) {
-          /* size_t could be wider than unsigned int;
-             make sure we treat argument like common implementations do */
-          unsigned int uj = *p++ - '0';
-          while (isdigit((int)(*p))) uj = 10*uj + (unsigned int)(*p++ - '0');
-          precision = uj;
-        }
-      }
-   /* parse 'h', 'l' and 'll' length modifiers */
-      if (*p == 'h' || *p == 'l') {
-        length_modifier = *p; p++;
-        if (length_modifier == 'l' && *p == 'l') {   /* double l = long long */
-#ifdef SNPRINTF_LONGLONG_SUPPORT
-          length_modifier = '2';                  /* double l encoded as '2' */
-#else
-          length_modifier = 'l';                 /* treat it as a single 'l' */
-#endif
-          p++;
-        }
-      }
-      fmt_spec = *p;
-   /* common synonyms: */
-      switch (fmt_spec) {
-      case 'i': fmt_spec = 'd'; break;
-      case 'D': fmt_spec = 'd'; length_modifier = 'l'; break;
-      case 'U': fmt_spec = 'u'; length_modifier = 'l'; break;
-      case 'O': fmt_spec = 'o'; length_modifier = 'l'; break;
-      default: break;
-      }
-   /* get parameter value, do initial processing */
-      switch (fmt_spec) {
-      case '%': /* % behaves similar to 's' regarding flags and field widths */
-      case 'c': /* c behaves similar to 's' regarding flags and field widths */
-      case 's':
-        length_modifier = '\0';          /* wint_t and wchar_t not supported */
-     /* the result of zero padding flag with non-numeric conversion specifier*/
-     /* is undefined. Solaris and HPUX 10 does zero padding in this case,    */
-     /* Digital Unix and Linux does not. */
-#if !defined(SOLARIS_COMPATIBLE) && !defined(HPUX_COMPATIBLE)
-        zero_padding = 0;    /* turn zero padding off for string conversions */
-#endif
-        str_arg_l = 1;
-        switch (fmt_spec) {
-        case '%':
-          str_arg = p; break;
-        case 'c': {
-          int j = va_arg(ap, int);
-          uchar_arg = (unsigned char) j;   /* standard demands unsigned char */
-          str_arg = (const char *) &uchar_arg;
-          break;
-        }
-        case 's':
-          str_arg = va_arg(ap, const char *);
-          if (!str_arg) str_arg_l = 0;
-       /* make sure not to address string beyond the specified precision !!! */
-          else if (!precision_specified) str_arg_l = strlen(str_arg);
-       /* truncate string if necessary as requested by precision */
-          else if (precision == 0) str_arg_l = 0;
-          else {
-       /* memchr on HP does not like n > 2^31  !!! */
-            const char *q = memchr(str_arg, '\0',
-                             precision <= 0x7fffffff ? precision : 0x7fffffff);
-            str_arg_l = !q ? precision : (q-str_arg);
-          }
-          break;
-        default: break;
-        }
-        break;
-      case 'd': case 'u': case 'o': case 'x': case 'X': case 'p': {
-        /* NOTE: the u, o, x, X and p conversion specifiers imply
-                 the value is unsigned;  d implies a signed value */
-
-        int arg_sign = 0;
-          /* 0 if numeric argument is zero (or if pointer is NULL for 'p'),
-            +1 if greater than zero (or nonzero for unsigned arguments),
-            -1 if negative (unsigned argument is never negative) */
-
-        int int_arg = 0;  unsigned int uint_arg = 0;
-          /* only defined for length modifier h, or for no length modifiers */
-
-        long int long_arg = 0;  unsigned long int ulong_arg = 0;
-          /* only defined for length modifier l */
-
-        void *ptr_arg = NULL;
-          /* pointer argument value -only defined for p conversion */
-
-#ifdef SNPRINTF_LONGLONG_SUPPORT
-        long long int long_long_arg = 0;
-        unsigned long long int ulong_long_arg = 0;
-          /* only defined for length modifier ll */
-#endif
-        if (fmt_spec == 'p') {
-        /* HPUX 10: An l, h, ll or L before any other conversion character
-         *   (other than d, i, u, o, x, or X) is ignored.
-         * Digital Unix:
-         *   not specified, but seems to behave as HPUX does.
-         * Solaris: If an h, l, or L appears before any other conversion
-         *   specifier (other than d, i, u, o, x, or X), the behavior
-         *   is undefined. (Actually %hp converts only 16-bits of address
-         *   and %llp treats address as 64-bit data which is incompatible
-         *   with (void *) argument on a 32-bit system).
-         */
-#ifdef SOLARIS_COMPATIBLE
-#  ifdef SOLARIS_BUG_COMPATIBLE
-          /* keep length modifiers even if it represents 'll' */
-#  else
-          if (length_modifier == '2') length_modifier = '\0';
-#  endif
-#else
-          length_modifier = '\0';
-#endif
-          ptr_arg = va_arg(ap, void *);
-          if (ptr_arg != NULL) arg_sign = 1;
-        } else if (fmt_spec == 'd') {  /* signed */
-          switch (length_modifier) {
-          case '\0':
-          case 'h':
-         /* It is non-portable to specify a second argument of char or short
-          * to va_arg, because arguments seen by the called function
-          * are not char or short.  C converts char and short arguments
-          * to int before passing them to a function.
-          */
-            int_arg = va_arg(ap, int);
-            if      (int_arg > 0) arg_sign =  1;
-            else if (int_arg < 0) arg_sign = -1;
-            break;
-          case 'l':
-            long_arg = va_arg(ap, long int);
-            if      (long_arg > 0) arg_sign =  1;
-            else if (long_arg < 0) arg_sign = -1;
-            break;
-#ifdef SNPRINTF_LONGLONG_SUPPORT
-          case '2':
-            long_long_arg = va_arg(ap, long long int);
-            if      (long_long_arg > 0) arg_sign =  1;
-            else if (long_long_arg < 0) arg_sign = -1;
-            break;
-#endif
-          }
-        } else {  /* unsigned */
-          switch (length_modifier) {
-          case '\0':
-          case 'h':
-            uint_arg = va_arg(ap, unsigned int);
-            if (uint_arg) arg_sign = 1;
-            break;
-          case 'l':
-            ulong_arg = va_arg(ap, unsigned long int);
-            if (ulong_arg) arg_sign = 1;
-            break;
-#ifdef SNPRINTF_LONGLONG_SUPPORT
-          case '2':
-            ulong_long_arg = va_arg(ap, unsigned long long int);
-            if (ulong_long_arg) arg_sign = 1;
-            break;
-#endif
-          }
-        }
-        str_arg = tmp; str_arg_l = 0;
-     /* NOTE:
-      *   For d, i, u, o, x, and X conversions, if precision is specified,
-      *   the '0' flag should be ignored. This is so with Solaris 2.6,
-      *   Digital UNIX 4.0, HPUX 10, Linux, FreeBSD, NetBSD; but not with Perl.
-      */
-#ifndef PERL_COMPATIBLE
-        if (precision_specified) zero_padding = 0;
-#endif
-        if (fmt_spec == 'd') {
-          if (force_sign && arg_sign >= 0)
-            tmp[str_arg_l++] = space_for_positive ? ' ' : '+';
-         /* leave negative numbers for sprintf to handle,
-            to avoid handling tricky cases like (short int)(-32768) */
-#ifdef LINUX_COMPATIBLE
-        } else if (fmt_spec == 'p' && force_sign && arg_sign > 0) {
-          tmp[str_arg_l++] = space_for_positive ? ' ' : '+';
-#endif
-        } else if (alternate_form) {
-          if (arg_sign != 0 && (fmt_spec == 'x' || fmt_spec == 'X') )
-            { tmp[str_arg_l++] = '0'; tmp[str_arg_l++] = fmt_spec; }
-         /* alternate form should have no effect for p conversion, but ... */
-#ifdef HPUX_COMPATIBLE
-          else if (fmt_spec == 'p'
-         /* HPUX 10: for an alternate form of p conversion,
-          *          a nonzero result is prefixed by 0x. */
-#ifndef HPUX_BUG_COMPATIBLE
-         /* Actually it uses 0x prefix even for a zero value. */
-                   && arg_sign != 0
-#endif
-                  ) { tmp[str_arg_l++] = '0'; tmp[str_arg_l++] = 'x'; }
-#endif
-        }
-        zero_padding_insertion_ind = str_arg_l;
-        if (!precision_specified) precision = 1;   /* default precision is 1 */
-        if (precision == 0 && arg_sign == 0
-#if defined(HPUX_BUG_COMPATIBLE) || defined(LINUX_COMPATIBLE)
-            && fmt_spec != 'p'
-         /* HPUX 10 man page claims: With conversion character p the result of
-          * converting a zero value with a precision of zero is a null string.
-          * Actually HP returns all zeroes, and Linux returns "(nil)". */
-#endif
-        ) {
-         /* converted to null string */
-         /* When zero value is formatted with an explicit precision 0,
-            the resulting formatted string is empty (d, i, u, o, x, X, p).   */
-        } else {
-          char f[5]; int f_l = 0;
-          f[f_l++] = '%';    /* construct a simple format string for sprintf */
-          if (!length_modifier) { }
-          else if (length_modifier=='2') { f[f_l++] = 'l'; f[f_l++] = 'l'; }
-          else f[f_l++] = length_modifier;
-          f[f_l++] = fmt_spec; f[f_l++] = '\0';
-          if (fmt_spec == 'p') str_arg_l += sprintf(tmp+str_arg_l, f, ptr_arg);
-          else if (fmt_spec == 'd') {  /* signed */
-            switch (length_modifier) {
-            case '\0':
-            case 'h': str_arg_l+=sprintf(tmp+str_arg_l, f, int_arg);  break;
-            case 'l': str_arg_l+=sprintf(tmp+str_arg_l, f, long_arg); break;
-#ifdef SNPRINTF_LONGLONG_SUPPORT
-            case '2': str_arg_l+=sprintf(tmp+str_arg_l,f,long_long_arg); break;
-#endif
-            }
-          } else {  /* unsigned */
-            switch (length_modifier) {
-            case '\0':
-            case 'h': str_arg_l+=sprintf(tmp+str_arg_l, f, uint_arg);  break;
-            case 'l': str_arg_l+=sprintf(tmp+str_arg_l, f, ulong_arg); break;
-#ifdef SNPRINTF_LONGLONG_SUPPORT
-            case '2': str_arg_l+=sprintf(tmp+str_arg_l,f,ulong_long_arg);break;
-#endif
-            }
-          }
-         /* include the optional minus sign and possible "0x"
-            in the region before the zero padding insertion point */
-          if (zero_padding_insertion_ind < str_arg_l &&
-              tmp[zero_padding_insertion_ind] == '-') {
-            zero_padding_insertion_ind++;
-          }
-          if (zero_padding_insertion_ind+1 < str_arg_l &&
-              tmp[zero_padding_insertion_ind]   == '0' &&
-             (tmp[zero_padding_insertion_ind+1] == 'x' ||
-              tmp[zero_padding_insertion_ind+1] == 'X') ) {
-            zero_padding_insertion_ind += 2;
-          }
-        }
-        { size_t num_of_digits = str_arg_l - zero_padding_insertion_ind;
-          if (alternate_form && fmt_spec == 'o'
-#ifdef HPUX_COMPATIBLE                                  /* ("%#.o",0) -> ""  */
-              && (str_arg_l > 0)
-#endif
-#ifdef DIGITAL_UNIX_BUG_COMPATIBLE                      /* ("%#o",0) -> "00" */
-#else
-              /* unless zero is already the first character */
-              && !(zero_padding_insertion_ind < str_arg_l
-                   && tmp[zero_padding_insertion_ind] == '0')
-#endif
-          ) {        /* assure leading zero for alternate-form octal numbers */
-            if (!precision_specified || precision < num_of_digits+1) {
-             /* precision is increased to force the first character to be zero,
-                except if a zero value is formatted with an explicit precision
-                of zero */
-              precision = num_of_digits+1; precision_specified = 1;
-            }
-          }
-       /* zero padding to specified precision? */
-          if (num_of_digits < precision) 
-            number_of_zeros_to_pad = precision - num_of_digits;
-        }
-     /* zero padding to specified minimal field width? */
-        if (!justify_left && zero_padding) {
-          int n = min_field_width - (str_arg_l+number_of_zeros_to_pad);
-          if (n > 0) number_of_zeros_to_pad += n;
-        }
-        break;
-      }
-      default: /* unrecognized conversion specifier, keep format string as-is*/
-        zero_padding = 0;  /* turn zero padding off for non-numeric convers. */
-#ifndef DIGITAL_UNIX_COMPATIBLE
-        justify_left = 1; min_field_width = 0;                /* reset flags */
-#endif
-#if defined(PERL_COMPATIBLE) || defined(LINUX_COMPATIBLE)
-     /* keep the entire format string unchanged */
-        str_arg = starting_p; str_arg_l = p - starting_p;
-     /* well, not exactly so for Linux, which does something inbetween,
-      * and I don't feel an urge to imitate it: "%+++++hy" -> "%+y"  */
-#else
-     /* discard the unrecognized conversion, just keep *
-      * the unrecognized conversion character          */
-        str_arg = p; str_arg_l = 0;
-#endif
-        if (*p) str_arg_l++;  /* include invalid conversion specifier unchanged
-                                 if not at end-of-string */
-        break;
-      }
-      if (*p) p++;      /* step over the just processed conversion specifier */
-   /* insert padding to the left as requested by min_field_width;
-      this does not include the zero padding in case of numerical conversions*/
-      if (!justify_left) {                /* left padding with blank or zero */
-        int n = min_field_width - (str_arg_l+number_of_zeros_to_pad);
-        if (n > 0) {
-          if (str_l < str_m) {
-            size_t avail = str_m-str_l;
-            fast_memset(str+str_l, (zero_padding?'0':' '), (n>avail?avail:n));
-          }
-          str_l += n;
-        }
-      }
-   /* zero padding as requested by the precision or by the minimal field width
-    * for numeric conversions required? */
-      if (number_of_zeros_to_pad <= 0) {
-     /* will not copy first part of numeric right now, *
-      * force it to be copied later in its entirety    */
-        zero_padding_insertion_ind = 0;
-      } else {
-     /* insert first part of numerics (sign or '0x') before zero padding */
-        int n = zero_padding_insertion_ind;
-        if (n > 0) {
-          if (str_l < str_m) {
-            size_t avail = str_m-str_l;
-            fast_memcpy(str+str_l, str_arg, (n>avail?avail:n));
-          }
-          str_l += n;
-        }
-     /* insert zero padding as requested by the precision or min field width */
-        n = number_of_zeros_to_pad;
-        if (n > 0) {
-          if (str_l < str_m) {
-            size_t avail = str_m-str_l;
-            fast_memset(str+str_l, '0', (n>avail?avail:n));
-          }
-          str_l += n;
-        }
-      }
-   /* insert formatted string
-    * (or as-is conversion specifier for unknown conversions) */
-      { int n = str_arg_l - zero_padding_insertion_ind;
-        if (n > 0) {
-          if (str_l < str_m) {
-            size_t avail = str_m-str_l;
-            fast_memcpy(str+str_l, str_arg+zero_padding_insertion_ind,
-                        (n>avail?avail:n));
-          }
-          str_l += n;
-        }
-      }
-   /* insert right padding */
-      if (justify_left) {          /* right blank padding to the field width */
-        int n = min_field_width - (str_arg_l+number_of_zeros_to_pad);
-        if (n > 0) {
-          if (str_l < str_m) {
-            size_t avail = str_m-str_l;
-            fast_memset(str+str_l, ' ', (n>avail?avail:n));
-          }
-          str_l += n;
-        }
-      }
-    }
-  }
-#if defined(NEED_SNPRINTF_ONLY)
-  va_end(ap);
-#endif
-  if (str_m > 0) { /* make sure the string is null-terminated
-                      even at the expense of overwriting the last character
-                      (shouldn't happen, but just in case) */
-    str[str_l <= str_m-1 ? str_l : str_m-1] = '\0';
-  }
-  /* Return the number of characters formatted (excluding trailing null
-   * character), that is, the number of characters that would have been
-   * written to the buffer if it were large enough.
-   *
-   * The value of str_l should be returned, but str_l is of unsigned type
-   * size_t, and snprintf is int, possibly leading to an undetected
-   * integer overflow, resulting in a negative return value, which is illegal.
-   * Both XSH5 and ISO C99 (at least the draft) are silent on this issue.
-   * Should errno be set to EOVERFLOW and EOF returned in this case???
-   */
-  return (int) str_l;
-}
-#endif
diff --git a/apertium/win32/snprintf.h b/apertium/win32/snprintf.h
deleted file mode 100644
index 70ec841..0000000
--- a/apertium/win32/snprintf.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef _PORTABLE_SNPRINTF_H_
-#define _PORTABLE_SNPRINTF_H_
-
-#define PORTABLE_SNPRINTF_VERSION_MAJOR 2
-#define PORTABLE_SNPRINTF_VERSION_MINOR 2
-
-#ifdef HAVE_SNPRINTF
-#include <stdio.h>
-#else
-extern int snprintf(char *, size_t, const char *, /*args*/ ...);
-extern int vsnprintf(char *, size_t, const char *, va_list);
-#endif
-
-#if defined(HAVE_SNPRINTF) && defined(PREFER_PORTABLE_SNPRINTF)
-extern int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...);
-extern int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap);
-#define snprintf  portable_snprintf
-#define vsnprintf portable_vsnprintf
-#endif
-
-extern int asprintf  (char **ptr, const char *fmt, /*args*/ ...);
-extern int vasprintf (char **ptr, const char *fmt, va_list ap);
-extern int asnprintf (char **ptr, size_t str_m, const char *fmt, /*args*/ ...);
-extern int vasnprintf(char **ptr, size_t str_m, const char *fmt, va_list ap);
-
-#endif
diff --git a/apertium/win32/unistd.h b/apertium/win32/unistd.h
deleted file mode 100644
index f7214d4..0000000
--- a/apertium/win32/unistd.h
+++ /dev/null
@@ -1,13 +0,0 @@
-// This should really be defined elsewhere
-#define YY_INPUT(buf,result,max_size) \
-	if ( (result = fread( (char *) buf, 1, max_size, yyin )) < 0 ) \
-		YY_FATAL_ERROR( "input in flex scanner failed" );
-
-#define fileno _fileno
-
-#if defined(_MSCVER) && defined(isatty)
-#undef isatty
-#define isatty _isatty
-#endif
-
-#define unlink _unlink
diff --git a/cmake/CMakeUseFlex.cmake b/cmake/CMakeUseFlex.cmake
deleted file mode 100644
index 3ee1ae2..0000000
--- a/cmake/CMakeUseFlex.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-# - Look for GNU flex, the lexer generator.
-# Defines the following:
-#  FLEX_EXECUTABLE - path to the flex executable
-#  FLEX_FILE - parse a file with flex
-#  FLEX_PREFIX_OUTPUTS - Set to true to make FLEX_FILE produce outputs of
-#                        lex.${filename}.c, not lex.yy.c . Passes -P to flex.
-
-IF(NOT DEFINED FLEX_PREFIX_OUTPUTS)
-  SET(FLEX_PREFIX_OUTPUTS FALSE)
-ENDIF(NOT DEFINED FLEX_PREFIX_OUTPUTS)
-
-IF(NOT FLEX_EXECUTABLE)
-  FIND_PROGRAM(FLEX_EXECUTABLE flex)
-  IF (FLEX_EXECUTABLE)
-    MESSAGE (STATUS "Found flex -- ${FLEX_EXECUTABLE}")
-  ELSE (FLEX_EXECUTABLE)
-    MESSAGE (ERROR "flex not found")
-  ENDIF(FLEX_EXECUTABLE)
-ENDIF(NOT FLEX_EXECUTABLE)
-
-IF(FLEX_EXECUTABLE)
-  MACRO(FLEX OUT_FILE SWITCHES IN_FILE)
-    GET_FILENAME_COMPONENT(PATH "${IN_FILE}" PATH)
-
-    IF(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${PATH}")
-      FILE(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${PATH}")
-    ENDIF(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/${PATH}")
-
-    SET(FULL_OUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${PATH}${OUT_FILE}")
-    SET(FULL_IN_FILE  "${CMAKE_CURRENT_SOURCE_DIR}/${IN_FILE}")
-
-    ADD_CUSTOM_COMMAND(
-      OUTPUT  "${FULL_OUT_FILE}"
-      COMMAND "${FLEX_EXECUTABLE}"
-      ARGS    "${SWITCHES}"
-              -o"${FULL_OUT_FILE}"
-              "${FULL_IN_FILE}"
-      DEPENDS "${FULL_IN_FILE}")
-
-    SET_SOURCE_FILES_PROPERTIES("${FULL_OUT_FILE}" PROPERTIES GENERATED TRUE)
-  ENDMACRO(FLEX)
-ENDIF(FLEX_EXECUTABLE)
diff --git a/cmake/CMakeUseXsltproc.cmake b/cmake/CMakeUseXsltproc.cmake
deleted file mode 100644
index 02729e6..0000000
--- a/cmake/CMakeUseXsltproc.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
-# - Look for GNU xsltproc, the lexer generator.
-# Defines the following:
-#  XSLTPROC_EXECUTABLE - path to the xsltproc executable
-#  XSLTPROC_FILE - parse a file with xsltproc
-#  XSLTPROC_PREFIX_OUTPUTS - Set to true to make XSLTPROC_FILE produce outputs of
-#                        lex.${filename}.c, not lex.yy.c . Passes -P to xsltproc.
-
-IF(NOT XSLTPROC_EXECUTABLE)
-  FIND_PROGRAM(XSLTPROC_EXECUTABLE xsltproc)
-  IF (XSLTPROC_EXECUTABLE)
-    MESSAGE (STATUS "Found xsltproc -- ${XSLTPROC_EXECUTABLE}")
-  ELSE (XSLTPROC_EXECUTABLE)
-    MESSAGE (ERROR "xsltproc not found")
-  ENDIF(XSLTPROC_EXECUTABLE)
-ENDIF(NOT XSLTPROC_EXECUTABLE)
-
-IF(XSLTPROC_EXECUTABLE)
-  MACRO(XSLTPROC OUT_FILE XSL_FILE XML_FILE)
-    GET_FILENAME_COMPONENT(PATH "${XSL_FILE}" PATH)
-
-    SET(FULL_OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${OUT_FILE}")
-    SET(FULL_XSL_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${XSL_FILE}")
-    SET(FULL_XML_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${XML_FILE}")
-
-    ADD_CUSTOM_COMMAND(
-      OUTPUT  "${FULL_OUT_FILE}"
-      COMMAND "${XSLTPROC_EXECUTABLE}"
-      ARGS    -o "${FULL_OUT_FILE}"
-              "${FULL_XSL_FILE}"
-              "${FULL_XML_FILE}"
-      DEPENDS "${FULL_XSL_FILE}" "${FULL_XML_FILE}")
-
-    SET_SOURCE_FILES_PROPERTIES("${FULL_OUT_FILE}" PROPERTIES GENERATED TRUE)
-  ENDMACRO(XSLTPROC)
-ENDIF(XSLTPROC_EXECUTABLE)
diff --git a/cmake/FindLibPcre.cmake b/cmake/FindLibPcre.cmake
deleted file mode 100644
index 1177921..0000000
--- a/cmake/FindLibPcre.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-IF (LIBPCRE_INCLUDE_DIR AND LIBPCRE_LIBRARIES)
-   # in cache already
-   SET(LibPcre_FIND_QUIETLY TRUE)
-ENDIF (LIBPCRE_INCLUDE_DIR AND LIBPCRE_LIBRARIES)
-
-IF (NOT WIN32)
-   # use pkg-config to get the directories and then use these values
-   # in the FIND_PATH() and FIND_LIBRARY() calls
-   INCLUDE(UsePkgConfig)
-   PKGCONFIG(libpcre LIBPCRE_INCLUDES LIBPCRE_LIB_DIR LIBPCRE_LDFLAGS LIBPCRE_CFLAGS)
-   SET(LIBPCRE_DEFINITIONS ${LIBPCRE_CFLAGS})
-ENDIF (NOT WIN32)
-
-FIND_PATH(LIBPCRE_INCLUDE_DIR pcre.h
-          PATHS ${LIBPCRE_INCLUDES})
-
-FIND_LIBRARY(LIBPCRE_LIBRARIES
-             NAMES pcre libpcre
-             PATHS ${LIBPCRE_LIB_DIR})
-
-IF (LIBPCRE_INCLUDE_DIR AND LIBPCRE_LIBRARIES)
-   SET(LIBPCRE_FOUND TRUE)
-ELSE (LIBPCRE_INCLUDE_DIR AND LIBPCRE_LIBRARIES)
-   SET(LIBPCRE_FOUND FALSE)
-ENDIF (LIBPCRE_INCLUDE_DIR AND LIBPCRE_LIBRARIES)
-
-IF (LIBPCRE_FOUND)
-   IF (NOT LibPcre_FIND_QUIETLY)
-      MESSAGE(STATUS "Found LibPcre: ${LIBPCRE_LIBRARIES}")
-   ENDIF (NOT LibPcre_FIND_QUIETLY)
-ELSE (LIBPCRE_FOUND)
-   IF (LibPcre_FIND_REQUIRED)
-      MESSAGE(SEND_ERROR "Could NOT find LibPcre")
-   ENDIF (LibPcre_FIND_REQUIRED)
-ENDIF (LIBPCRE_FOUND)
-
-MARK_AS_ADVANCED(LIBPCRE_INCLUDE_DIR LIBPCRE_LIBRARIES)
-
diff --git a/cmake/FindLibXml2.cmake b/cmake/FindLibXml2.cmake
deleted file mode 100644
index b45d729..0000000
--- a/cmake/FindLibXml2.cmake
+++ /dev/null
@@ -1,59 +0,0 @@
-# - Try to find LibXml2
-# Once done this will define
-#
-#  LIBXML2_FOUND - system has LibXml2
-#  LIBXML2_INCLUDE_DIR - the LibXml2 include directory
-#  LIBXML2_LIBRARIES - the libraries needed to use LibXml2
-#  LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2
-#
-# Copyright (c) 2006, Alexander Neundorf <neundorf at kde.org>
-# This code is available under the BSD license, see licenses/BSD for details.
-
-# Copyright (c) 2006, Alexander Neundorf, <neundorf at kde.org>
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-
-IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES)
-   # in cache already
-   SET(LibXml2_FIND_QUIETLY TRUE)
-ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES)
-
-IF (NOT WIN32)
-   # use pkg-config to get the directories and then use these values
-   # in the FIND_PATH() and FIND_LIBRARY() calls
-   INCLUDE(UsePkgConfig)
-   PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2Cflags)
-   SET(LIBXML2_DEFINITIONS ${_LibXml2Cflags})
-ENDIF (NOT WIN32)
-
-FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h
-   PATHS
-   ${_LibXml2IncDir}
-   PATH_SUFFIXES libxml2
-   )
-
-FIND_LIBRARY(LIBXML2_LIBRARIES NAMES xml2 libxml2
-   PATHS
-   ${_LibXml2LinkDir}
-   )
-
-IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES)
-   SET(LIBXML2_FOUND TRUE)
-ELSE (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES)
-   SET(LIBXML2_FOUND FALSE)
-ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES)
-
-IF (LIBXML2_FOUND)
-   IF (NOT LibXml2_FIND_QUIETLY)
-      MESSAGE(STATUS "Found LibXml2: ${LIBXML2_LIBRARIES}")
-   ENDIF (NOT LibXml2_FIND_QUIETLY)
-ELSE (LIBXML2_FOUND)
-   IF (LibXml2_FIND_REQUIRED)
-      MESSAGE(SEND_ERROR "Could NOT find LibXml2")
-   ENDIF (LibXml2_FIND_REQUIRED)
-ENDIF (LIBXML2_FOUND)
-
-MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES)
-
diff --git a/cmake/FindLttoolbox3.cmake b/cmake/FindLttoolbox3.cmake
deleted file mode 100644
index 86db0dc..0000000
--- a/cmake/FindLttoolbox3.cmake
+++ /dev/null
@@ -1,57 +0,0 @@
-# - Try to find Lttoolbox3
-# Once done this will define
-#
-#  LTTOOLBOX3_FOUND - system has Lttoolbox3
-#  LTTOOLBOX3_INCLUDE_DIR - the Lttoolbox3 include directory
-#  LTTOOLBOX3_LIBRARIES - the libraries needed to use Lttoolbox3
-#  LTTOOLBOX3_DEFINITIONS - Compiler switches required for using Lttoolbox3
-#
-# Copyright (c) 2006, Alexander Neundorf <neundorf at kde.org>
-# This code is available under the BSD license, see licenses/BSD for details.
-
-# Copyright (c) 2006, Alexander Neundorf, <neundorf at kde.org>
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-#
-# This is derived from FindLibXml2.cmake
-
-IF (LTTOOLBOX3_INCLUDE_DIR AND LTTOOLBOX3_LIBRARIES)
-   # in cache already
-   SET(Lttoolbox3_FIND_QUIETLY TRUE)
-ENDIF (LTTOOLBOX3_INCLUDE_DIR AND LTTOOLBOX3_LIBRARIES)
-
-IF (NOT WIN32)
-   # use pkg-config to get the directories and then use these values
-   # in the FIND_PATH() and FIND_LIBRARY() calls
-   INCLUDE(UsePkgConfig)
-   PKGCONFIG(lttoolbox-3.0 LTTOOLBOX3_INCLUDES LTTOOLBOX3_LIB_DIR LTTOOLBOX3_LDFLAGS LTTOOLBOX3_CFLAGS)
-   SET(LTTOOLBOX3_DEFINITIONS ${LTTOOLBOX3_CFLAGS})
-ENDIF (NOT WIN32)
-
-FIND_PATH(LTTOOLBOX3_INCLUDE_DIR lttoolbox/alphabet.h
-   PATHS ${LTTOOLBOX3_INCLUDES}
-   PATH_SUFFIXES lttoolbox-3.0)
-
-FIND_LIBRARY(LTTOOLBOX3_LIBRARIES
-             NAMES lttoolbox3
-             PATHS ${LTTOOLBOX3_LIB_DIR})
-
-IF (LTTOOLBOX3_INCLUDE_DIR AND LTTOOLBOX3_LIBRARIES)
-   SET(LTTOOLBOX3_FOUND TRUE)
-ELSE (LTTOOLBOX3_INCLUDE_DIR AND LTTOOLBOX3_LIBRARIES)
-   SET(LTTOOLBOX3_FOUND FALSE)
-ENDIF (LTTOOLBOX3_INCLUDE_DIR AND LTTOOLBOX3_LIBRARIES)
-
-IF (LTTOOLBOX3_FOUND)
-   IF (NOT Lttoolbox3_FIND_QUIETLY)
-      MESSAGE(STATUS "Found Lttoolbox3: ${LTTOOLBOX3_LIBRARIES}")
-   ENDIF (NOT Lttoolbox3_FIND_QUIETLY)
-ELSE (LTTOOLBOX3_FOUND)
-   IF (Lttoolbox3_FIND_REQUIRED)
-      MESSAGE(SEND_ERROR "Could NOT find Lttoolbox3")
-   ENDIF (Lttoolbox3_FIND_REQUIRED)
-ENDIF (LTTOOLBOX3_FOUND)
-
-MARK_AS_ADVANCED(LTTOOLBOX3_INCLUDE_DIR LTTOOLBOX3_LIBRARIES)
-
diff --git a/compile b/compile
new file mode 100755
index 0000000..a85b723
--- /dev/null
+++ b/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey at cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""	$nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+	# lazily determine how to convert abs files
+	case `uname -s` in
+	  MINGW*)
+	    file_conv=mingw
+	    ;;
+	  CYGWIN*)
+	    file_conv=cygwin
+	    ;;
+	  *)
+	    file_conv=wine
+	    ;;
+	esac
+      fi
+      case $file_conv/,$2, in
+	*,$file_conv,*)
+	  ;;
+	mingw/*)
+	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+	  ;;
+	cygwin/*)
+	  file=`cygpath -m "$file" || echo "$file"`
+	  ;;
+	wine/*)
+	  file=`winepath -w "$file" || echo "$file"`
+	  ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+	-o)
+	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
+	  eat=1
+	  case $2 in
+	    *.o | *.[oO][bB][jJ])
+	      func_file_conv "$2"
+	      set x "$@" -Fo"$file"
+	      shift
+	      ;;
+	    *)
+	      func_file_conv "$2"
+	      set x "$@" -Fe"$file"
+	      shift
+	      ;;
+	  esac
+	  ;;
+	-I)
+	  eat=1
+	  func_file_conv "$2" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-I*)
+	  func_file_conv "${1#-I}" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-l)
+	  eat=1
+	  func_cl_dashl "$2"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-l*)
+	  func_cl_dashl "${1#-l}"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-L)
+	  eat=1
+	  func_cl_dashL "$2"
+	  ;;
+	-L*)
+	  func_cl_dashL "${1#-L}"
+	  ;;
+	-static)
+	  shared=false
+	  ;;
+	-Wl,*)
+	  arg=${1#-Wl,}
+	  save_ifs="$IFS"; IFS=','
+	  for flag in $arg; do
+	    IFS="$save_ifs"
+	    linker_opts="$linker_opts $flag"
+	  done
+	  IFS="$save_ifs"
+	  ;;
+	-Xlinker)
+	  eat=1
+	  linker_opts="$linker_opts $2"
+	  ;;
+	-*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+	  func_file_conv "$1"
+	  set x "$@" -Tp"$file"
+	  shift
+	  ;;
+	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+	  func_file_conv "$1" mingw
+	  set x "$@" "$file"
+	  shift
+	  ;;
+	*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as 'compile cc -o foo foo.c'.
+	# So we strip '-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config.guess b/config.guess
new file mode 100755
index 0000000..6c32c86
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1421 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
+
+timestamp='2014-11-04'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches to <config-patches at gnu.org>.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2014 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi at noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+	;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep -q __ELF__
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+		os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:Bitrig:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+	exitcode=$?
+	trap '' 0
+	exit $exitcode ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+	echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+	echo m68k-milan-mint${UNAME_RELEASE}
+	exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+	echo m68k-hades-mint${UNAME_RELEASE}
+	exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+	echo m68k-unknown-mint${UNAME_RELEASE}
+	exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+	# DG/UX returns AViiON for all architectures
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[4567])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/lslpp ] ; then
+		IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+			   awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case "${sc_cpu_version}" in
+		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+		      532)                      # CPU_PA_RISC2_0
+			case "${sc_kernel_bits}" in
+			  32) HP_ARCH="hppa2.0n" ;;
+			  64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+			esac ;;
+		    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^		//' << EOF >$dummy.c
+
+		#define _HPUX_SOURCE
+		#include <stdlib.h>
+		#include <unistd.h>
+
+		int main ()
+		{
+		#if defined(_SC_KERNEL_BITS)
+		    long bits = sysconf(_SC_KERNEL_BITS);
+		#endif
+		    long cpu  = sysconf (_SC_CPU_VERSION);
+
+		    switch (cpu)
+			{
+			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+			case CPU_PA_RISC2_0:
+		#if defined(_SC_KERNEL_BITS)
+			    switch (bits)
+				{
+				case 64: puts ("hppa2.0w"); break;
+				case 32: puts ("hppa2.0n"); break;
+				default: puts ("hppa2.0"); break;
+				} break;
+		#else  /* !defined(_SC_KERNEL_BITS) */
+			    puts ("hppa2.0"); break;
+		#endif
+			default: puts ("hppa1.0"); break;
+			}
+		    exit (0);
+		}
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep -q __LP64__
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+	exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+	exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+	exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+	exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    5000:UNIX_System_V:4.*:*)
+	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	case ${UNAME_PROCESSOR} in
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    *:MINGW64*:*)
+	echo ${UNAME_MACHINE}-pc-mingw64
+	exit ;;
+    *:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    *:MSYS*:*)
+	echo ${UNAME_MACHINE}-pc-msys
+	exit ;;
+    i*:windows32*:*)
+	# uname -m includes "-pc" on this system.
+	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    *:Interix*:*)
+	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    aarch64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    aarch64_be:Linux:*:*)
+	UNAME_MACHINE=aarch64_be
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+	esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	else
+	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+		| grep -q __ARM_PCS_VFP
+	    then
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+	    else
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+	    fi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    cris:Linux:*:*)
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+	exit ;;
+    crisv32:Linux:*:*)
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+	exit ;;
+    frv:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    hexagon:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    i*86:Linux:*:*)
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=${UNAME_MACHINE}el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=${UNAME_MACHINE}
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+	;;
+    openrisc*:Linux:*:*)
+	echo or1k-unknown-linux-${LIBC}
+	exit ;;
+    or32:Linux:*:* | or1k*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-${LIBC}
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-${LIBC}
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
+	esac
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-${LIBC}
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+	exit ;;
+    sh64*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    tile*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+	exit ;;
+    x86_64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    xtensa*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+	# Unixware is an offshoot of SVR4, but it has its own version
+	# number series starting with 2...
+	# I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+	# Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
+	# the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+	exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+			# says <Richard.M.Bartel at ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes at openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf at swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green at stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green at stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+		echo mips-nec-sysv${UNAME_RELEASE}
+	else
+		echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+	exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
+    x86_64:Haiku:*:*)
+	echo x86_64-unknown-haiku
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    grep IS_64BIT_ARCH >/dev/null
+		then
+		    case $UNAME_PROCESSOR in
+			i386) UNAME_PROCESSOR=x86_64 ;;
+			powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		    esac
+		fi
+	    fi
+	elif test "$UNAME_PROCESSOR" = i386 ; then
+	    # Avoid executing cc on OS X 10.9, as it ships with a stub
+	    # that puts up a graphical alert prompting to install
+	    # developer tools.  Any system running Mac OS X 10.7 or
+	    # later (Darwin 11 and later) is required to have a 64-bit
+	    # processor. This is not true of the ARM version of Darwin
+	    # that Apple uses in portable devices.
+	    UNAME_PROCESSOR=x86_64
+	fi
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NEO-?:NONSTOP_KERNEL:*:*)
+	echo neo-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSE-*:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+	echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
+    x86_64:VMkernel:*:*)
+	echo ${UNAME_MACHINE}-unknown-esx
+	exit ;;
+esac
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches at gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..7ffe373
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1807 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
+
+timestamp='2014-12-03'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches at gnu.org>.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2014 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray | -microblaze*)
+		os=
+		basic_machine=$1
+		;;
+	-bluegene*)
+		os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+	-chorusrdb)
+		os=-chorusrdb
+		basic_machine=$1
+		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*178)
+		os=-lynxos178
+		;;
+	-lynx*5)
+		os=-lynxos5
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| aarch64 | aarch64_be \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| be32 | be64 \
+	| bfin \
+	| c4x | c8051 | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| epiphany \
+	| fido | fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| hexagon \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| k1om \
+	| le32 | le64 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64octeon | mips64octeonel \
+	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa32r6 | mipsisa32r6el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64r6 | mipsisa64r6el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| moxie \
+	| mt \
+	| msp430 \
+	| nds32 | nds32le | nds32be \
+	| nios | nios2 | nios2eb | nios2el \
+	| ns16k | ns32k \
+	| open8 | or1k | or1knd | or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle \
+	| pyramid \
+	| riscv32 | riscv64 \
+	| rl78 | rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu \
+	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+	| ubicom32 \
+	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+	| visium \
+	| we32k \
+	| x86 | xc16x | xstormy16 | xtensa \
+	| z8k | z80)
+		basic_machine=$basic_machine-unknown
+		;;
+	c54x)
+		basic_machine=tic54x-unknown
+		;;
+	c55x)
+		basic_machine=tic55x-unknown
+		;;
+	c6x)
+		basic_machine=tic6x-unknown
+		;;
+	leon|leon[3-9])
+		basic_machine=sparc-$basic_machine
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
+
+	strongarm | thumb | xscale)
+		basic_machine=arm-unknown
+		;;
+	xgate)
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	xscaleeb)
+		basic_machine=armeb-unknown
+		;;
+
+	xscaleel)
+		basic_machine=armel-unknown
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| aarch64-* | aarch64_be-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* | avr32-* \
+	| be32-* | be64-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| hexagon-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| k1om-* \
+	| le32-* | le64-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64octeon-* | mips64octeonel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa32r6-* | mipsisa32r6el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64r6-* | mipsisa64r6el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| mt-* \
+	| msp430-* \
+	| nds32-* | nds32le-* | nds32be-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| open8-* \
+	| or1k*-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+	| pyramid-* \
+	| rl78-* | romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+	| tahoe-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tile*-* \
+	| tron-* \
+	| ubicom32-* \
+	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+	| vax-* \
+	| visium-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* \
+	| xstormy16-* | xtensa*-* \
+	| ymp-* \
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c54x-*)
+		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c55x-*)
+		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c6x-*)
+		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16 | cr16-*)
+		basic_machine=cr16-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	leon-*|leon[3-9]-*)
+		basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	microblaze*)
+		basic_machine=microblaze-xilinx
+		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
+	mingw32)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	moxiebox)
+		basic_machine=moxie-unknown
+		os=-moxiebox
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
+	msys)
+		basic_machine=i686-pc
+		os=-msys
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	nacl)
+		basic_machine=le32-unknown
+		os=-nacl
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	neo-tandem)
+		basic_machine=neo-tandem
+		;;
+	nse-tandem)
+		basic_machine=nse-tandem
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc | ppcbe)	basic_machine=powerpc-unknown
+		;;
+	ppc-* | ppcbe-*)
+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	strongarm-* | thumb-*)
+		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tile*)
+		basic_machine=$basic_machine-unknown
+		os=-linux-gnu
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	xscale-* | xscalee[bl]-*)
+		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+	# First match some system type aliases
+	# that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-auroraux)
+		os=-auroraux
+		;;
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+	-os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+	-tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-dicos*)
+		os=-dicos
+		;;
+	-nacl*)
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	score-*)
+		os=-elf
+		;;
+	spu-*)
+		os=-elf
+		;;
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+	c4x-* | tic4x-*)
+		os=-coff
+		;;
+	c8051-*)
+		os=-elf
+		;;
+	hexagon-*)
+		os=-elf
+		;;
+	tic54x-*)
+		os=-coff
+		;;
+	tic55x-*)
+		os=-coff
+		;;
+	tic6x-*)
+		os=-coff
+		;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+	mep-*)
+		os=-elf
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-haiku)
+		os=-haiku
+		;;
+	*-ibm)
+		os=-aix
+		;;
+	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-cnk*|-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure b/configure
new file mode 100755
index 0000000..87faa74
--- /dev/null
+++ b/configure
@@ -0,0 +1,20171 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for apertium 3.4.0.
+#
+# Report bugs to <sortiz at users.sourceforge.net>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf at gnu.org and
+$0: sortiz at users.sourceforge.net about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='apertium'
+PACKAGE_TARNAME='apertium'
+PACKAGE_VERSION='3.4.0'
+PACKAGE_STRING='apertium 3.4.0'
+PACKAGE_BUGREPORT='sortiz at users.sourceforge.net'
+PACKAGE_URL=''
+
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+WINDOWS_FALSE
+WINDOWS_TRUE
+LIBOBJS
+APERTIUM_LIBS
+APERTIUM_CFLAGS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+FLEX
+BASH
+XSLTPROC
+XMLLINT
+CXXCPP
+CPP
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+DLLTOOL
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+EGREP
+GREP
+SED
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+ac_ct_CC
+CFLAGS
+CC
+LIBTOOL
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CXX
+CPPFLAGS
+LDFLAGS
+CXXFLAGS
+CXX
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+GENERIC_VERSION
+GENERIC_RELEASE
+GENERIC_LIBRARY_NAME
+GENERIC_LIBRARY_VERSION
+GENERIC_MAJOR_VERSION
+GENERIC_API_VERSION
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_dependency_tracking
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+enable_debug
+enable_profile
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC
+CC
+CFLAGS
+LT_SYS_LIBRARY_PATH
+CPP
+CXXCPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+APERTIUM_CFLAGS
+APERTIUM_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures apertium 3.4.0 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/apertium]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of apertium 3.4.0:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
+  --enable-shared[=PKGS]  build shared libraries [default=yes]
+  --enable-static[=PKGS]  build static libraries [default=yes]
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
+  --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-debug    Enable "-g -Wall" compiler options
+  --enable-profile  Enable "-pg -g -Wall" compiler options
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-aix-soname=aix|svr4|both
+                          shared library versioning (aka "SONAME") variant to
+                          provide on AIX, [default=aix].
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
+                          compiler's sysroot if not specified).
+
+Some influential environment variables:
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LT_SYS_LIBRARY_PATH
+              User-defined run-time library search path.
+  CPP         C preprocessor
+  CXXCPP      C++ preprocessor
+  PKG_CONFIG  path to pkg-config utility
+  PKG_CONFIG_PATH
+              directories to add to pkg-config's search path
+  PKG_CONFIG_LIBDIR
+              path overriding pkg-config's built-in search path
+  APERTIUM_CFLAGS
+              C compiler flags for APERTIUM, overriding pkg-config
+  APERTIUM_LIBS
+              linker flags for APERTIUM, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <sortiz at users.sourceforge.net>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+apertium configure 3.4.0
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_cxx_try_cpp LINENO
+# ------------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_cpp
+
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_link
+
+# ac_fn_cxx_check_func LINENO FUNC VAR
+# ------------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_cxx_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_cxx_check_func
+
+# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES
+# ---------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_cxx_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ------------------------------------------- ##
+## Report this to sortiz at users.sourceforge.net ##
+## ------------------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_cxx_check_header_mongrel
+
+# ac_fn_cxx_try_run LINENO
+# ------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_cxx_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_run
+
+# ac_fn_cxx_check_type LINENO TYPE VAR INCLUDES
+# ---------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_cxx_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+	 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_cxx_check_type
+
+# ac_fn_cxx_check_decl LINENO SYMBOL VAR INCLUDES
+# -----------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
+ac_fn_cxx_check_decl ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  as_decl_name=`echo $2|sed 's/ *(.*//'`
+  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+  (void) $as_decl_use;
+#else
+  (void) $as_decl_name;
+#endif
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_cxx_check_decl
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by apertium $as_me 3.4.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ac_config_headers="$ac_config_headers apertium/apertium_config.h"
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$target_alias" = x; then
+  ac_cv_target=$ac_cv_host
+else
+  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+
+GENERIC_LIBRARY_NAME=apertium
+
+# Release versioning
+GENERIC_MAJOR_VERSION=3
+GENERIC_MINOR_VERSION=4
+GENERIC_MICRO_VERSION=0
+
+# API version (often = GENERIC_MAJOR_VERSION.GENERIC_MINOR_VERSION)
+GENERIC_API_VERSION=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION
+
+
+
+# Shared library versioning
+GENERIC_LIBRARY_VERSION=0:0:0
+#                       | | |
+#                +------+ | +---+
+#                |        |     |
+#             current:revision:age
+#                |        |     |
+#                |        |     +- increment if interfaces have been added
+#                |        |        set to zero if interfaces have been removed
+#                                  or changed
+#                |        +- increment if source code has changed
+#                |           set to zero if current is incremented
+#                +- increment if interfaces have been added, removed or changed
+
+
+PACKAGE=$GENERIC_LIBRARY_NAME
+
+
+GENERIC_VERSION=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION.$GENERIC_MICRO_VERSION
+GENERIC_RELEASE=$GENERIC_MAJOR_VERSION.$GENERIC_MINOR_VERSION
+
+
+
+VERSION=$GENERIC_VERSION
+
+am__api_version='1.15'
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if ${ac_cv_path_mkdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+  done
+IFS=$as_save_IFS
+
+fi
+
+  test -d ./--version && rmdir ./--version
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  am__isrc=' -I$(srcdir)'
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+
+ PACKAGE=$PACKAGE
+ VERSION=$VERSION
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
+
+# Checks for programs.
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Compilation architecture: PPC, i686, x86_64, Other" >&5
+$as_echo_n "checking Compilation architecture: PPC, i686, x86_64, Other... " >&6; }
+if test x$(which arch) = x
+then ARCH=$($(which uname) -m)
+else ARCH=$($(which arch))
+fi
+
+case "${target_os}" in
+  mingw*)
+    MinGW=yes
+  ;;
+  cygwin*)
+    Cygwin=yes
+  ;;
+esac
+
+if test x$ARCH = xppc
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: PowerPC" >&5
+$as_echo "PowerPC" >&6; }
+  CFLAGS="$CFLAGS -Wall -ansi -fomit-frame-pointer"
+  CXXFLAGS="$CXXFLAGS -Wall -ansi -fomit-frame-pointer"
+else
+  if test x$MinGW = xyes
+  then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: MinGW" >&5
+$as_echo "MinGW" >&6; }
+    CFLAGS="$CFLAGS -Wall -march=i686 -O3 -DMINGW -fomit-frame-pointer \
+	        -funroll-loops -I/include -L/lib"
+    CXXFLAGS="$CXXFLAGS -Wall -march=i686 -O3 \
+            -fomit-frame-pointer -funroll-loops -I/include -L/lib"
+    CPPFLAGS="$CPPFLAGS -I/include"
+  else
+    if test x$Cygwin = xyes
+    then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: Cygwin" >&5
+$as_echo "Cygwin" >&6; }
+      CFLAGS="$CFLAGS -Wall -march=i686 -O3 -fomit-frame-pointer \
+           -funroll-loops"
+      CXXFLAGS="$CXXFLAGS -Wall -march=i686 -O3 \
+              -fomit-frame-pointer -funroll-loops"
+      CPPFLAGS="$CPPFLAGS"
+    else
+      if test x$ARCH = xi686
+      then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: i686" >&5
+$as_echo "i686" >&6; }
+        CFLAGS="$CFLAGS -Wall -ansi -march=i686 -O3 -fomit-frame-pointer -funroll-loops"
+        CXXFLAGS="$CXXFLAGS -Wall -ansi -march=i686 -O3 \
+                -fomit-frame-pointer -funroll-loops"
+      else
+        if test x$ARCH = xx86_64
+        then
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: x86_64" >&5
+$as_echo "x86_64" >&6; }
+          CFLAGS="-Wall -ansi -O3 -mtune=nocona -fomit-frame-pointer -funroll-loops $CFLAGS"
+          CXXFLAGS="-Wall -ansi -O3 -mtune=nocona \
+                  -fomit-frame-pointer -funroll-loops $CXXFLAGS"
+        else
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: Other" >&5
+$as_echo "Other" >&6; }
+          CFLAGS="-Wall -ansi -O3 $CFLAGS"
+          CXXFLAGS="-Wall -ansi -O3 $CXXFLAGS"
+        fi
+      fi
+    fi
+  fi
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
+$as_echo_n "checking whether the C++ compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C++ compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
+$as_echo_n "checking for C++ compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+else
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+  enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+
+depcc="$CXX"  am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
+
+
+case `pwd` in
+  *\ * | *\	*)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.6'
+macro_revision='2.4.6'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case $ECHO in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+   then ac_cv_path_FGREP="$GREP -F"
+   else
+     if test -z "$FGREP"; then
+  ac_path_FGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in fgrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+  # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'FGREP' >> "conftest.nl"
+    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_FGREP="$ac_path_FGREP"
+      ac_path_FGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_FGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_FGREP"; then
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_FGREP=$FGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return, which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD=$ac_prog
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test yes = "$with_gnu_ld"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD=$ac_dir/$ac_prog
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test no != "$with_gnu_ld" && break
+	;;
+      *)
+	test yes != "$with_gnu_ld" && break
+	;;
+      esac
+    fi
+  done
+  IFS=$lt_save_ifs
+else
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM=$NM
+else
+  lt_nm_to_check=${ac_tool_prefix}nm
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS=$lt_save_ifs
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm=$ac_dir/$lt_tmp_nm
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+	case $build_os in
+	mingw*) lt_bad_file=conftest.nm/nofile ;;
+	*) lt_bad_file=/dev/null ;;
+	esac
+	case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
+	*$lt_bad_file* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break 2
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break 2
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS=$lt_save_ifs
+  done
+  : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+  NM=$lt_cv_path_NM
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DUMPBIN"; then
+  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$DUMPBIN" && break
+  done
+fi
+if test -z "$DUMPBIN"; then
+  ac_ct_DUMPBIN=$DUMPBIN
+  for ac_prog in dumpbin "link -dump"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DUMPBIN"; then
+  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_DUMPBIN" && break
+done
+
+  if test "x$ac_ct_DUMPBIN" = x; then
+    DUMPBIN=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DUMPBIN=$ac_ct_DUMPBIN
+  fi
+fi
+
+    case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols -headers"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+
+  if test : != "$DUMPBIN"; then
+    NM=$DUMPBIN
+  fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+  cat conftest.out >&5
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+    i=0
+  teststring=ABCD
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+       test undefined != "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+	      test 17 != "$i" # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test yes != "$GCC"; then
+      reload_cmds=false
+    fi
+    ;;
+  darwin*)
+    if test yes = "$GCC"; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OBJDUMP"; then
+  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+  ac_ct_OBJDUMP=$OBJDUMP
+  # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OBJDUMP"; then
+  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OBJDUMP="objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OBJDUMP" = x; then
+    OBJDUMP="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OBJDUMP=$ac_ct_OBJDUMP
+  fi
+else
+  OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[3-9]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd* | bitrig*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+os2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh;
+  # decide which one to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd=$ECHO
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$AR" && break
+  done
+fi
+if test -z "$AR"; then
+  ac_ct_AR=$AR
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_AR" && break
+done
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test 0 -eq "$ac_status"; then
+	# Ensure the archiver fails upon bogus file names.
+	rm -f conftest.$ac_objext libconftest.a
+	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	if test 0 -ne "$ac_status"; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  bitrig* | openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*)
+  if test ia64 = "$host_cpu"; then
+    symcode='[ABCDEGRST]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris*)
+  symcode='[BDRT]'
+  ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  # Gets list of data symbols to import.
+  lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
+  # Adjust the below global symbol transforms to fixup imported variables.
+  lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \(.*\)$/  {\"\1\", (void *) 0},/p'"
+  lt_c_name_lib_hook="\
+  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+else
+  # Disable hooks by default.
+  lt_cv_sys_global_symbol_to_import=
+  lt_cdecl_hook=
+  lt_c_name_hook=
+  lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function,
+    # D for any global variable and I for any imported variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK '"\
+"     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+"     /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+"     /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+"     {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+"     s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+	  cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+LT_DLSYM_CONST struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+	  $SED "s/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+	  cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_globsym_save_LIBS=$LIBS
+	  lt_globsym_save_CFLAGS=$CFLAGS
+	  LIBS=conftstm.$ac_objext
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest$ac_exeext; then
+	    pipe_works=yes
+	  fi
+	  LIBS=$lt_globsym_save_LIBS
+	  CFLAGS=$lt_globsym_save_CFLAGS
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test yes = "$pipe_works"; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+   if test yes = "$GCC"; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+$as_echo "$with_sysroot" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+$as_echo_n "checking for a working dd... " >&6; }
+if ${ac_cv_path_lt_DD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+  ac_path_lt_DD_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in dd; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+      $ac_path_lt_DD_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_lt_DD"; then
+    :
+  fi
+else
+  ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+$as_echo "$ac_cv_path_lt_DD" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+$as_echo_n "checking how to truncate binary pipes... " >&6; }
+if ${lt_cv_truncate_bin+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+  cmp -s conftest.i conftest.out \
+  && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+$as_echo "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+  enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out what ABI is being produced by ac_compile, and set mode
+  # options accordingly.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+	HPUX_IA64_MODE=32
+	;;
+      *ELF-64*)
+	HPUX_IA64_MODE=64
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    if test yes = "$lt_cv_prog_gnu_ld"; then
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -melf32bsmip"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -melf32bmipn32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -melf64bmip"
+	;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+	*32-bit*)
+	  LD="${LD-ld} -32"
+	  ;;
+	*N32*)
+	  LD="${LD-ld} -n32"
+	  ;;
+	*64-bit*)
+	  LD="${LD-ld} -64"
+	  ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+mips64*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    emul=elf
+    case `/usr/bin/file conftest.$ac_objext` in
+      *32-bit*)
+	emul="${emul}32"
+	;;
+      *64-bit*)
+	emul="${emul}64"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *MSB*)
+	emul="${emul}btsmip"
+	;;
+      *LSB*)
+	emul="${emul}ltsmip"
+	;;
+    esac
+    case `/usr/bin/file conftest.$ac_objext` in
+      *N32*)
+	emul="${emul}n32"
+	;;
+    esac
+    LD="${LD-ld} -m $emul"
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.  Note that the listed cases only cover the
+  # situations where additional linker options are needed (such as when
+  # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+  # vice versa); the common cases where no linker options are needed do
+  # not appear in the list.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_i386_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*linux*)
+	    LD="${LD-ld} -m elf32lppclinux"
+	    ;;
+	  powerpc64-*linux*)
+	    LD="${LD-ld} -m elf32ppclinux"
+	    ;;
+	  s390x-*linux*)
+	    LD="${LD-ld} -m elf_s390"
+	    ;;
+	  sparc64-*linux*)
+	    LD="${LD-ld} -m elf32_sparc"
+	    ;;
+	esac
+	;;
+      *64-bit*)
+	case $host in
+	  x86_64-*kfreebsd*-gnu)
+	    LD="${LD-ld} -m elf_x86_64_fbsd"
+	    ;;
+	  x86_64-*linux*)
+	    LD="${LD-ld} -m elf_x86_64"
+	    ;;
+	  powerpcle-*linux*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*linux*)
+	    LD="${LD-ld} -m elf64ppc"
+	    ;;
+	  s390*-*linux*|s390*-*tpf*)
+	    LD="${LD-ld} -m elf64_s390"
+	    ;;
+	  sparc*-*linux*)
+	    LD="${LD-ld} -m elf64_sparc"
+	    ;;
+	esac
+	;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS=$CFLAGS
+  CFLAGS="$CFLAGS -belf"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_cc_needs_belf=yes
+else
+  lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+  if test yes != "$lt_cv_cc_needs_belf"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS=$SAVE_CFLAGS
+  fi
+  ;;
+*-*solaris*)
+  # Find out what ABI is being produced by ac_compile, and set linker
+  # options accordingly.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*)
+        case $host in
+        i?86-*-solaris*|x86_64-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD=${LD-ld}_sol2
+        fi
+        ;;
+      *)
+	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DSYMUTIL" = x; then
+    DSYMUTIL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DSYMUTIL=$ac_ct_DSYMUTIL
+  fi
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NMEDIT" = x; then
+    NMEDIT=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NMEDIT=$ac_ct_NMEDIT
+  fi
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$LIPO"; then
+  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+  ac_ct_LIPO=$LIPO
+  # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_LIPO"; then
+  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_LIPO="lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_LIPO" = x; then
+    LIPO=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    LIPO=$ac_ct_LIPO
+  fi
+else
+  LIPO="$ac_cv_prog_LIPO"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL"; then
+  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+  ac_ct_OTOOL=$OTOOL
+  # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL"; then
+  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL="otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL" = x; then
+    OTOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL=$ac_ct_OTOOL
+  fi
+else
+  OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL64"; then
+  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+  ac_ct_OTOOL64=$OTOOL64
+  # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL64"; then
+  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL64="otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL64" = x; then
+    OTOOL64=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL64=$ac_ct_OTOOL64
+  fi
+else
+  OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "$LT_MULTI_MODULE"; then
+	# By default we will add the -single_module flag. You can override
+	# by either setting the environment variable LT_MULTI_MODULE
+	# non-empty at configure time, or by adding -multi_module to the
+	# link flags.
+	rm -rf libconftest.dylib*
+	echo "int foo(void){return 1;}" > conftest.c
+	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&5
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+	  lt_cv_apple_cc_single_mod=yes
+	else
+	  cat conftest.err >&5
+	fi
+	rm -rf libconftest.dylib*
+	rm -f conftest.*
+      fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_ld_exported_symbols_list=yes
+else
+  lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+	LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      echo "$RANLIB libconftest.a" >&5
+      $RANLIB libconftest.a 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&5
+      elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+	lt_cv_ld_force_load=yes
+      else
+	cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+    case $host_os in
+    rhapsody* | darwin1.[012])
+      _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+	10.[012][,.]*)
+	  _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+	10.*)
+	  _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test yes = "$lt_cv_apple_cc_single_mod"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test yes = "$lt_cv_ld_exported_symbols_list"; then
+      _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+    fi
+    if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+for ac_header in dlfcn.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+func_stripname_cnf ()
+{
+  case $2 in
+  .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;;
+  *)  func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;;
+  esac
+} # func_stripname_cnf
+
+
+
+
+
+# Set options
+
+
+
+        enable_dlopen=no
+
+
+  enable_win32_dll=no
+
+
+            # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+  enableval=$enable_shared; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac
+else
+  enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+  # Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+  enableval=$enable_static; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac
+else
+  enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for lt_pkg in $withval; do
+	IFS=$lt_save_ifs
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac
+else
+  pic_mode=default
+fi
+
+
+
+
+
+
+
+
+  # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+  enableval=$enable_fast_install; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+      for pkg in $enableval; do
+	IFS=$lt_save_ifs
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS=$lt_save_ifs
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+  shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test "${with_aix_soname+set}" = set; then :
+  withval=$with_aix_soname; case $withval in
+    aix|svr4|both)
+      ;;
+    *)
+      as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+      ;;
+    esac
+    lt_cv_with_aix_soname=$with_aix_soname
+else
+  if ${lt_cv_with_aix_soname+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_with_aix_soname=aix
+fi
+
+    with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+$as_echo "$with_aix_soname" >&6; }
+  if test aix != "$with_aix_soname"; then
+    # For the AIX way of multilib, we name the shared archive member
+    # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+    # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+    # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+    # the AIX toolchain works better with OBJECT_MODE set (default 32).
+    if test 64 = "${OBJECT_MODE-32}"; then
+      shared_archive_member_spec=shr_64
+    else
+      shared_archive_member_spec=shr
+    fi
+  fi
+  ;;
+*)
+  with_aix_soname=aix
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+   setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test set != "${COLLECT_NAMES+set}"; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/${ac_tool_prefix}file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
+  ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD=$MAGIC_CMD
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/file"; then
+      lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+_LT_EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS=$lt_save_ifs
+  MAGIC_CMD=$lt_save_MAGIC_CMD
+  ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"  ## exclude from sc_useless_quotes_in_assignment
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+
+
+
+
+
+  lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+  if test yes = "$GCC"; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            lt_prog_compiler_pic='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
+            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+	lt_prog_compiler_static='$wl-static'
+	;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
+
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      case $cc_basename in
+      nagfor*)
+        # NAG Fortran compiler
+        lt_prog_compiler_wl='-Wl,-Wl,,'
+        lt_prog_compiler_pic='-PIC'
+        lt_prog_compiler_static='-Bstatic'
+        ;;
+      esac
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+	lt_prog_compiler_static='$wl-static'
+	;;
+      esac
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='$wl-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+      case $cc_basename in
+      # old Intel for x86_64, which still supported -KPIC.
+      ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='--shared'
+	lt_prog_compiler_static='--static'
+	;;
+      nagfor*)
+	# NAG Fortran compiler
+	lt_prog_compiler_wl='-Wl,-Wl,,'
+	lt_prog_compiler_pic='-PIC'
+	lt_prog_compiler_static='-Bstatic'
+	;;
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fPIC'
+	lt_prog_compiler_static='-static'
+	;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fpic'
+	lt_prog_compiler_static='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-qpic'
+	lt_prog_compiler_static='-qstaticlink'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl=''
+	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Qoption ld '
+	  ;;
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Wl,'
+	  ;;
+        *Intel*\ [CF]*Compiler*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fPIC'
+	  lt_prog_compiler_static='-static'
+	  ;;
+	*Portland\ Group*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fpic'
+	  lt_prog_compiler_static='-Bstatic'
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    rdos*)
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+	lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+case $host_os in
+  # For platforms that do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_works=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"  ## exclude from sc_useless_quotes_in_assignment
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_static_works=no
+   save_LDFLAGS=$LDFLAGS
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+  # do not overwrite the value of need_locks provided by the user
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+  if test no = "$hard_links"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+  runpath_var=
+  allow_undefined_flag=
+  always_export_symbols=no
+  archive_cmds=
+  archive_expsym_cmds=
+  compiler_needs_object=no
+  enable_shared_with_static_runtimes=no
+  export_dynamic_flag_spec=
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  hardcode_automatic=no
+  hardcode_direct=no
+  hardcode_direct_absolute=no
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_separator=
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  inherit_rpath=no
+  link_all_deplibs=unknown
+  module_cmds=
+  module_expsym_cmds=
+  old_archive_from_new_cmds=
+  old_archive_from_expsyms_cmds=
+  thread_safe_flag_spec=
+  whole_archive_flag_spec=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ' (' and ')$', so one must not match beginning or
+  # end of line.  Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+  # as well as any symbol that contains 'd'.
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test yes != "$GCC"; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd* | bitrig*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test yes = "$with_gnu_ld"; then
+    case $host_os in
+      aix*)
+	# The AIX port of GNU ld has always aspired to compatibility
+	# with the native linker.  However, as the warning in the GNU ld
+	# block says, versions before 2.19.5* couldn't really create working
+	# shared libraries, regardless of the interface used.
+	case `$LD -v 2>&1` in
+	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+	  *)
+	    lt_use_gnu_ld_interface=yes
+	    ;;
+	esac
+	;;
+      *)
+	lt_use_gnu_ld_interface=yes
+	;;
+    esac
+  fi
+
+  if test yes = "$lt_use_gnu_ld_interface"; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='$wl'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+    export_dynamic_flag_spec='$wl--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+    else
+      whole_archive_flag_spec=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test ia64 != "$host_cpu"; then
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='$wl--export-all-symbols'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file, use it as
+	# is; otherwise, prepend EXPORTS...
+	archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+          cp $export_symbols $output_objdir/$soname.def;
+        else
+          echo EXPORTS > $output_objdir/$soname.def;
+          cat $export_symbols >> $output_objdir/$soname.def;
+        fi~
+        $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+      export_dynamic_flag_spec='$wl-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test linux-dietlibc = "$host_os"; then
+	case $cc_basename in
+	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
+	esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+	 && test no = "$tmp_diet"
+      then
+	tmp_addflag=' $pic_flag'
+	tmp_sharedflag='-shared'
+	case $cc_basename,$host_cpu in
+        pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95* | pgfortran*)
+					# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	lf95*)				# Lahey Fortran 8.1
+	  whole_archive_flag_spec=
+	  tmp_sharedflag='--shared' ;;
+        nagfor*)                        # NAGFOR 5.3
+          tmp_sharedflag='-Wl,-shared' ;;
+	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+	  tmp_sharedflag='-qmkshrobj'
+	  tmp_addflag= ;;
+	nvcc*)	# Cuda Compiler Driver 2.2
+	  whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  compiler_needs_object=yes
+	  ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	  compiler_needs_object=yes
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	esac
+	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+        if test yes = "$supports_anon_versioning"; then
+          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+            cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+            echo "local: *; };" >> $output_objdir/$libname.ver~
+            $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+        fi
+
+	case $cc_basename in
+	tcc*)
+	  export_dynamic_flag_spec='-rdynamic'
+	  ;;
+	xlf* | bgf* | bgxlf* | mpixlf*)
+	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+	  hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+	  if test yes = "$supports_anon_versioning"; then
+	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+              cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+              echo "local: *; };" >> $output_objdir/$libname.ver~
+              $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+	  fi
+	  ;;
+	esac
+      else
+        ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  # For security reasons, it is highly recommended that you always
+	  # use absolute paths for naming shared libraries, and exclude the
+	  # DT_RUNPATH tag from executables and libraries.  But doing so
+	  # requires that you compile everything twice, which is a pain.
+	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	  else
+	    ld_shlibs=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test no = "$ld_shlibs"; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix[4-9]*)
+      if test ia64 = "$host_cpu"; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to GNU nm, but means don't demangle to AIX nm.
+	# Without the "-l" option, or with the "-B" option, AIX nm treats
+	# weak defined symbols like other global defined symbols, whereas
+	# GNU nm marks them as "W".
+	# While the 'weak' keyword is ignored in the Export File, we need
+	# it in the Import File for the 'aix-soname' feature, so we have
+	# to replace the "-B" option with "-P" for AIX nm.
+	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# have runtime linking enabled, and use it for executables.
+	# For shared libraries, we enable/disable runtime linking
+	# depending on the kind of the shared library created -
+	# when "with_aix_soname,aix_use_runtimelinking" is:
+	# "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "aix,yes"  lib.so          shared, rtl:yes, for executables
+	#            lib.a           static archive
+	# "both,no"  lib.so.V(shr.o) shared, rtl:yes
+	#            lib.a(lib.so.V) shared, rtl:no,  for executables
+	# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a(lib.so.V) shared, rtl:no
+	# "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+	#            lib.a           static archive
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	  for ld_flag in $LDFLAGS; do
+	  if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+	    aix_use_runtimelinking=yes
+	    break
+	  fi
+	  done
+	  if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	    # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	    # so we don't have lib.a shared libs to link our executables.
+	    # We have to force runtime linking in this case.
+	    aix_use_runtimelinking=yes
+	    LDFLAGS="$LDFLAGS -Wl,-brtl"
+	  fi
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_direct_absolute=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      file_list_spec='$wl-f,'
+      case $with_aix_soname,$aix_use_runtimelinking in
+      aix,*) ;; # traditional, no import file
+      svr4,* | *,yes) # use import file
+	# The Import File defines what to hardcode.
+	hardcode_direct=no
+	hardcode_direct_absolute=no
+	;;
+      esac
+
+      if test yes = "$GCC"; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`$CC -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	  # We have reworked collect2
+	  :
+	  else
+	  # We have old collect2
+	  hardcode_direct=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L=yes
+	  hardcode_libdir_flag_spec='-L$libdir'
+	  hardcode_libdir_separator=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test yes = "$aix_use_runtimelinking"; then
+	  shared_flag="$shared_flag "'$wl-G'
+	fi
+	# Need to ensure runtime linking is disabled for the traditional
+	# shared library, or the linker may eventually find shared libraries
+	# /with/ Import File - we do not want to mix them.
+	shared_flag_aix='-shared'
+	shared_flag_svr4='-shared $wl-G'
+      else
+	# not using gcc
+	if test ia64 = "$host_cpu"; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag='$wl-G'
+	  else
+	    shared_flag='$wl-bM:SRE'
+	  fi
+	  shared_flag_aix='$wl-bM:SRE'
+	  shared_flag_svr4='$wl-G'
+	fi
+      fi
+
+      export_dynamic_flag_spec='$wl-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        if test set = "${lt_cv_aix_libpath+set}"; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=/usr/lib:/lib
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
+
+        hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+      else
+	if test ia64 = "$host_cpu"; then
+	  hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an
+	 # empty executable.
+	 if test set = "${lt_cv_aix_libpath+set}"; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=/usr/lib:/lib
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
+
+	 hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' $wl-bernotok'
+	  allow_undefined_flag=' $wl-berok'
+	  if test yes = "$with_gnu_ld"; then
+	    # We only use this code for GNU lds that support --whole-archive.
+	    whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+	  else
+	    # Exported symbols can be pulled into shared objects from archives
+	    whole_archive_flag_spec='$convenience'
+	  fi
+	  archive_cmds_need_lc=yes
+	  archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	  # -brtl affects multiple linker settings, -berok does not and is overridden later
+	  compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+	  if test svr4 != "$with_aix_soname"; then
+	    # This is similar to how AIX traditionally builds its shared libraries.
+	    archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	  fi
+	  if test aix != "$with_aix_soname"; then
+	    archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) >  [...]
+	  else
+	    # used by -dlpreopen to get the symbols
+	    archive_expsym_cmds="$archive_expsym_cmds"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	  fi
+	  archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      case $cc_basename in
+      cl*)
+	# Native MSVC
+	hardcode_libdir_flag_spec=' '
+	allow_undefined_flag=unsupported
+	always_export_symbols=yes
+	file_list_spec='@'
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=.dll
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+            cp "$export_symbols" "$output_objdir/$soname.def";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+          fi~
+          $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+          linknames='
+	# The linker will not automatically build a static lib if we build a DLL.
+	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+	enable_shared_with_static_runtimes=yes
+	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+	# Don't use ranlib
+	old_postinstall_cmds='chmod 644 $oldlib'
+	postlink_cmds='lt_outputfile="@OUTPUT@"~
+          lt_tool_outputfile="@TOOL_OUTPUT@"~
+          case $lt_outputfile in
+            *.exe|*.EXE) ;;
+            *)
+              lt_outputfile=$lt_outputfile.exe
+              lt_tool_outputfile=$lt_tool_outputfile.exe
+              ;;
+          esac~
+          if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+            $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+            $RM "$lt_outputfile.manifest";
+          fi'
+	;;
+      *)
+	# Assume MSVC wrapper
+	hardcode_libdir_flag_spec=' '
+	allow_undefined_flag=unsupported
+	# Tell ltmain to make .lib files, not .a files.
+	libext=lib
+	# Tell ltmain to make .dll files, not .so files.
+	shrext_cmds=.dll
+	# FIXME: Setting linknames here is a bad hack.
+	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	# The linker will automatically build a .lib file if we build a DLL.
+	old_archive_from_new_cmds='true'
+	# FIXME: Should let the user specify the lib program.
+	old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+	enable_shared_with_static_runtimes=yes
+	;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+
+
+  archive_cmds_need_lc=no
+  hardcode_direct=no
+  hardcode_automatic=yes
+  hardcode_shlibpath_var=unsupported
+  if test yes = "$lt_cv_ld_force_load"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec=''
+  fi
+  link_all_deplibs=yes
+  allow_undefined_flag=$_lt_dar_allow_undefined
+  case $cc_basename in
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test yes = "$_lt_dar_can_shared"; then
+    output_verbose_link_cmd=func_echo_all
+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+  else
+  ld_shlibs=no
+  fi
+
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test yes = "$GCC"; then
+	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='$wl-E'
+      ;;
+
+    hpux10*)
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test no = "$with_gnu_ld"; then
+	hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+	hardcode_libdir_separator=:
+	hardcode_direct=yes
+	hardcode_direct_absolute=yes
+	export_dynamic_flag_spec='$wl-E'
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test yes,no = "$GCC,$with_gnu_ld"; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+
+	  # Older versions of the 11.00 compiler do not understand -b yet
+	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS=$LDFLAGS
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+    archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+	  ;;
+	esac
+      fi
+      if test no = "$with_gnu_ld"; then
+	hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+	hardcode_libdir_separator=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	*)
+	  hardcode_direct=yes
+	  hardcode_direct_absolute=yes
+	  export_dynamic_flag_spec='$wl-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test yes = "$GCC"; then
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	# Try to use the -exported_symbol ld option, if it does not
+	# work, assume that -exports_file does not work either and
+	# implicitly export all symbols.
+	# This should be the same for all languages, so no per-tag cache variable.
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS=$LDFLAGS
+	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+           LDFLAGS=$save_LDFLAGS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+	if test yes = "$lt_cv_irix_exported_symbol"; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+	fi
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+      hardcode_libdir_separator=:
+      inherit_rpath=yes
+      link_all_deplibs=yes
+      ;;
+
+    linux*)
+      case $cc_basename in
+      tcc*)
+	# Fabrice Bellard et al's Tiny C Compiler
+	ld_shlibs=yes
+	archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      esac
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd* | bitrig*)
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct=yes
+	hardcode_shlibpath_var=no
+	hardcode_direct_absolute=yes
+	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+	  export_dynamic_flag_spec='$wl-E'
+	else
+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+	fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      shrext_cmds=.dll
+      archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	$ECHO EXPORTS >> $output_objdir/$libname.def~
+	prefix_cmds="$SED"~
+	if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	  prefix_cmds="$prefix_cmds -e 1d";
+	fi~
+	prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	emximp -o $lib $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    osf3*)
+      if test yes = "$GCC"; then
+	allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+	archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test yes = "$GCC"; then
+	allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+	archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_separator=:
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z defs'
+      if test yes = "$GCC"; then
+	wlarc='$wl'
+	archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+	case `$CC -V 2>&1` in
+	*"Compilers 5.0"*)
+	  wlarc=''
+	  archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  ;;
+	*)
+	  wlarc='$wl'
+	  archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  ;;
+	esac
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands '-z linker_flag'.  GCC discards it without '$wl',
+	# but is careful enough not to reorder.
+	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test yes = "$GCC"; then
+	  whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test sequent = "$host_vendor"; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag='$wl-z,text'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+
+      if test yes = "$GCC"; then
+	archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We CANNOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='$wl-z,text'
+      allow_undefined_flag='$wl-z,nodefs'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='$wl-R,$libdir'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='$wl-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test yes = "$GCC"; then
+	archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+
+    if test sni = "$host_vendor"; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+	export_dynamic_flag_spec='$wl-Blargedynsym'
+	;;
+      esac
+    fi
+  fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test yes,yes = "$GCC,$enable_shared"; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl
+	  pic_flag=$lt_prog_compiler_pic
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag
+	  allow_undefined_flag=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	  then
+	    lt_cv_archive_cmds_need_lc=no
+	  else
+	    lt_cv_archive_cmds_need_lc=yes
+	  fi
+	  allow_undefined_flag=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+  case $host_os in
+    darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+    *) lt_awk_arg='/^libraries:/' ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+    *) lt_sed_strip_eq='s|=/|/|g' ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary...
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  # ...but if some path component already ends with the multilib dir we assume
+  # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+  case "$lt_multi_os_dir; $lt_search_path_spec " in
+  "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+    lt_multi_os_dir=
+    ;;
+  esac
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+    elif test -n "$lt_multi_os_dir"; then
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+  lt_foo = "";
+  lt_count = 0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo = "/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[lt_foo]++; }
+  if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='$libname$release$shared_ext$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test ia64 = "$host_cpu"; then
+    # AIX 5 supports IA64
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a(lib.so.V)'
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='$libname$shared_ext'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec=$LIB
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[23].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+    fi
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[3-9]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test yes = "$lt_cv_prog_gnu_ld"; then
+		version_type=linux # correct to gnu/linux during the next big refactor
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  hardcode_libdir_flag_spec='-L$libdir'
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+  lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd* | bitrig*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec=/usr/lib
+  need_lib_prefix=no
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
+  else
+    need_version=yes
+  fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+os2*)
+  libname_spec='$name'
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test yes = "$with_gnu_ld"; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec; then
+    version_type=linux # correct to gnu/linux during the next big refactor
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=sco
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test yes = "$with_gnu_ld"; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+   test -n "$runpath_var" ||
+   test yes = "$hardcode_automatic"; then
+
+  # We can hardcode non-existent directories.
+  if test no != "$hardcode_direct" &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+     test no != "$hardcode_minus_L"; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+   test yes = "$inherit_rpath"; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+
+
+
+
+  if test yes != "$enable_dlopen"; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen=load_add_on
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen=LoadLibrary
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+    # if libdl is installed we need to link against it
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+
+    lt_cv_dlopen=dyld
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+    ;;
+
+  tpf*)
+    # Don't try to run any link tests for TPF.  We know it's impossible
+    # because TPF is a cross-compiler, and we know how we open DSOs.
+    lt_cv_dlopen=dlopen
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=no
+    ;;
+
+  *)
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+  lt_cv_dlopen=shl_load
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_shl_load=yes
+else
+  ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+  lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+  lt_cv_dlopen=dlopen
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_svld_dlopen=yes
+else
+  ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+  lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_dld_link=yes
+else
+  ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+  lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test no = "$lt_cv_dlopen"; then
+    enable_dlopen=no
+  else
+    enable_dlopen=yes
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS=$CPPFLAGS
+    test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS=$LDFLAGS
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS=$LIBS
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  	  if test yes = "$cross_compiling"; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+    if test yes = "$lt_cv_dlopen_self"; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  	  if test yes = "$cross_compiling"; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+	}
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+    fi
+
+    CPPFLAGS=$save_CPPFLAGS
+    LDFLAGS=$save_LDFLAGS
+    LIBS=$save_LIBS
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP"; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    fi
+    ;;
+  *)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+  # Report what library types will actually be built
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+  test no = "$can_build_shared" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test yes = "$enable_shared" && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[4-9]*)
+    if test ia64 != "$host_cpu"; then
+      case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+      yes,aix,yes) ;;			# shared object as lib.so file only
+      yes,svr4,*) ;;			# shared object as lib.so archive member only
+      yes,*) enable_static=no ;;	# shared object in lib.a archive as well
+      esac
+    fi
+    ;;
+  esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+  # Make sure either enable_shared or enable_static is yes.
+  test yes = "$enable_shared" || enable_static=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+      if test -n "$CXX" && ( test no != "$CXX" &&
+    ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+    (test g++ != "$CXX"))); then
+  ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+  if ${ac_cv_prog_CXXCPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+else
+  _lt_caught_CXX_error=yes
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+compiler_needs_object_CXX=no
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_direct_absolute_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+inherit_rpath_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+reload_flag_CXX=$reload_flag
+reload_cmds_CXX=$reload_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_caught_CXX_error"; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+  # save warnings/boilerplate of simple test code
+  ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+  ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
+  compiler=$CC
+  compiler_CXX=$CC
+  func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test yes = "$GXX"; then
+      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+    else
+      lt_prog_compiler_no_builtin_flag_CXX=
+    fi
+
+    if test yes = "$GXX"; then
+      # Set up default GNU C++ configuration
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+  withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return, which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD=$ac_prog
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test yes = "$with_gnu_ld"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS=$lt_save_ifs
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD=$ac_dir/$ac_prog
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test no != "$with_gnu_ld" && break
+	;;
+      *)
+	test yes != "$with_gnu_ld" && break
+	;;
+      esac
+    fi
+  done
+  IFS=$lt_save_ifs
+else
+  lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test yes = "$with_gnu_ld"; then
+        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+
+        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
+        export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='$wl'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+	  $GREP 'no-whole-archive' > /dev/null; then
+          whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+        else
+          whole_archive_flag_spec_CXX=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+    ld_shlibs_CXX=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+        ;;
+      aix[4-9]*)
+        if test ia64 = "$host_cpu"; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # have runtime linking enabled, and use it for executables.
+          # For shared libraries, we enable/disable runtime linking
+          # depending on the kind of the shared library created -
+          # when "with_aix_soname,aix_use_runtimelinking" is:
+          # "aix,no"   lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "aix,yes"  lib.so          shared, rtl:yes, for executables
+          #            lib.a           static archive
+          # "both,no"  lib.so.V(shr.o) shared, rtl:yes
+          #            lib.a(lib.so.V) shared, rtl:no,  for executables
+          # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a(lib.so.V) shared, rtl:no
+          # "svr4,*"   lib.so.V(shr.o) shared, rtl:yes, for executables
+          #            lib.a           static archive
+          case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	    for ld_flag in $LDFLAGS; do
+	      case $ld_flag in
+	      *-brtl*)
+	        aix_use_runtimelinking=yes
+	        break
+	        ;;
+	      esac
+	    done
+	    if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+	      # With aix-soname=svr4, we create the lib.so.V shared archives only,
+	      # so we don't have lib.a shared libs to link our executables.
+	      # We have to force runtime linking in this case.
+	      aix_use_runtimelinking=yes
+	      LDFLAGS="$LDFLAGS -Wl,-brtl"
+	    fi
+	    ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        archive_cmds_CXX=''
+        hardcode_direct_CXX=yes
+        hardcode_direct_absolute_CXX=yes
+        hardcode_libdir_separator_CXX=':'
+        link_all_deplibs_CXX=yes
+        file_list_spec_CXX='$wl-f,'
+        case $with_aix_soname,$aix_use_runtimelinking in
+        aix,*) ;;	# no import file
+        svr4,* | *,yes) # use import file
+          # The Import File defines what to hardcode.
+          hardcode_direct_CXX=no
+          hardcode_direct_absolute_CXX=no
+          ;;
+        esac
+
+        if test yes = "$GXX"; then
+          case $host_os in aix4.[012]|aix4.[012].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+	  collect2name=`$CC -print-prog-name=collect2`
+	  if test -f "$collect2name" &&
+	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+	  then
+	    # We have reworked collect2
+	    :
+	  else
+	    # We have old collect2
+	    hardcode_direct_CXX=unsupported
+	    # It fails to find uninstalled libraries when the uninstalled
+	    # path is not listed in the libpath.  Setting hardcode_minus_L
+	    # to unsupported forces relinking
+	    hardcode_minus_L_CXX=yes
+	    hardcode_libdir_flag_spec_CXX='-L$libdir'
+	    hardcode_libdir_separator_CXX=
+	  fi
+          esac
+          shared_flag='-shared'
+	  if test yes = "$aix_use_runtimelinking"; then
+	    shared_flag=$shared_flag' $wl-G'
+	  fi
+	  # Need to ensure runtime linking is disabled for the traditional
+	  # shared library, or the linker may eventually find shared libraries
+	  # /with/ Import File - we do not want to mix them.
+	  shared_flag_aix='-shared'
+	  shared_flag_svr4='-shared $wl-G'
+        else
+          # not using gcc
+          if test ia64 = "$host_cpu"; then
+	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	  # chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+          else
+	    if test yes = "$aix_use_runtimelinking"; then
+	      shared_flag='$wl-G'
+	    else
+	      shared_flag='$wl-bM:SRE'
+	    fi
+	    shared_flag_aix='$wl-bM:SRE'
+	    shared_flag_svr4='$wl-G'
+          fi
+        fi
+
+        export_dynamic_flag_spec_CXX='$wl-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+	# export.
+        always_export_symbols_CXX=yes
+	if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          # The "-G" linker flag allows undefined symbols.
+          no_undefined_flag_CXX='-bernotok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          if test set = "${lt_cv_aix_libpath+set}"; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath__CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=/usr/lib:/lib
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__CXX
+fi
+
+          hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
+
+          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+        else
+          if test ia64 = "$host_cpu"; then
+	    hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib'
+	    allow_undefined_flag_CXX="-z nodefs"
+	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+          else
+	    # Determine the default libpath from the value encoded in an
+	    # empty executable.
+	    if test set = "${lt_cv_aix_libpath+set}"; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath__CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+	  /^0/ {
+	      s/^0  *\([^ ]*\) *$/\1/
+	      p
+	  }
+      }'
+  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath__CXX"; then
+    lt_cv_aix_libpath__CXX=/usr/lib:/lib
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath__CXX
+fi
+
+	    hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"
+	    # Warning - without using the other run time loading flags,
+	    # -berok will link without error, but may produce a broken library.
+	    no_undefined_flag_CXX=' $wl-bernotok'
+	    allow_undefined_flag_CXX=' $wl-berok'
+	    if test yes = "$with_gnu_ld"; then
+	      # We only use this code for GNU lds that support --whole-archive.
+	      whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
+	    else
+	      # Exported symbols can be pulled into shared objects from archives
+	      whole_archive_flag_spec_CXX='$convenience'
+	    fi
+	    archive_cmds_need_lc_CXX=yes
+	    archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+	    # -brtl affects multiple linker settings, -berok does not and is overridden later
+	    compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+	    if test svr4 != "$with_aix_soname"; then
+	      # This is similar to how AIX traditionally builds its shared
+	      # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+	    fi
+	    if test aix != "$with_aix_soname"; then
+	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_sy [...]
+	    else
+	      # used by -dlpreopen to get the symbols
+	      archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV  $output_objdir/$realname.d/$soname $output_objdir'
+	    fi
+	    archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d'
+          fi
+        fi
+        ;;
+
+      beos*)
+	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+	  allow_undefined_flag_CXX=unsupported
+	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	  # support --undefined.  This deserves some investigation.  FIXME
+	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	else
+	  ld_shlibs_CXX=no
+	fi
+	;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	  ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+	case $GXX,$cc_basename in
+	,cl* | no,cl*)
+	  # Native MSVC
+	  # hardcode_libdir_flag_spec is actually meaningless, as there is
+	  # no search path for DLLs.
+	  hardcode_libdir_flag_spec_CXX=' '
+	  allow_undefined_flag_CXX=unsupported
+	  always_export_symbols_CXX=yes
+	  file_list_spec_CXX='@'
+	  # Tell ltmain to make .lib files, not .a files.
+	  libext=lib
+	  # Tell ltmain to make .dll files, not .so files.
+	  shrext_cmds=.dll
+	  # FIXME: Setting linknames here is a bad hack.
+	  archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	  archive_expsym_cmds_CXX='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+              cp "$export_symbols" "$output_objdir/$soname.def";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            else
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+            fi~
+            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+            linknames='
+	  # The linker will not automatically build a static lib if we build a DLL.
+	  # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
+	  enable_shared_with_static_runtimes_CXX=yes
+	  # Don't use ranlib
+	  old_postinstall_cmds_CXX='chmod 644 $oldlib'
+	  postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
+            lt_tool_outputfile="@TOOL_OUTPUT@"~
+            case $lt_outputfile in
+              *.exe|*.EXE) ;;
+              *)
+                lt_outputfile=$lt_outputfile.exe
+                lt_tool_outputfile=$lt_tool_outputfile.exe
+                ;;
+            esac~
+            func_to_tool_file "$lt_outputfile"~
+            if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+              $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+              $RM "$lt_outputfile.manifest";
+            fi'
+	  ;;
+	*)
+	  # g++
+	  # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+	  # as there is no search path for DLLs.
+	  hardcode_libdir_flag_spec_CXX='-L$libdir'
+	  export_dynamic_flag_spec_CXX='$wl--export-all-symbols'
+	  allow_undefined_flag_CXX=unsupported
+	  always_export_symbols_CXX=no
+	  enable_shared_with_static_runtimes_CXX=yes
+
+	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	    # If the export-symbols file already is a .def file, use it as
+	    # is; otherwise, prepend EXPORTS...
+	    archive_expsym_cmds_CXX='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
+              cp $export_symbols $output_objdir/$soname.def;
+            else
+              echo EXPORTS > $output_objdir/$soname.def;
+              cat $export_symbols >> $output_objdir/$soname.def;
+            fi~
+            $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	  else
+	    ld_shlibs_CXX=no
+	  fi
+	  ;;
+	esac
+	;;
+      darwin* | rhapsody*)
+
+
+  archive_cmds_need_lc_CXX=no
+  hardcode_direct_CXX=no
+  hardcode_automatic_CXX=yes
+  hardcode_shlibpath_var_CXX=unsupported
+  if test yes = "$lt_cv_ld_force_load"; then
+    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec_CXX=''
+  fi
+  link_all_deplibs_CXX=yes
+  allow_undefined_flag_CXX=$_lt_dar_allow_undefined
+  case $cc_basename in
+     ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test yes = "$_lt_dar_can_shared"; then
+    output_verbose_link_cmd=func_echo_all
+    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+    archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+    module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+       if test yes != "$lt_cv_apple_cc_single_mod"; then
+      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+      archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+    fi
+
+  else
+  ld_shlibs_CXX=no
+  fi
+
+	;;
+
+      os2*)
+	hardcode_libdir_flag_spec_CXX='-L$libdir'
+	hardcode_minus_L_CXX=yes
+	allow_undefined_flag_CXX=unsupported
+	shrext_cmds=.dll
+	archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+	  $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+	  $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+	  $ECHO EXPORTS >> $output_objdir/$libname.def~
+	  prefix_cmds="$SED"~
+	  if test EXPORTS = "`$SED 1q $export_symbols`"; then
+	    prefix_cmds="$prefix_cmds -e 1d";
+	  fi~
+	  prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+	  cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+	  $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+	  emximp -o $lib $output_objdir/$libname.def'
+	old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+	enable_shared_with_static_runtimes_CXX=yes
+	;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+          ghcx*)
+	    # Green Hills C++ Compiler
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+        esac
+        ;;
+
+      freebsd2.*)
+        # C++ shared libraries reported to be fairly broken before
+	# switch to ELF
+        ld_shlibs_CXX=no
+        ;;
+
+      freebsd-elf*)
+        archive_cmds_need_lc_CXX=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        ld_shlibs_CXX=yes
+        ;;
+
+      haiku*)
+        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+        link_all_deplibs_CXX=yes
+        ;;
+
+      hpux9*)
+        hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
+        hardcode_libdir_separator_CXX=:
+        export_dynamic_flag_spec_CXX='$wl-E'
+        hardcode_direct_CXX=yes
+        hardcode_minus_L_CXX=yes # Not in the search PATH,
+				             # but as the default
+				             # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            ld_shlibs_CXX=no
+            ;;
+          aCC*)
+            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            ;;
+          *)
+            if test yes = "$GXX"; then
+              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              ld_shlibs_CXX=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test no = "$with_gnu_ld"; then
+	  hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+	      export_dynamic_flag_spec_CXX='$wl-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            hardcode_direct_CXX=no
+            hardcode_shlibpath_var_CXX=no
+            ;;
+          *)
+            hardcode_direct_CXX=yes
+            hardcode_direct_absolute_CXX=yes
+            hardcode_minus_L_CXX=yes # Not in the search PATH,
+					         # but as the default
+					         # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+          aCC*)
+	    case $host_cpu in
+	      hppa*64*)
+	        archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      ia64*)
+	        archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	      *)
+	        archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	        ;;
+	    esac
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+          *)
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        case $host_cpu in
+	          hppa*64*)
+	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          ia64*)
+	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	          *)
+	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	            ;;
+	        esac
+	      fi
+	    else
+	      # FIXME: insert proper C++ library support
+	      ld_shlibs_CXX=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      interix[3-9]*)
+	hardcode_direct_CXX=no
+	hardcode_shlibpath_var_CXX=no
+	hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	export_dynamic_flag_spec_CXX='$wl-E'
+	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+	# Instead, shared libraries are loaded at an image base (0x10000000 by
+	# default) and relocated if they conflict, which is a slow very memory
+	# consuming and fragmenting process.  To avoid this, we pick a random,
+	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+	;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+	    # SGI C++
+	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    if test yes = "$GXX"; then
+	      if test no = "$with_gnu_ld"; then
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+	      else
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
+	      fi
+	    fi
+	    link_all_deplibs_CXX=yes
+	    ;;
+        esac
+        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
+        hardcode_libdir_separator_CXX=:
+        inherit_rpath_CXX=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	    old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+	    ;;
+	  icpc* | ecpc* )
+	    # Intel C++
+	    with_gnu_ld=yes
+	    # version 8.0 and above of icpc choke on multiply defined symbols
+	    # if we add $predep_objects and $postdep_objects, however 7.1 and
+	    # earlier do not add the objects themselves.
+	    case `$CC -V 2>&1` in
+	      *"Version 7."*)
+	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	      *)  # Version 8.0 or newer
+	        tmp_idyn=
+	        case $host_cpu in
+		  ia64*) tmp_idyn=' -i_dynamic';;
+		esac
+	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+		;;
+	    esac
+	    archive_cmds_need_lc_CXX=no
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+	    whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'
+	    ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+	    case `$CC -V` in
+	    *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
+	      prelink_cmds_CXX='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+	      old_archive_cmds_CXX='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+                $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+                $RANLIB $oldlib'
+	      archive_cmds_CXX='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+                rm -rf $tpldir~
+                $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+                $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	      ;;
+	    *) # Version 6 and above use weak symbols
+	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+	      ;;
+	    esac
+
+	    hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+	    whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+            ;;
+	  cxx*)
+	    # Compaq C++
+	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname  -o $lib $wl-retain-symbols-file $wl$export_symbols'
+
+	    runpath_var=LD_RUN_PATH
+	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	    hardcode_libdir_separator_CXX=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+	    ;;
+	  xl* | mpixl* | bgxl*)
+	    # IBM XL 8.0 on PPC, with GNU ld
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
+	    export_dynamic_flag_spec_CXX='$wl--export-dynamic'
+	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	    if test yes = "$supports_anon_versioning"; then
+	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
+                cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+                echo "local: *; };" >> $output_objdir/$libname.ver~
+                $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+	    fi
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      no_undefined_flag_CXX=' -zdefs'
+	      archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
+	      hardcode_libdir_flag_spec_CXX='-R$libdir'
+	      whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+	      compiler_needs_object_CXX=yes
+
+	      # Not sure whether something based on
+	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	      # would be better.
+	      output_verbose_link_cmd='func_echo_all'
+
+	      # Archives containing C++ object files must be created using
+	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	      # necessary to make sure instantiated templates are included
+	      # in the archive.
+	      old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+	;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+	  *)
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+	esac
+	;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+	  archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+	  wlarc=
+	  hardcode_libdir_flag_spec_CXX='-R$libdir'
+	  hardcode_direct_CXX=yes
+	  hardcode_shlibpath_var_CXX=no
+	fi
+	# Workaround some broken pre-1.5 toolchains
+	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+	;;
+
+      *nto* | *qnx*)
+        ld_shlibs_CXX=yes
+	;;
+
+      openbsd* | bitrig*)
+	if test -f /usr/libexec/ld.so; then
+	  hardcode_direct_CXX=yes
+	  hardcode_shlibpath_var_CXX=no
+	  hardcode_direct_absolute_CXX=yes
+	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+	  hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+	    export_dynamic_flag_spec_CXX='$wl-E'
+	    whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+	  fi
+	  output_verbose_link_cmd=func_echo_all
+	else
+	  ld_shlibs_CXX=no
+	fi
+	;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+	    # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	    # KCC will only create a shared library if the output file
+	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
+	    # to its proper name (with version) after linking.
+	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	    hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'
+	    hardcode_libdir_separator_CXX=:
+
+	    # Archives containing C++ object files must be created using
+	    # the KAI C++ compiler.
+	    case $host in
+	      osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
+	      *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
+	    esac
+	    ;;
+          RCC*)
+	    # Rational C++ 2.4.1
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+          cxx*)
+	    case $host in
+	      osf3*)
+	        allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
+	        archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
+		;;
+	      *)
+	        allow_undefined_flag_CXX=' -expect_unresolved \*'
+	        archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+                  echo "-hidden">> $lib.exp~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.exp'
+	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+		;;
+	    esac
+
+	    hardcode_libdir_separator_CXX=:
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    #
+	    # There doesn't appear to be a way to prevent this compiler from
+	    # explicitly linking system object files so we need to strip them
+	    # from the output so that they don't get included in the library
+	    # dependencies.
+	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+	    ;;
+	  *)
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'
+	      case $host in
+	        osf3*)
+	          archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+		  ;;
+	        *)
+	          archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+		  ;;
+	      esac
+
+	      hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'
+	      hardcode_libdir_separator_CXX=:
+
+	      # Commands to make compiler produce verbose output that lists
+	      # what "hidden" libraries, object files and flags are used when
+	      # linking a shared library.
+	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+	    else
+	      # FIXME: insert proper C++ library support
+	      ld_shlibs_CXX=no
+	    fi
+	    ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+	    # Sun C++ 4.x
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+          lcc*)
+	    # Lucid
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+            archive_cmds_need_lc_CXX=yes
+	    no_undefined_flag_CXX=' -zdefs'
+	    archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	    hardcode_libdir_flag_spec_CXX='-R$libdir'
+	    hardcode_shlibpath_var_CXX=no
+	    case $host_os in
+	      solaris2.[0-5] | solaris2.[0-5].*) ;;
+	      *)
+		# The compiler driver will combine and reorder linker options,
+		# but understands '-z linker_flag'.
+	        # Supported since Solaris 2.6 (maybe 2.5.1?)
+		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+	        ;;
+	    esac
+	    link_all_deplibs_CXX=yes
+
+	    output_verbose_link_cmd='func_echo_all'
+
+	    # Archives containing C++ object files must be created using
+	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	    # necessary to make sure instantiated templates are included
+	    # in the archive.
+	    old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	    ;;
+          gcx*)
+	    # Green Hills C++ Compiler
+	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+
+	    # The C++ compiler must be used to create the archive.
+	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	    ;;
+          *)
+	    # GNU C++ compiler with Solaris linker
+	    if test yes,no = "$GXX,$with_gnu_ld"; then
+	      no_undefined_flag_CXX=' $wl-z ${wl}defs'
+	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                  $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      else
+	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
+	        # platform.
+	        archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                  $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+	        # Commands to make compiler produce verbose output that lists
+	        # what "hidden" libraries, object files and flags are used when
+	        # linking a shared library.
+	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+	      fi
+
+	      hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'
+	      case $host_os in
+		solaris2.[0-5] | solaris2.[0-5].*) ;;
+		*)
+		  whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+		  ;;
+	      esac
+	    fi
+	    ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag_CXX='$wl-z,text'
+      archive_cmds_need_lc_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+	  archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+	# Note: We CANNOT use -z defs as we might desire, because we do not
+	# link with -lc, and that would cause any symbols used from libc to
+	# always be unresolved, which means just about no library would
+	# ever link correctly.  If we're not using GNU ld we use -z text
+	# though, which does catch some bad symbols but isn't as heavy-handed
+	# as -z defs.
+	no_undefined_flag_CXX='$wl-z,text'
+	allow_undefined_flag_CXX='$wl-z,nodefs'
+	archive_cmds_need_lc_CXX=no
+	hardcode_shlibpath_var_CXX=no
+	hardcode_libdir_flag_spec_CXX='$wl-R,$libdir'
+	hardcode_libdir_separator_CXX=':'
+	link_all_deplibs_CXX=yes
+	export_dynamic_flag_spec_CXX='$wl-Bexport'
+	runpath_var='LD_RUN_PATH'
+
+	case $cc_basename in
+          CC*)
+	    archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
+              '"$old_archive_cmds_CXX"
+	    reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
+              '"$reload_cmds_CXX"
+	    ;;
+	  *)
+	    archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	    ;;
+	esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+	    # NonStop-UX NCC 3.20
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+          *)
+	    # FIXME: insert proper C++ library support
+	    ld_shlibs_CXX=no
+	    ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+        ;;
+    esac
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+    test no = "$ld_shlibs_CXX" && can_build_shared=no
+
+    GCC_CXX=$GXX
+    LD_CXX=$LD
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    # Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case $prev$p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test x-L = "$p" ||
+          test x-R = "$p"; then
+	 prev=$p
+	 continue
+       fi
+
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
+       if test no = "$pre_test_object_deps_done"; then
+	 case $prev in
+	 -L | -R)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$compiler_lib_search_path_CXX"; then
+	     compiler_lib_search_path_CXX=$prev$p
+	   else
+	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$postdeps_CXX"; then
+	   postdeps_CXX=$prev$p
+	 else
+	   postdeps_CXX="${postdeps_CXX} $prev$p"
+	 fi
+       fi
+       prev=
+       ;;
+
+    *.lto.$objext) ;; # Ignore GCC LTO objects
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test no = "$pre_test_object_deps_done"; then
+	 if test -z "$predep_objects_CXX"; then
+	   predep_objects_CXX=$p
+	 else
+	   predep_objects_CXX="$predep_objects_CXX $p"
+	 fi
+       else
+	 if test -z "$postdep_objects_CXX"; then
+	   postdep_objects_CXX=$p
+	 else
+	   postdep_objects_CXX="$postdep_objects_CXX $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  predep_objects_CXX=
+  postdep_objects_CXX=
+  postdeps_CXX=
+  ;;
+esac
+
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+ compiler_lib_search_dirs_CXX=
+if test -n "${compiler_lib_search_path_CXX}"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+
+  # C++ specific cases for pic, static, wl, etc.
+  if test yes = "$GXX"; then
+    lt_prog_compiler_wl_CXX='-Wl,'
+    lt_prog_compiler_static_CXX='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test ia64 = "$host_cpu"; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_CXX='-Bstatic'
+      fi
+      lt_prog_compiler_pic_CXX='-fPIC'
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            lt_prog_compiler_pic_CXX='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the '-m68020' flag to GCC prevents building anything better,
+            # like '-m68040'.
+            lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+      case $host_os in
+      os2*)
+	lt_prog_compiler_static_CXX='$wl-static'
+	;;
+      esac
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_CXX='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      lt_prog_compiler_pic_CXX=
+      ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static_CXX=
+      ;;
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_CXX=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+	;;
+      *)
+	lt_prog_compiler_pic_CXX='-fPIC'
+	;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic_CXX='-fPIC -shared'
+      ;;
+    *)
+      lt_prog_compiler_pic_CXX='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[4-9]*)
+	# All AIX code is PIC.
+	if test ia64 = "$host_cpu"; then
+	  # AIX 5 now supports IA64 processor
+	  lt_prog_compiler_static_CXX='-Bstatic'
+	else
+	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+	# This hack is so that the source file can tell whether it is being
+	# built for inclusion in a dll (and should export symbols for example).
+	lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
+	    if test ia64 != "$host_cpu"; then
+	      lt_prog_compiler_pic_CXX='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='$wl-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      lt_prog_compiler_pic_CXX='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  ecpc* )
+	    # old Intel C++ for x86_64, which still supported -KPIC.
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  icpc* )
+	    # Intel C++, used to be incompatible with GCC.
+	    # ICC 10 doesn't accept -KPIC any more.
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-fpic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
+	    # IBM XL 8.0, 9.0 on PPC and BlueGene
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-qpic'
+	    lt_prog_compiler_static_CXX='-qstaticlink'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      lt_prog_compiler_pic_CXX='-KPIC'
+	      lt_prog_compiler_static_CXX='-Bstatic'
+	      lt_prog_compiler_wl_CXX='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    lt_prog_compiler_pic_CXX='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        lt_prog_compiler_pic_CXX='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC* | sunCC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    lt_prog_compiler_wl_CXX='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    lt_prog_compiler_pic_CXX='-pic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	lt_prog_compiler_can_build_shared_CXX=no
+	;;
+    esac
+  fi
+
+case $host_os in
+  # For platforms that do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_CXX=
+    ;;
+  *)
+    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+    ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_works_CXX=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"  ## exclude from sc_useless_quotes_in_assignment
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works_CXX=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then
+    case $lt_prog_compiler_pic_CXX in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+     esac
+else
+    lt_prog_compiler_pic_CXX=
+     lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_static_works_CXX=no
+   save_LDFLAGS=$LDFLAGS
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works_CXX=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works_CXX=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS=$save_LDFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then
+    :
+else
+    lt_prog_compiler_static_CXX=
+fi
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o_CXX=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_CXX=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o_CXX=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_CXX=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then
+  # do not overwrite the value of need_locks provided by the user
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+  if test no = "$hard_links"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  case $host_os in
+  aix[4-9]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+    # Without the "-l" option, or with the "-B" option, AIX nm treats
+    # weak defined symbols like other global defined symbols, whereas
+    # GNU nm marks them as "W".
+    # While the 'weak' keyword is ignored in the Export File, we need
+    # it in the Import File for the 'aix-soname' feature, so we have
+    # to replace the "-B" option with "-P" for AIX nm.
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+    else
+      export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    export_symbols_cmds_CXX=$ltdll_cmds
+    ;;
+  cygwin* | mingw* | cegcc*)
+    case $cc_basename in
+    cl*)
+      exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+      ;;
+    esac
+    ;;
+  *)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+    ;;
+  esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test no = "$ld_shlibs_CXX" && can_build_shared=no
+
+with_gnu_ld_CXX=$with_gnu_ld
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_CXX=yes
+
+  if test yes,yes = "$GCC,$enable_shared"; then
+    case $archive_cmds_CXX in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
+	  soname=conftest
+	  lib=conftest
+	  libobjs=conftest.$ac_objext
+	  deplibs=
+	  wl=$lt_prog_compiler_wl_CXX
+	  pic_flag=$lt_prog_compiler_pic_CXX
+	  compiler_flags=-v
+	  linker_flags=-v
+	  verstring=
+	  output_objdir=.
+	  libname=conftest
+	  lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+	  allow_undefined_flag_CXX=
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+  (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+	  then
+	    lt_cv_archive_cmds_need_lc_CXX=no
+	  else
+	    lt_cv_archive_cmds_need_lc_CXX=yes
+	  fi
+	  allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+	else
+	  cat conftest.err 1>&5
+	fi
+	$RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
+      archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='$libname$release$shared_ext$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test ia64 = "$host_cpu"; then
+    # AIX 5 supports IA64
+    library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line '#! .'.  This would cause the generated library to
+    # depend on '.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # Using Import Files as archive members, it is possible to support
+    # filename-based versioning of shared library archives on AIX. While
+    # this would work for both with and without runtime linking, it will
+    # prevent static linking of such archives. So we do filename-based
+    # shared library versioning with .so extension only, which is used
+    # when both runtime linking and shared linking is enabled.
+    # Unfortunately, runtime linking may impact performance, so we do
+    # not want this to be the default eventually. Also, we use the
+    # versioned .so libs for executables only if there is the -brtl
+    # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+    # To allow for filename-based versioning support, we need to create
+    # libNAME.so.V as an archive file, containing:
+    # *) an Import File, referring to the versioned filename of the
+    #    archive as well as the shared archive member, telling the
+    #    bitwidth (32 or 64) of that shared object, and providing the
+    #    list of exported symbols of that shared object, eventually
+    #    decorated with the 'weak' keyword
+    # *) the shared object with the F_LOADONLY flag set, to really avoid
+    #    it being seen by the linker.
+    # At run time we better use the real file rather than another symlink,
+    # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+    case $with_aix_soname,$aix_use_runtimelinking in
+    # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    aix,yes) # traditional libtool
+      dynamic_linker='AIX unversionable lib.so'
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      ;;
+    aix,no) # traditional AIX only
+      dynamic_linker='AIX lib.a(lib.so.V)'
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      ;;
+    svr4,*) # full svr4 only
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,yes) # both, prefer svr4
+      dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+      library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+      # unpreferred sharedlib libNAME.a needs extra handling
+      postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+      postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+      # We do not specify a path in Import Files, so LIBPATH fires.
+      shlibpath_overrides_runpath=yes
+      ;;
+    *,no) # both, prefer aix
+      dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+      library_names_spec='$libname$release.a $libname.a'
+      soname_spec='$libname$release$shared_ext$major'
+      # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+      postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+      postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+      ;;
+    esac
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='$libname$shared_ext'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+    library_names_spec='$libname.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec=$LIB
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \$file`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$major$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[23].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+      soname_spec='$libname$release$shared_ext$major'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    if test 32 = "$HPUX_IA64_MODE"; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+      sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+    fi
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[3-9]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test yes = "$lt_cv_prog_gnu_ld"; then
+		version_type=linux # correct to gnu/linux during the next big refactor
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+  sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+linux*android*)
+  version_type=none # Android doesn't support versioned libraries.
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext'
+  soname_spec='$libname$release$shared_ext'
+  finish_cmds=
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  dynamic_linker='Android linker'
+  # Don't embed -rpath directories since the linker doesn't support them.
+  hardcode_libdir_flag_spec_CXX='-L$libdir'
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+  lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Ideally, we could use ldconfig to report *all* directores which are
+  # searched for libraries, however this is still not possible.  Aside from not
+  # being certain /sbin/ldconfig is available, command
+  # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+  # even though it is searched at run-time.  Try to do the best guess by
+  # appending ld.so.conf contents (and includes) to the search path.
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+    soname_spec='$libname$release$shared_ext$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd* | bitrig*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec=/usr/lib
+  need_lib_prefix=no
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+    need_version=no
+  else
+    need_version=yes
+  fi
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+os2*)
+  libname_spec='$name'
+  version_type=windows
+  shrext_cmds=.dll
+  need_version=no
+  need_lib_prefix=no
+  # OS/2 can only load a DLL with a base name of 8 characters or less.
+  soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+    v=$($ECHO $release$versuffix | tr -d .-);
+    n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+    $ECHO $n$v`$shared_ext'
+  library_names_spec='${libname}_dll.$libext'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=BEGINLIBPATH
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  postinstall_cmds='base_file=`basename \$file`~
+    dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+    dldir=$destdir/`dirname \$dlpath`~
+    test -d \$dldir || mkdir -p \$dldir~
+    $install_prog $dir/$dlname \$dldir/$dlname~
+    chmod a+x \$dldir/$dlname~
+    if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+      eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+    fi'
+  postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+    dlpath=$dir/\$dldll~
+    $RM \$dlpath'
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='$libname$release$shared_ext$major'
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test yes = "$with_gnu_ld"; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec; then
+    version_type=linux # correct to gnu/linux during the next big refactor
+    library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+    soname_spec='$libname$shared_ext.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=sco
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test yes = "$with_gnu_ld"; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+  sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+  sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" ||
+   test -n "$runpath_var_CXX" ||
+   test yes = "$hardcode_automatic_CXX"; then
+
+  # We can hardcode non-existent directories.
+  if test no != "$hardcode_direct_CXX" &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" &&
+     test no != "$hardcode_minus_L_CXX"; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_CXX=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_CXX=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_CXX=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
+
+if test relink = "$hardcode_action_CXX" ||
+   test yes = "$inherit_rpath_CXX"; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+     test no = "$enable_shared"; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+
+
+
+
+
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test yes != "$_lt_caught_CXX_error"
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+# Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+  enableval=$enable_debug; CXXFLAGS="-g -Wall"; CFLAGS="-g -Wall"
+fi
+
+
+# Check whether --enable-profile was given.
+if test "${enable_profile+set}" = set; then :
+  enableval=$enable_profile; CXXFLAGS="-pg -g -Wall"; CFLAGS="-pg -g -Wall"; LDFLAGS="-pg"
+fi
+
+
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLLINT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $XMLLINT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_XMLLINT" && ac_cv_path_XMLLINT="no"
+  ;;
+esac
+fi
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x$ac_cv_path_XMLLINT = x
+then
+  as_fn_error $? "You don't have xmllint installed." "$LINENO" 5
+fi
+if test x$ac_cv_path_XMLLINT = xno
+then
+  as_fn_error $? "You don't have xmllint installed." "$LINENO" 5
+fi
+
+  # Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XSLTPROC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $XSLTPROC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="no"
+  ;;
+esac
+fi
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  if test x$ac_cv_path_XSLTPROC = x
+  then
+    as_fn_error $? "You don't have xsltproc installed." "$LINENO" 5
+  fi
+  if test x$ac_cv_path_XSLTPROC = xno
+  then
+    as_fn_error $? "You don't have xsltproc installed." "$LINENO" 5
+  fi
+
+# Extract the first word of "bash", so it can be a program name with args.
+set dummy bash; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BASH+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $BASH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_BASH" && ac_cv_path_BASH="no"
+  ;;
+esac
+fi
+BASH=$ac_cv_path_BASH
+if test -n "$BASH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5
+$as_echo "$BASH" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x$ac_cv_path_BASH = x
+then
+  as_fn_error $? "You don't have bash installed." "$LINENO" 5
+fi
+if test x$ac_cv_path_BASH = xno
+then
+  as_fn_error $? "You don't have bash installed." "$LINENO" 5
+fi
+
+# Extract the first word of "flex", so it can be a program name with args.
+set dummy flex; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_FLEX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $FLEX in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_FLEX="$FLEX" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_FLEX="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_FLEX" && ac_cv_path_FLEX="no"
+  ;;
+esac
+fi
+FLEX=$ac_cv_path_FLEX
+if test -n "$FLEX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLEX" >&5
+$as_echo "$FLEX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x$ac_cv_path_FLEX = x
+then
+  as_fn_error $? "You don't have flex installed." "$LINENO" 5
+fi
+if test x$ac_cv_path_FLEX = xno
+then
+  as_fn_error $? "You don't have flex installed." "$LINENO" 5
+fi
+
+# Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test x$ac_cv_path_PKG_CONFIG = x
+then
+  as_fn_error $? "You don't have pkg-config installed." "$LINENO" 5
+fi
+if test x$ac_cv_path_PKG_CONFIG = xno
+then
+  as_fn_error $? "You don't have pkg-config installed." "$LINENO" 5
+fi
+
+for ac_func in strcasecmp
+do :
+  ac_fn_cxx_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
+if test "x$ac_cv_func_strcasecmp" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRCASECMP 1
+_ACEOF
+
+fi
+done
+
+
+if test x$(uname) != xDarwin;
+then
+
+ac_fn_cxx_check_header_mongrel "$LINENO" "pcreposix.h" "ac_cv_header_pcreposix_h" "$ac_includes_default"
+if test "x$ac_cv_header_pcreposix_h" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcre_fullinfo in -lpcre" >&5
+$as_echo_n "checking for pcre_fullinfo in -lpcre... " >&6; }
+if ${ac_cv_lib_pcre_pcre_fullinfo+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpcre  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pcre_fullinfo ();
+int
+main ()
+{
+return pcre_fullinfo ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_pcre_pcre_fullinfo=yes
+else
+  ac_cv_lib_pcre_pcre_fullinfo=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcre_pcre_fullinfo" >&5
+$as_echo "$ac_cv_lib_pcre_pcre_fullinfo" >&6; }
+if test "x$ac_cv_lib_pcre_pcre_fullinfo" = xyes; then :
+
+    LIBS="$LIBS -lpcreposix -lpcre"
+    no_comp_check=yes
+else
+  as_fn_error $? "*** unable to locate pcre library ***" "$LINENO" 5
+fi
+
+else
+  as_fn_error $? "*** unable to locate pcreposix.h include file ***" "$LINENO" 5
+fi
+
+
+
+ac_fn_cxx_check_header_mongrel "$LINENO" "pcrecpp.h" "ac_cv_header_pcrecpp_h" "$ac_includes_default"
+if test "x$ac_cv_header_pcrecpp_h" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcre_compile in -lpcrecpp" >&5
+$as_echo_n "checking for pcre_compile in -lpcrecpp... " >&6; }
+if ${ac_cv_lib_pcrecpp_pcre_compile+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpcrecpp  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pcre_compile ();
+int
+main ()
+{
+return pcre_compile ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_pcrecpp_pcre_compile=yes
+else
+  ac_cv_lib_pcrecpp_pcre_compile=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pcrecpp_pcre_compile" >&5
+$as_echo "$ac_cv_lib_pcrecpp_pcre_compile" >&6; }
+if test "x$ac_cv_lib_pcrecpp_pcre_compile" = xyes; then :
+
+  LIBS="$LIBS -lpcrecpp"
+  no_comp_check=yes
+else
+  as_fn_error $? "*** unable to locate pcrecpp library ***" "$LINENO" 5
+fi
+
+else
+  as_fn_error $? "*** unable to locate pcrecpp.h include file ***" "$LINENO" 5
+fi
+
+
+fi
+
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	else
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+		PKG_CONFIG=""
+	fi
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for APERTIUM" >&5
+$as_echo_n "checking for APERTIUM... " >&6; }
+
+if test -n "$APERTIUM_CFLAGS"; then
+    pkg_cv_APERTIUM_CFLAGS="$APERTIUM_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_APERTIUM_CFLAGS=`$PKG_CONFIG --cflags "
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$APERTIUM_LIBS"; then
+    pkg_cv_APERTIUM_LIBS="$APERTIUM_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_APERTIUM_LIBS=`$PKG_CONFIG --libs "
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        APERTIUM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4" 2>&1`
+        else
+	        APERTIUM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$APERTIUM_PKG_ERRORS" >&5
+
+	as_fn_error $? "Package requirements (
+  lttoolbox >= 3.3.1
+  libxml-2.0 >= 2.6.17
+  libpcre >= 6.4) were not met:
+
+$APERTIUM_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables APERTIUM_CFLAGS
+and APERTIUM_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables APERTIUM_CFLAGS
+and APERTIUM_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+	APERTIUM_CFLAGS=$pkg_cv_APERTIUM_CFLAGS
+	APERTIUM_LIBS=$pkg_cv_APERTIUM_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	CPPFLAGS="$CPPFLAGS $APERTIUM_CFLAGS"; LIBS="$LIBS $APERTIUM_LIBS"
+fi
+
+# Check for wide strings
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports wide strings" >&5
+$as_echo_n "checking whether the compiler supports wide strings... " >&6; }
+if ${ac_cv_cxx_wstring+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+   ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string>
+int
+main ()
+{
+
+std::wstring test = L"test";
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_cxx_wstring=yes
+else
+  ac_cv_cxx_wstring=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_wstring" >&5
+$as_echo "$ac_cv_cxx_wstring" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+		#include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+if test "$ac_cv_cxx_wstring" = no
+then
+  as_fn_error $? "Missing wide string support" "$LINENO" 5
+fi
+
+
+# Checks for header files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+for ac_header in stdlib.h string.h unistd.h stddef.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+if ${ac_cv_header_stdbool_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+             #include <stdbool.h>
+             #ifndef bool
+              "error: bool is not defined"
+             #endif
+             #ifndef false
+              "error: false is not defined"
+             #endif
+             #if false
+              "error: false is not 0"
+             #endif
+             #ifndef true
+              "error: true is not defined"
+             #endif
+             #if true != 1
+              "error: true is not 1"
+             #endif
+             #ifndef __bool_true_false_are_defined
+              "error: __bool_true_false_are_defined is not defined"
+             #endif
+
+             struct s { _Bool s: 1; _Bool t; } s;
+
+             char a[true == 1 ? 1 : -1];
+             char b[false == 0 ? 1 : -1];
+             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+             char d[(bool) 0.5 == true ? 1 : -1];
+             /* See body of main program for 'e'.  */
+             char f[(_Bool) 0.0 == false ? 1 : -1];
+             char g[true];
+             char h[sizeof (_Bool)];
+             char i[sizeof s.t];
+             enum { j = false, k = true, l = false * true, m = true * 256 };
+             /* The following fails for
+                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+             _Bool n[m];
+             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+             /* Catch a bug in an HP-UX C compiler.  See
+                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+              */
+             _Bool q = true;
+             _Bool *pq = &q;
+
+int
+main ()
+{
+
+             bool e = &s;
+             *pq |= q;
+             *pq |= ! q;
+             /* Refer to every declared value, to avoid compiler optimizations.  */
+             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+                     + !m + !n + !o + !p + !q + !pq);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_header_stdbool_h=yes
+else
+  ac_cv_header_stdbool_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+$as_echo "$ac_cv_header_stdbool_h" >&6; }
+   ac_fn_cxx_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
+
+
+fi
+
+
+if test $ac_cv_header_stdbool_h = yes; then
+
+$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if ${ac_cv_c_const+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this sort of thing.  */
+  typedef int charset[2];
+  const charset cs = { 0, 0 };
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *pcpcc;
+  char **ppc;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  pcpcc = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++pcpcc;
+  ppc = (char**) pcpcc;
+  pcpcc = (char const *const *) ppc;
+  { /* SCO 3.2v4 cc rejects this sort of thing.  */
+    char tx;
+    char *t = &tx;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+    *t++ = 0;
+    if (s) return 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+    struct s { int j; const int *ap[3]; } bx;
+    struct s *b = &bx; b->j = 5;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+    if (!foo) return 0;
+  }
+  return !cs[0] && !zero.x;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_c_const=yes
+else
+  ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
+ac_fn_cxx_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+
+# Checks for library functions.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+$as_echo_n "checking for error_at_line... " >&6; }
+if ${ac_cv_lib_error_at_line+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <error.h>
+int
+main ()
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_error_at_line=yes
+else
+  ac_cv_lib_error_at_line=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
+$as_echo "$ac_cv_lib_error_at_line" >&6; }
+if test $ac_cv_lib_error_at_line = no; then
+  case " $LIBOBJS " in
+  *" error.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS error.$ac_objext"
+ ;;
+esac
+
+fi
+
+
+ac_fn_cxx_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fread_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fgetc_unlocked" "ac_cv_have_decl_fgetc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgetc_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputc_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputs_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "getopt_long" "ac_cv_have_decl_getopt_long" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getopt_long" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETOPT_LONG $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fgetwc_unlocked" "ac_cv_have_decl_fgetwc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgetwc_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETWC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fputwc_unlocked" "ac_cv_have_decl_fputwc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputwc_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTWC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fgetws_unlocked" "ac_cv_have_decl_fgetws_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgetws_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETWS_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_cxx_check_decl "$LINENO" "fputws_unlocked" "ac_cv_have_decl_fputws_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputws_unlocked" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTWS_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+for ac_func in setlocale strdup getopt_long snprintf
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+ if test x$version_type = xwindows; then
+  WINDOWS_TRUE=
+  WINDOWS_FALSE='#'
+else
+  WINDOWS_TRUE='#'
+  WINDOWS_FALSE=
+fi
+
+if test x$version_type = xwindows; then :
+  $as_echo "#define HAVE_GETOPT_LONG 0" >>confdefs.h
+
+fi
+
+ac_config_files="$ac_config_files Makefile apertium.pc apertium/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+
+if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then
+  as_fn_error $? "conditional \"WINDOWS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by apertium $as_me 3.4.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <sortiz at users.sourceforge.net>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+apertium config.status 3.4.0
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
+predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
+postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
+reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
+reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib \
+compiler_lib_search_dirs \
+predep_objects \
+postdep_objects \
+predeps \
+postdeps \
+compiler_lib_search_path \
+LD_CXX \
+reload_flag_CXX \
+compiler_CXX \
+lt_prog_compiler_no_builtin_flag_CXX \
+lt_prog_compiler_pic_CXX \
+lt_prog_compiler_wl_CXX \
+lt_prog_compiler_static_CXX \
+lt_cv_prog_compiler_c_o_CXX \
+export_dynamic_flag_spec_CXX \
+whole_archive_flag_spec_CXX \
+compiler_needs_object_CXX \
+with_gnu_ld_CXX \
+allow_undefined_flag_CXX \
+no_undefined_flag_CXX \
+hardcode_libdir_flag_spec_CXX \
+hardcode_libdir_separator_CXX \
+exclude_expsyms_CXX \
+include_expsyms_CXX \
+file_list_spec_CXX \
+compiler_lib_search_dirs_CXX \
+predep_objects_CXX \
+postdep_objects_CXX \
+predeps_CXX \
+postdeps_CXX \
+compiler_lib_search_path_CXX; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path \
+reload_cmds_CXX \
+old_archive_cmds_CXX \
+old_archive_from_new_cmds_CXX \
+old_archive_from_expsyms_cmds_CXX \
+archive_cmds_CXX \
+archive_expsym_cmds_CXX \
+module_cmds_CXX \
+module_expsym_cmds_CXX \
+export_symbols_cmds_CXX \
+prelink_cmds_CXX \
+postlink_cmds_CXX; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+   setopt NO_GLOB_SUBST
+fi
+
+
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    RM='$RM'
+    ofile='$ofile'
+
+
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "apertium/apertium_config.h") CONFIG_HEADERS="$CONFIG_HEADERS apertium/apertium_config.h" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "apertium.pc") CONFIG_FILES="$CONFIG_FILES apertium.pc" ;;
+    "apertium/Makefile") CONFIG_FILES="$CONFIG_FILES apertium/Makefile" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$_am_arg" : 'X\(//\)[^/]' \| \
+	 X"$_am_arg" : 'X\(//\)$' \| \
+	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$mf" : 'X\(//\)[^/]' \| \
+	 X"$mf" : 'X\(//\)$' \| \
+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$file" : 'X\(//\)[^/]' \| \
+	 X"$file" : 'X\(//\)$' \| \
+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+ ;;
+    "libtool":C)
+
+    # See if we are running on zsh, and set the options that allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}"; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile=${ofile}T
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags='CXX '
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects
+postdep_objects=$lt_postdep_objects
+predeps=$lt_predeps
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+    cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+   mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+
+    cat <<_LT_EOF >> "$ofile"
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag_CXX
+reload_cmds=$lt_reload_cmds_CXX
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds_CXX
+
+# A language specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object_CXX
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld_CXX
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute_CXX
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath_CXX
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds_CXX
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds_CXX
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec_CXX
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_CXX
+postdep_objects=$lt_postdep_objects_CXX
+predeps=$lt_predeps_CXX
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# ### END LIBTOOL TAG CONFIG: CXX
+_LT_EOF
+
+ ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/configure.ac b/configure.ac
index edc205f..a72a662 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,12 +3,12 @@
 
 AC_PREREQ(2.52)
 
-m4_define([required_lttoolbox_version], [3.3.0])
+m4_define([required_lttoolbox_version], [3.3.1])
 m4_define([required_libxml_version], [2.6.17])
 m4_define([required_libpcre_version], [6.4])
 #m4_define([required_pkg_config_version], [0.15])
 
-AC_INIT([apertium], [3.3.0], [sortiz at users.sourceforge.net])
+AC_INIT([apertium], [3.4.0], [sortiz at users.sourceforge.net])
 AC_CONFIG_HEADER([apertium/apertium_config.h])
 
 AC_CANONICAL_SYSTEM
@@ -17,7 +17,7 @@ GENERIC_LIBRARY_NAME=apertium
 
 # Release versioning
 GENERIC_MAJOR_VERSION=3
-GENERIC_MINOR_VERSION=3
+GENERIC_MINOR_VERSION=4
 GENERIC_MICRO_VERSION=0
 
 # API version (often = GENERIC_MAJOR_VERSION.GENERIC_MINOR_VERSION)
@@ -76,7 +76,7 @@ then
   CXXFLAGS="$CXXFLAGS -Wall -ansi -fomit-frame-pointer"
 else
   if test x$MinGW = xyes
-  then 
+  then
     AC_MSG_RESULT([MinGW])
     CFLAGS="$CFLAGS -Wall -march=i686 -O3 -DMINGW -fomit-frame-pointer \
 	        -funroll-loops -I/include -L/lib"
@@ -85,7 +85,7 @@ else
     CPPFLAGS="$CPPFLAGS -I/include"
   else
     if test x$Cygwin = xyes
-    then 
+    then
       AC_MSG_RESULT([Cygwin])
       CFLAGS="$CFLAGS -Wall -march=i686 -O3 -fomit-frame-pointer \
            -funroll-loops"
@@ -112,7 +112,7 @@ else
           CXXFLAGS="-Wall -ansi -O3 $CXXFLAGS"
         fi
       fi
-    fi    
+    fi
   fi
 fi
 
@@ -122,7 +122,7 @@ AM_SANITY_CHECK
 AC_LANG_CPLUSPLUS
 
 AC_ARG_ENABLE(debug,
-              [  --enable-debug    Enable "-g -Wall" compiler options], 
+              [  --enable-debug    Enable "-g -Wall" compiler options],
               [CXXFLAGS="-g -Wall"; CFLAGS="-g -Wall"])
 
 AC_ARG_ENABLE(profile,
@@ -138,7 +138,7 @@ if test x$ac_cv_path_XMLLINT = xno
 then
   AC_MSG_ERROR([You don't have xmllint installed.])
 fi
- 
+
   AC_PATH_PROG(XSLTPROC, xsltproc, no)
   if test x$ac_cv_path_XSLTPROC = x
   then
@@ -182,7 +182,7 @@ fi
 AC_CHECK_FUNCS(strcasecmp)
 
 if test x$(uname) != xDarwin;
-then 
+then
 AC_CHECK_HEADER(pcreposix.h,
   AC_CHECK_LIB(pcre, pcre_fullinfo,[
     LIBS="$LIBS -lpcreposix -lpcre"
@@ -195,13 +195,13 @@ AC_CHECK_HEADER(pcrecpp.h,
   LIBS="$LIBS -lpcrecpp"
   no_comp_check=yes],
   AC_MSG_ERROR([*** unable to locate pcrecpp library ***])),
-  AC_MSG_ERROR([*** unable to locate pcrecpp.h include file ***])) 
+  AC_MSG_ERROR([*** unable to locate pcrecpp.h include file ***]))
 fi
 
 
 PKG_CHECK_MODULES(APERTIUM, [
   lttoolbox >= required_lttoolbox_version
-  libxml-2.0 >= required_libxml_version 
+  libxml-2.0 >= required_libxml_version
   libpcre >= required_libpcre_version], CPPFLAGS="$CPPFLAGS $APERTIUM_CFLAGS"; LIBS="$LIBS $APERTIUM_LIBS")
 
 # Check for wide strings
@@ -221,12 +221,12 @@ std::wstring test = L"test";
 AC_CXX_WSTRING
 AC_C_BIGENDIAN
 
-if test "$ac_cv_cxx_wstring" = no 
+if test "$ac_cv_cxx_wstring" = no
 then
   AC_MSG_ERROR([Missing wide string support])
 fi
 
-  
+
 # Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS([stdlib.h string.h unistd.h stddef.h])
@@ -238,11 +238,12 @@ AC_TYPE_SIZE_T
 
 # Checks for library functions.
 AC_FUNC_ERROR_AT_LINE
-#AC_FUNC_MALLOC
-#AC_FUNC_REALLOC
 
 AC_CHECK_DECLS([fread_unlocked, fwrite_unlocked, fgetc_unlocked, fputc_unlocked, fputs_unlocked, getopt_long, fgetwc_unlocked, fputwc_unlocked, fgetws_unlocked, fputws_unlocked])
 
 AC_CHECK_FUNCS([setlocale strdup getopt_long snprintf])
 
+AM_CONDITIONAL([WINDOWS], [test x$version_type = xwindows])
+AS_IF([test x$version_type = xwindows], [AC_DEFINE(HAVE_GETOPT_LONG,0)], [])
+
 AC_OUTPUT([Makefile apertium.pc apertium/Makefile])
diff --git a/depcomp b/depcomp
new file mode 100755
index 0000000..fc98710
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,791 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2013-05-30.07; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
+
+case $1 in
+  '')
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputting dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='	'
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'.  On the theory
+## that the space means something, we add a space to the output as
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like '#:fec' to the end of the
+    # dependency line.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
+    echo >> "$depfile"
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  set_dir_from "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using '\' :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  set_dir_from  "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
+    sed -ne '2,${
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
+
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/'"$tab"'/
+  G
+  p
+}' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for ':'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  "$@" $dashmflag |
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no eat=no
+  for arg
+  do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+        set fnord "$@"
+        shift
+        shift
+        ;;
+    *)
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
+    esac
+  done
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..0b0fdcb
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,501 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2013-12-25.23; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+tab='	'
+nl='
+'
+IFS=" $tab$nl"
+
+# Set DOITPROG to "echo" to test this script.
+
+doit=${DOITPROG-}
+doit_exec=${doit:-exec}
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+is_target_a_directory=possibly
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+        shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
+
+    -o) chowncmd="$chownprog $2"
+        shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
+
+    -T) is_target_a_directory=never;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --) shift
+        break;;
+
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call 'install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+        u_plus_rw=
+      else
+        u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+        u_plus_rw=
+      else
+        u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names problematic for 'test' and other utilities.
+  case $src in
+    -* | [=\(\)!]) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+    dst=$dst_arg
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      dstdir=`dirname "$dst"`
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            if (umask $mkdir_umask &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+            then
+              if test -z "$dir_arg" || {
+                   # Check for POSIX incompatibilities with -m.
+                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                   # other-writable bit of parent directory when it shouldn't.
+                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                   case $ls_ld_tmpdir in
+                     d????-?r-*) different_mode=700;;
+                     d????-?--*) different_mode=755;;
+                     *) false;;
+                   esac &&
+                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/d" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
+      esac
+
+      oIFS=$IFS
+      IFS=/
+      set -f
+      set fnord $dstdir
+      shift
+      set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+        test X"$d" = X && continue
+
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       set +f &&
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
+
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/ltmain.sh b/ltmain.sh
new file mode 100644
index 0000000..0f0a2da
--- /dev/null
+++ b/ltmain.sh
@@ -0,0 +1,11147 @@
+#! /bin/sh
+## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
+##               by inline-source v2014-01-03.01
+
+# libtool (GNU libtool) 2.4.6
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+PROGRAM=libtool
+PACKAGE=libtool
+VERSION=2.4.6
+package_revision=2.4.6
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Run './libtool --help' for help with using this script from the
+# command line.
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# After configure completes, it has a better idea of some of the
+# shell tools we need than the defaults used by the functions shared
+# with bootstrap, so set those here where they can still be over-
+# ridden by the user, but otherwise take precedence.
+
+: ${AUTOCONF="autoconf"}
+: ${AUTOMAKE="automake"}
+
+
+## -------------------------- ##
+## Source external libraries. ##
+## -------------------------- ##
+
+# Much of our low-level functionality needs to be sourced from external
+# libraries, which are installed to $pkgauxdir.
+
+# Set a version string for this script.
+scriptversion=2015-01-20.17; # UTC
+
+# General shell script boiler plate, and helper functions.
+# Written by Gary V. Vaughan, 2004
+
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# As a special exception to the GNU General Public License, if you distribute
+# this file as part of a program or library that is built using GNU Libtool,
+# you may include this file under the same distribution terms that you use
+# for the rest of that program.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary at gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Evaluate this file near the top of your script to gain access to
+# the functions and variables defined here:
+#
+#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
+#
+# If you need to override any of the default environment variable
+# settings, do that before evaluating this file.
+
+
+## -------------------- ##
+## Shell normalisation. ##
+## -------------------- ##
+
+# Some shells need a little help to be as Bourne compatible as possible.
+# Before doing anything else, make sure all that help has been provided!
+
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
+fi
+
+# NLS nuisances: We save the old values in case they are required later.
+_G_user_locale=
+_G_safe_locale=
+for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test set = \"\${$_G_var+set}\"; then
+          save_$_G_var=\$$_G_var
+          $_G_var=C
+	  export $_G_var
+	  _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
+	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
+	fi"
+done
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Make sure IFS has a sensible default
+sp=' '
+nl='
+'
+IFS="$sp	$nl"
+
+# There are apparently some retarded systems that use ';' as a PATH separator!
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+
+## ------------------------- ##
+## Locate command utilities. ##
+## ------------------------- ##
+
+
+# func_executable_p FILE
+# ----------------------
+# Check that FILE is an executable regular file.
+func_executable_p ()
+{
+    test -f "$1" && test -x "$1"
+}
+
+
+# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
+# --------------------------------------------
+# Search for either a program that responds to --version with output
+# containing "GNU", or else returned by CHECK_FUNC otherwise, by
+# trying all the directories in PATH with each of the elements of
+# PROGS_LIST.
+#
+# CHECK_FUNC should accept the path to a candidate program, and
+# set $func_check_prog_result if it truncates its output less than
+# $_G_path_prog_max characters.
+func_path_progs ()
+{
+    _G_progs_list=$1
+    _G_check_func=$2
+    _G_PATH=${3-"$PATH"}
+
+    _G_path_prog_max=0
+    _G_path_prog_found=false
+    _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
+    for _G_dir in $_G_PATH; do
+      IFS=$_G_save_IFS
+      test -z "$_G_dir" && _G_dir=.
+      for _G_prog_name in $_G_progs_list; do
+        for _exeext in '' .EXE; do
+          _G_path_prog=$_G_dir/$_G_prog_name$_exeext
+          func_executable_p "$_G_path_prog" || continue
+          case `"$_G_path_prog" --version 2>&1` in
+            *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
+            *)     $_G_check_func $_G_path_prog
+		   func_path_progs_result=$func_check_prog_result
+		   ;;
+          esac
+          $_G_path_prog_found && break 3
+        done
+      done
+    done
+    IFS=$_G_save_IFS
+    test -z "$func_path_progs_result" && {
+      echo "no acceptable sed could be found in \$PATH" >&2
+      exit 1
+    }
+}
+
+
+# We want to be able to use the functions in this file before configure
+# has figured out where the best binaries are kept, which means we have
+# to search for them ourselves - except when the results are already set
+# where we skip the searches.
+
+# Unless the user overrides by setting SED, search the path for either GNU
+# sed, or the sed that truncates its output the least.
+test -z "$SED" && {
+  _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+  for _G_i in 1 2 3 4 5 6 7; do
+    _G_sed_script=$_G_sed_script$nl$_G_sed_script
+  done
+  echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
+  _G_sed_script=
+
+  func_check_prog_sed ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo '' >> conftest.nl
+      "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
+  rm -f conftest.sed
+  SED=$func_path_progs_result
+}
+
+
+# Unless the user overrides by setting GREP, search the path for either GNU
+# grep, or the grep that truncates its output the least.
+test -z "$GREP" && {
+  func_check_prog_grep ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    _G_path_prog_max=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo 'GREP' >> conftest.nl
+      "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
+  GREP=$func_path_progs_result
+}
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# All uppercase variable names are used for environment variables.  These
+# variables can be overridden by the user before calling a script that
+# uses them if a suitable command of that name is not already available
+# in the command search PATH.
+
+: ${CP="cp -f"}
+: ${ECHO="printf %s\n"}
+: ${EGREP="$GREP -E"}
+: ${FGREP="$GREP -F"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+
+
+## -------------------- ##
+## Useful sed snippets. ##
+## -------------------- ##
+
+sed_dirname='s|/[^/]*$||'
+sed_basename='s|^.*/||'
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
+
+# Same as above, but do not quote variable references.
+sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
+
+# Sed substitution that converts a w32 file name or path
+# that contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-'\' parameter expansions in output of sed_double_quote_subst that
+# were '\'-ed in input to the same.  If an odd number of '\' preceded a
+# '$' in input to sed_double_quote_subst, that '$' was protected from
+# expansion.  Since each input '\' is now two '\'s, look for any number
+# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
+_G_bs='\\'
+_G_bs2='\\\\'
+_G_bs4='\\\\\\\\'
+_G_dollar='\$'
+sed_double_backslash="\
+  s/$_G_bs4/&\\
+/g
+  s/^$_G_bs2$_G_dollar/$_G_bs&/
+  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
+  s/\n//g"
+
+
+## ----------------- ##
+## Global variables. ##
+## ----------------- ##
+
+# Except for the global variables explicitly listed below, the following
+# functions in the '^func_' namespace, and the '^require_' namespace
+# variables initialised in the 'Resource management' section, sourcing
+# this file will not pollute your global namespace with anything
+# else. There's no portable way to scope variables in Bourne shell
+# though, so actually running these functions will sometimes place
+# results into a variable named after the function, and often use
+# temporary variables in the '^_G_' namespace. If you are careful to
+# avoid using those namespaces casually in your sourcing script, things
+# should continue to work as you expect. And, of course, you can freely
+# overwrite any of the functions or variables defined here before
+# calling anything to customize them.
+
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+
+# Allow overriding, eg assuming that you follow the convention of
+# putting '$debug_cmd' at the start of all your functions, you can get
+# bash to show function call trace with:
+#
+#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+debug_cmd=${debug_cmd-":"}
+exit_cmd=:
+
+# By convention, finish your script with:
+#
+#    exit $exit_status
+#
+# so that you can set exit_status to non-zero if you want to indicate
+# something went wrong during execution without actually bailing out at
+# the point of failure.
+exit_status=$EXIT_SUCCESS
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath=$0
+
+# The name of this program.
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
+
+# Make sure we have an absolute progpath for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
+     progdir=`cd "$progdir" && pwd`
+     progpath=$progdir/$progname
+     ;;
+  *)
+     _G_IFS=$IFS
+     IFS=${PATH_SEPARATOR-:}
+     for progdir in $PATH; do
+       IFS=$_G_IFS
+       test -x "$progdir/$progname" && break
+     done
+     IFS=$_G_IFS
+     test -n "$progdir" || progdir=`pwd`
+     progpath=$progdir/$progname
+     ;;
+esac
+
+
+## ----------------- ##
+## Standard options. ##
+## ----------------- ##
+
+# The following options affect the operation of the functions defined
+# below, and should be set appropriately depending on run-time para-
+# meters passed on the command line.
+
+opt_dry_run=false
+opt_quiet=false
+opt_verbose=false
+
+# Categories 'all' and 'none' are always available.  Append any others
+# you will pass as the first argument to func_warning from your own
+# code.
+warning_categories=
+
+# By default, display warnings according to 'opt_warning_types'.  Set
+# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
+# treat the next displayed warning as a fatal error.
+warning_func=func_warn_and_continue
+
+# Set to 'all' to display all warnings, 'none' to suppress all
+# warnings, or a space delimited list of some subset of
+# 'warning_categories' to display only the listed warnings.
+opt_warning_types=all
+
+
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
+
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Call them using their associated
+# 'require_*' variable to ensure that they are executed, at most, once.
+#
+# It's entirely deliberate that calling these functions can set
+# variables that don't obey the namespace limitations obeyed by the rest
+# of this file, in order that that they be as useful as possible to
+# callers.
+
+
+# require_term_colors
+# -------------------
+# Allow display of bold text on terminals that support it.
+require_term_colors=func_require_term_colors
+func_require_term_colors ()
+{
+    $debug_cmd
+
+    test -t 1 && {
+      # COLORTERM and USE_ANSI_COLORS environment variables take
+      # precedence, because most terminfo databases neglect to describe
+      # whether color sequences are supported.
+      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
+
+      if test 1 = "$USE_ANSI_COLORS"; then
+        # Standard ANSI escape sequences
+        tc_reset=''
+        tc_bold='';   tc_standout=''
+        tc_red='';   tc_green=''
+        tc_blue='';  tc_cyan=''
+      else
+        # Otherwise trust the terminfo database after all.
+        test -n "`tput sgr0 2>/dev/null`" && {
+          tc_reset=`tput sgr0`
+          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
+          tc_standout=$tc_bold
+          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
+          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
+          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
+          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
+          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
+        }
+      fi
+    }
+
+    require_term_colors=:
+}
+
+
+## ----------------- ##
+## Function library. ##
+## ----------------- ##
+
+# This section contains a variety of useful functions to call in your
+# scripts. Take note of the portable wrappers for features provided by
+# some modern shells, which will fall back to slower equivalents on
+# less featureful shells.
+
+
+# func_append VAR VALUE
+# ---------------------
+# Append VALUE onto the existing contents of VAR.
+
+  # We should try to minimise forks, especially on Windows where they are
+  # unreasonably slow, so skip the feature probes when bash or zsh are
+  # being used:
+  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
+    : ${_G_HAVE_ARITH_OP="yes"}
+    : ${_G_HAVE_XSI_OPS="yes"}
+    # The += operator was introduced in bash 3.1
+    case $BASH_VERSION in
+      [12].* | 3.0 | 3.0*) ;;
+      *)
+        : ${_G_HAVE_PLUSEQ_OP="yes"}
+        ;;
+    esac
+  fi
+
+  # _G_HAVE_PLUSEQ_OP
+  # Can be empty, in which case the shell is probed, "yes" if += is
+  # useable or anything else if it does not work.
+  test -z "$_G_HAVE_PLUSEQ_OP" \
+    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
+    && _G_HAVE_PLUSEQ_OP=yes
+
+if test yes = "$_G_HAVE_PLUSEQ_OP"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_append ()
+  {
+    $debug_cmd
+
+    eval "$1+=\$2"
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_append ()
+  {
+    $debug_cmd
+
+    eval "$1=\$$1\$2"
+  }
+fi
+
+
+# func_append_quoted VAR VALUE
+# ----------------------------
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+if test yes = "$_G_HAVE_PLUSEQ_OP"; then
+  eval 'func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1+=\\ \$func_quote_for_eval_result"
+  }'
+else
+  func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1=\$$1\\ \$func_quote_for_eval_result"
+  }
+fi
+
+
+# func_append_uniq VAR VALUE
+# --------------------------
+# Append unique VALUE onto the existing contents of VAR, assuming
+# entries are delimited by the first character of VALUE.  For example:
+#
+#   func_append_uniq options " --another-option option-argument"
+#
+# will only append to $options if " --another-option option-argument "
+# is not already present somewhere in $options already (note spaces at
+# each end implied by leading space in second argument).
+func_append_uniq ()
+{
+    $debug_cmd
+
+    eval _G_current_value='`$ECHO $'$1'`'
+    _G_delim=`expr "$2" : '\(.\)'`
+
+    case $_G_delim$_G_current_value$_G_delim in
+      *"$2$_G_delim"*) ;;
+      *) func_append "$@" ;;
+    esac
+}
+
+
+# func_arith TERM...
+# ------------------
+# Set func_arith_result to the result of evaluating TERMs.
+  test -z "$_G_HAVE_ARITH_OP" \
+    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
+    && _G_HAVE_ARITH_OP=yes
+
+if test yes = "$_G_HAVE_ARITH_OP"; then
+  eval 'func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=$(( $* ))
+  }'
+else
+  func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=`expr "$@"`
+  }
+fi
+
+
+# func_basename FILE
+# ------------------
+# Set func_basename_result to FILE with everything up to and including
+# the last / stripped.
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  # If this shell supports suffix pattern removal, then use it to avoid
+  # forking. Hide the definitions single quotes in case the shell chokes
+  # on unsupported syntax...
+  _b='func_basename_result=${1##*/}'
+  _d='case $1 in
+        */*) func_dirname_result=${1%/*}$2 ;;
+        *  ) func_dirname_result=$3        ;;
+      esac'
+
+else
+  # ...otherwise fall back to using sed.
+  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
+  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
+      if test "X$func_dirname_result" = "X$1"; then
+        func_dirname_result=$3
+      else
+        func_append func_dirname_result "$2"
+      fi'
+fi
+
+eval 'func_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+}'
+
+
+# func_dirname FILE APPEND NONDIR_REPLACEMENT
+# -------------------------------------------
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+eval 'func_dirname ()
+{
+    $debug_cmd
+
+    '"$_d"'
+}'
+
+
+# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
+# --------------------------------------------------------
+# Perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# For efficiency, we do not delegate to the functions above but instead
+# duplicate the functionality here.
+eval 'func_dirname_and_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+    '"$_d"'
+}'
+
+
+# func_echo ARG...
+# ----------------
+# Echo program name prefixed message.
+func_echo ()
+{
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
+
+
+# func_echo_all ARG...
+# --------------------
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+
+# func_echo_infix_1 INFIX ARG...
+# ------------------------------
+# Echo program name, followed by INFIX on the first line, with any
+# additional lines not showing INFIX.
+func_echo_infix_1 ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    _G_infix=$1; shift
+    _G_indent=$_G_infix
+    _G_prefix="$progname: $_G_infix: "
+    _G_message=$*
+
+    # Strip color escape sequences before counting printable length
+    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
+    do
+      test -n "$_G_tc" && {
+        _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+        _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+      }
+    done
+    _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
+
+    func_echo_infix_1_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_infix_1_IFS
+      $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+      _G_prefix=$_G_indent
+    done
+    IFS=$func_echo_infix_1_IFS
+}
+
+
+# func_error ARG...
+# -----------------
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
+}
+
+
+# func_fatal_error ARG...
+# -----------------------
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    $debug_cmd
+
+    func_error "$*"
+    exit $EXIT_FAILURE
+}
+
+
+# func_grep EXPRESSION FILENAME
+# -----------------------------
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $debug_cmd
+
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_len STRING
+# ---------------
+# Set func_len_result to the length of STRING. STRING may not
+# start with a hyphen.
+  test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=${#1}
+  }'
+else
+  func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+  }
+fi
+
+
+# func_mkdir_p DIRECTORY-PATH
+# ---------------------------
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    $debug_cmd
+
+    _G_directory_path=$1
+    _G_dir_list=
+
+    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
+
+      # Protect directory names starting with '-'
+      case $_G_directory_path in
+        -*) _G_directory_path=./$_G_directory_path ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$_G_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+	# list incase some portion of path contains whitespace.
+        _G_dir_list=$_G_directory_path:$_G_dir_list
+
+        # If the last portion added has no slash in it, the list is done
+        case $_G_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
+      done
+      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
+
+      func_mkdir_p_IFS=$IFS; IFS=:
+      for _G_dir in $_G_dir_list; do
+	IFS=$func_mkdir_p_IFS
+        # mkdir can fail with a 'File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$_G_dir" 2>/dev/null || :
+      done
+      IFS=$func_mkdir_p_IFS
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$_G_directory_path" || \
+        func_fatal_error "Failed to create '$1'"
+    fi
+}
+
+
+# func_mktempdir [BASENAME]
+# -------------------------
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, BASENAME is the basename for that directory.
+func_mktempdir ()
+{
+    $debug_cmd
+
+    _G_template=${TMPDIR-/tmp}/${1-$progname}
+
+    if test : = "$opt_dry_run"; then
+      # Return a directory name, but don't create it in dry-run mode
+      _G_tmpdir=$_G_template-$$
+    else
+
+      # If mktemp works, use that first and foremost
+      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$_G_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        _G_tmpdir=$_G_template-${RANDOM-0}$$
+
+        func_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$_G_tmpdir"
+        umask $func_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$_G_tmpdir" || \
+        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
+    fi
+
+    $ECHO "$_G_tmpdir"
+}
+
+
+# func_normal_abspath PATH
+# ------------------------
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+func_normal_abspath ()
+{
+    $debug_cmd
+
+    # These SED scripts presuppose an absolute path with a trailing slash.
+    _G_pathcar='s|^/\([^/]*\).*$|\1|'
+    _G_pathcdr='s|^/[^/]*||'
+    _G_removedotparts=':dotsl
+		s|/\./|/|g
+		t dotsl
+		s|/\.$|/|'
+    _G_collapseslashes='s|/\{1,\}|/|g'
+    _G_finalslash='s|/*$|/|'
+
+    # Start from root dir and reassemble the path.
+    func_normal_abspath_result=
+    func_normal_abspath_tpath=$1
+    func_normal_abspath_altnamespace=
+    case $func_normal_abspath_tpath in
+      "")
+        # Empty path, that just means $cwd.
+        func_stripname '' '/' "`pwd`"
+        func_normal_abspath_result=$func_stripname_result
+        return
+        ;;
+      # The next three entries are used to spot a run of precisely
+      # two leading slashes without using negated character classes;
+      # we take advantage of case's first-match behaviour.
+      ///*)
+        # Unusual form of absolute path, do nothing.
+        ;;
+      //*)
+        # Not necessarily an ordinary path; POSIX reserves leading '//'
+        # and for example Cygwin uses it to access remote file shares
+        # over CIFS/SMB, so we conserve a leading double slash if found.
+        func_normal_abspath_altnamespace=/
+        ;;
+      /*)
+        # Absolute path, do nothing.
+        ;;
+      *)
+        # Relative path, prepend $cwd.
+        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+        ;;
+    esac
+
+    # Cancel out all the simple stuff to save iterations.  We also want
+    # the path to end with a slash for ease of parsing, so make sure
+    # there is one (and only one) here.
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
+    while :; do
+      # Processed it all yet?
+      if test / = "$func_normal_abspath_tpath"; then
+        # If we ascended to the root using ".." the result may be empty now.
+        if test -z "$func_normal_abspath_result"; then
+          func_normal_abspath_result=/
+        fi
+        break
+      fi
+      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcar"`
+      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcdr"`
+      # Figure out what to do with it
+      case $func_normal_abspath_tcomponent in
+        "")
+          # Trailing empty path component, ignore it.
+          ;;
+        ..)
+          # Parent dir; strip last assembled component from result.
+          func_dirname "$func_normal_abspath_result"
+          func_normal_abspath_result=$func_dirname_result
+          ;;
+        *)
+          # Actual path component, append it.
+          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
+          ;;
+      esac
+    done
+    # Restore leading double-slash if one was found on entry.
+    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+
+# func_notquiet ARG...
+# --------------------
+# Echo program name prefixed message only when not in quiet mode.
+func_notquiet ()
+{
+    $debug_cmd
+
+    $opt_quiet || func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+
+# func_relative_path SRCDIR DSTDIR
+# --------------------------------
+# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
+func_relative_path ()
+{
+    $debug_cmd
+
+    func_relative_path_result=
+    func_normal_abspath "$1"
+    func_relative_path_tlibdir=$func_normal_abspath_result
+    func_normal_abspath "$2"
+    func_relative_path_tbindir=$func_normal_abspath_result
+
+    # Ascend the tree starting from libdir
+    while :; do
+      # check if we have found a prefix of bindir
+      case $func_relative_path_tbindir in
+        $func_relative_path_tlibdir)
+          # found an exact match
+          func_relative_path_tcancelled=
+          break
+          ;;
+        $func_relative_path_tlibdir*)
+          # found a matching prefix
+          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+          func_relative_path_tcancelled=$func_stripname_result
+          if test -z "$func_relative_path_result"; then
+            func_relative_path_result=.
+          fi
+          break
+          ;;
+        *)
+          func_dirname $func_relative_path_tlibdir
+          func_relative_path_tlibdir=$func_dirname_result
+          if test -z "$func_relative_path_tlibdir"; then
+            # Have to descend all the way to the root!
+            func_relative_path_result=../$func_relative_path_result
+            func_relative_path_tcancelled=$func_relative_path_tbindir
+            break
+          fi
+          func_relative_path_result=../$func_relative_path_result
+          ;;
+      esac
+    done
+
+    # Now calculate path; take care to avoid doubling-up slashes.
+    func_stripname '' '/' "$func_relative_path_result"
+    func_relative_path_result=$func_stripname_result
+    func_stripname '/' '/' "$func_relative_path_tcancelled"
+    if test -n "$func_stripname_result"; then
+      func_append func_relative_path_result "/$func_stripname_result"
+    fi
+
+    # Normalisation. If bindir is libdir, return '.' else relative path.
+    if test -n "$func_relative_path_result"; then
+      func_stripname './' '' "$func_relative_path_result"
+      func_relative_path_result=$func_stripname_result
+    fi
+
+    test -n "$func_relative_path_result" || func_relative_path_result=.
+
+    :
+}
+
+
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+#   i) func_quote_for_eval_result
+#      double-quoted, suitable for a subsequent eval
+#  ii) func_quote_for_eval_unquoted_result
+#      has all characters that are still active within double
+#      quotes backslashified.
+func_quote_for_eval ()
+{
+    $debug_cmd
+
+    func_quote_for_eval_unquoted_result=
+    func_quote_for_eval_result=
+    while test 0 -lt $#; do
+      case $1 in
+        *[\\\`\"\$]*)
+	  _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+        *)
+          _G_unquoted_arg=$1 ;;
+      esac
+      if test -n "$func_quote_for_eval_unquoted_result"; then
+	func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+      else
+        func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+      fi
+
+      case $_G_unquoted_arg in
+        # Double-quote args containing shell metacharacters to delay
+        # word splitting, command substitution and variable expansion
+        # for a subsequent eval.
+        # Many Bourne shells cannot handle close brackets correctly
+        # in scan sets, so we specify it separately.
+        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+          _G_quoted_arg=\"$_G_unquoted_arg\"
+          ;;
+        *)
+          _G_quoted_arg=$_G_unquoted_arg
+	  ;;
+      esac
+
+      if test -n "$func_quote_for_eval_result"; then
+	func_append func_quote_for_eval_result " $_G_quoted_arg"
+      else
+        func_append func_quote_for_eval_result "$_G_quoted_arg"
+      fi
+      shift
+    done
+}
+
+
+# func_quote_for_expand ARG
+# -------------------------
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    $debug_cmd
+
+    case $1 in
+      *[\\\`\"]*)
+	_G_arg=`$ECHO "$1" | $SED \
+	    -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        _G_arg=$1 ;;
+    esac
+
+    case $_G_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        _G_arg=\"$_G_arg\"
+        ;;
+    esac
+
+    func_quote_for_expand_result=$_G_arg
+}
+
+
+# func_stripname PREFIX SUFFIX NAME
+# ---------------------------------
+# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_stripname ()
+  {
+    $debug_cmd
+
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary variable first.
+    func_stripname_result=$3
+    func_stripname_result=${func_stripname_result#"$1"}
+    func_stripname_result=${func_stripname_result%"$2"}
+  }'
+else
+  func_stripname ()
+  {
+    $debug_cmd
+
+    case $2 in
+      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
+      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
+    esac
+  }
+fi
+
+
+# func_show_eval CMD [FAIL_EXP]
+# -----------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    func_quote_for_expand "$_G_cmd"
+    eval "func_notquiet $func_quote_for_expand_result"
+
+    $opt_dry_run || {
+      eval "$_G_cmd"
+      _G_status=$?
+      if test 0 -ne "$_G_status"; then
+	eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_show_eval_locale CMD [FAIL_EXP]
+# ------------------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    $opt_quiet || {
+      func_quote_for_expand "$_G_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    $opt_dry_run || {
+      eval "$_G_user_locale
+	    $_G_cmd"
+      _G_status=$?
+      eval "$_G_safe_locale"
+      if test 0 -ne "$_G_status"; then
+	eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_tr_sh
+# ----------
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+    $debug_cmd
+
+    case $1 in
+    [0-9]* | *[!a-zA-Z0-9_]*)
+      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
+      ;;
+    * )
+      func_tr_sh_result=$1
+      ;;
+    esac
+}
+
+
+# func_verbose ARG...
+# -------------------
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $debug_cmd
+
+    $opt_verbose && func_echo "$*"
+
+    :
+}
+
+
+# func_warn_and_continue ARG...
+# -----------------------------
+# Echo program name prefixed warning message to standard error.
+func_warn_and_continue ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
+}
+
+
+# func_warning CATEGORY ARG...
+# ----------------------------
+# Echo program name prefixed warning message to standard error. Warning
+# messages can be filtered according to CATEGORY, where this function
+# elides messages where CATEGORY is not listed in the global variable
+# 'opt_warning_types'.
+func_warning ()
+{
+    $debug_cmd
+
+    # CATEGORY must be in the warning_categories list!
+    case " $warning_categories " in
+      *" $1 "*) ;;
+      *) func_internal_error "invalid warning category '$1'" ;;
+    esac
+
+    _G_category=$1
+    shift
+
+    case " $opt_warning_types " in
+      *" $_G_category "*) $warning_func ${1+"$@"} ;;
+    esac
+}
+
+
+# func_sort_ver VER1 VER2
+# -----------------------
+# 'sort -V' is not generally available.
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+func_sort_ver ()
+{
+    $debug_cmd
+
+    printf '%s\n%s\n' "$1" "$2" \
+      | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
+}
+
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false.  Use it like this:
+#
+#  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+    $debug_cmd
+
+    test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+#! /bin/sh
+
+# Set a version string for this script.
+scriptversion=2014-01-07.03; # UTC
+
+# A portable, pluggable option parser for Bourne shell.
+# Written by Gary V. Vaughan, 2010
+
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary at gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# This file is a library for parsing options in your shell scripts along
+# with assorted other useful supporting features that you can make use
+# of too.
+#
+# For the simplest scripts you might need only:
+#
+#   #!/bin/sh
+#   . relative/path/to/funclib.sh
+#   . relative/path/to/options-parser
+#   scriptversion=1.0
+#   func_options ${1+"$@"}
+#   eval set dummy "$func_options_result"; shift
+#   ...rest of your script...
+#
+# In order for the '--version' option to work, you will need to have a
+# suitably formatted comment like the one at the top of this file
+# starting with '# Written by ' and ending with '# warranty; '.
+#
+# For '-h' and '--help' to work, you will also need a one line
+# description of your script's purpose in a comment directly above the
+# '# Written by ' line, like the one at the top of this file.
+#
+# The default options also support '--debug', which will turn on shell
+# execution tracing (see the comment above debug_cmd below for another
+# use), and '--verbose' and the func_verbose function to allow your script
+# to display verbose messages only when your user has specified
+# '--verbose'.
+#
+# After sourcing this file, you can plug processing for additional
+# options by amending the variables from the 'Configuration' section
+# below, and following the instructions in the 'Option parsing'
+# section further down.
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+# You should override these variables in your script after sourcing this
+# file so that they reflect the customisations you have added to the
+# option parser.
+
+# The usage line for option parsing errors and the start of '-h' and
+# '--help' output messages. You can embed shell variables for delayed
+# expansion at the time the message is displayed, but you will need to
+# quote other shell meta-characters carefully to prevent them being
+# expanded when the contents are evaled.
+usage='$progpath [OPTION]...'
+
+# Short help message in response to '-h' and '--help'.  Add to this or
+# override it after sourcing this library to reflect the full set of
+# options your script accepts.
+usage_message="\
+       --debug        enable verbose shell tracing
+   -W, --warnings=CATEGORY
+                      report the warnings falling in CATEGORY [all]
+   -v, --verbose      verbosely report processing
+       --version      print version information and exit
+   -h, --help         print short or long help message and exit
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+long_help_message="
+Warning categories include:
+       'all'          show all warnings
+       'none'         turn off all the warnings
+       'error'        warnings are treated as fatal errors"
+
+# Help message printed before fatal option parsing errors.
+fatal_help="Try '\$progname --help' for more information."
+
+
+
+## ------------------------- ##
+## Hook function management. ##
+## ------------------------- ##
+
+# This section contains functions for adding, removing, and running hooks
+# to the main code.  A hook is just a named list of of function, that can
+# be run in order later on.
+
+# func_hookable FUNC_NAME
+# -----------------------
+# Declare that FUNC_NAME will run hooks added with
+# 'func_add_hook FUNC_NAME ...'.
+func_hookable ()
+{
+    $debug_cmd
+
+    func_append hookable_fns " $1"
+}
+
+
+# func_add_hook FUNC_NAME HOOK_FUNC
+# ---------------------------------
+# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
+# first have been declared "hookable" by a call to 'func_hookable'.
+func_add_hook ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not accept hook functions." ;;
+    esac
+
+    eval func_append ${1}_hooks '" $2"'
+}
+
+
+# func_remove_hook FUNC_NAME HOOK_FUNC
+# ------------------------------------
+# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
+func_remove_hook ()
+{
+    $debug_cmd
+
+    eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
+}
+
+
+# func_run_hooks FUNC_NAME [ARG]...
+# ---------------------------------
+# Run all hook functions registered to FUNC_NAME.
+# It is assumed that the list of hook functions contains nothing more
+# than a whitespace-delimited list of legal shell function names, and
+# no effort is wasted trying to catch shell meta-characters or preserve
+# whitespace.
+func_run_hooks ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not support hook funcions.n" ;;
+    esac
+
+    eval _G_hook_fns=\$$1_hooks; shift
+
+    for _G_hook in $_G_hook_fns; do
+      eval $_G_hook '"$@"'
+
+      # store returned options list back into positional
+      # parameters for next 'cmd' execution.
+      eval _G_hook_result=\$${_G_hook}_result
+      eval set dummy "$_G_hook_result"; shift
+    done
+
+    func_quote_for_eval ${1+"$@"}
+    func_run_hooks_result=$func_quote_for_eval_result
+}
+
+
+
+## --------------- ##
+## Option parsing. ##
+## --------------- ##
+
+# In order to add your own option parsing hooks, you must accept the
+# full positional parameter list in your hook function, remove any
+# options that you action, and then pass back the remaining unprocessed
+# options in '<hooked_function_name>_result', escaped suitably for
+# 'eval'.  Like this:
+#
+#    my_options_prep ()
+#    {
+#        $debug_cmd
+#
+#        # Extend the existing usage message.
+#        usage_message=$usage_message'
+#      -s, --silent       don'\''t print informational messages
+#    '
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_options_prep_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_options_prep my_options_prep
+#
+#
+#    my_silent_option ()
+#    {
+#        $debug_cmd
+#
+#        # Note that for efficiency, we parse as many options as we can
+#        # recognise in a loop before passing the remainder back to the
+#        # caller on the first unrecognised argument we encounter.
+#        while test $# -gt 0; do
+#          opt=$1; shift
+#          case $opt in
+#            --silent|-s) opt_silent=: ;;
+#            # Separate non-argument short options:
+#            -s*)         func_split_short_opt "$_G_opt"
+#                         set dummy "$func_split_short_opt_name" \
+#                             "-$func_split_short_opt_arg" ${1+"$@"}
+#                         shift
+#                         ;;
+#            *)            set dummy "$_G_opt" "$*"; shift; break ;;
+#          esac
+#        done
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_silent_option_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_parse_options my_silent_option
+#
+#
+#    my_option_validation ()
+#    {
+#        $debug_cmd
+#
+#        $opt_silent && $opt_verbose && func_fatal_help "\
+#    '--silent' and '--verbose' options are mutually exclusive."
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_option_validation_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_validate_options my_option_validation
+#
+# You'll alse need to manually amend $usage_message to reflect the extra
+# options you parse.  It's preferable to append if you can, so that
+# multiple option parsing hooks can be added safely.
+
+
+# func_options [ARG]...
+# ---------------------
+# All the functions called inside func_options are hookable. See the
+# individual implementations for details.
+func_hookable func_options
+func_options ()
+{
+    $debug_cmd
+
+    func_options_prep ${1+"$@"}
+    eval func_parse_options \
+        ${func_options_prep_result+"$func_options_prep_result"}
+    eval func_validate_options \
+        ${func_parse_options_result+"$func_parse_options_result"}
+
+    eval func_run_hooks func_options \
+        ${func_validate_options_result+"$func_validate_options_result"}
+
+    # save modified positional parameters for caller
+    func_options_result=$func_run_hooks_result
+}
+
+
+# func_options_prep [ARG]...
+# --------------------------
+# All initialisations required before starting the option parse loop.
+# Note that when calling hook functions, we pass through the list of
+# positional parameters.  If a hook function modifies that list, and
+# needs to propogate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before
+# returning.
+func_hookable func_options_prep
+func_options_prep ()
+{
+    $debug_cmd
+
+    # Option defaults:
+    opt_verbose=false
+    opt_warning_types=
+
+    func_run_hooks func_options_prep ${1+"$@"}
+
+    # save modified positional parameters for caller
+    func_options_prep_result=$func_run_hooks_result
+}
+
+
+# func_parse_options [ARG]...
+# ---------------------------
+# The main option parsing loop.
+func_hookable func_parse_options
+func_parse_options ()
+{
+    $debug_cmd
+
+    func_parse_options_result=
+
+    # this just eases exit handling
+    while test $# -gt 0; do
+      # Defer to hook functions for initial option parsing, so they
+      # get priority in the event of reusing an option name.
+      func_run_hooks func_parse_options ${1+"$@"}
+
+      # Adjust func_parse_options positional parameters to match
+      eval set dummy "$func_run_hooks_result"; shift
+
+      # Break out of the loop if we already parsed every option.
+      test $# -gt 0 || break
+
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --debug|-x)   debug_cmd='set -x'
+                      func_echo "enabling shell trace mode"
+                      $debug_cmd
+                      ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                      set dummy --warnings none ${1+"$@"}
+                      shift
+		      ;;
+
+        --warnings|--warning|-W)
+                      test $# = 0 && func_missing_arg $_G_opt && break
+                      case " $warning_categories $1" in
+                        *" $1 "*)
+                          # trailing space prevents matching last $1 above
+                          func_append_uniq opt_warning_types " $1"
+                          ;;
+                        *all)
+                          opt_warning_types=$warning_categories
+                          ;;
+                        *none)
+                          opt_warning_types=none
+                          warning_func=:
+                          ;;
+                        *error)
+                          opt_warning_types=$warning_categories
+                          warning_func=func_fatal_error
+                          ;;
+                        *)
+                          func_fatal_error \
+                             "unsupported warning category: '$1'"
+                          ;;
+                      esac
+                      shift
+                      ;;
+
+        --verbose|-v) opt_verbose=: ;;
+        --version)    func_version ;;
+        -\?|-h)       func_usage ;;
+        --help)       func_help ;;
+
+	# Separate optargs to long options (plugins may need this):
+	--*=*)        func_split_equals "$_G_opt"
+	              set dummy "$func_split_equals_lhs" \
+                          "$func_split_equals_rhs" ${1+"$@"}
+                      shift
+                      ;;
+
+       # Separate optargs to short options:
+        -W*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        # Separate non-argument short options:
+        -\?*|-h*|-v*|-x*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "-$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        --)           break ;;
+        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
+        *)            set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+      esac
+    done
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    func_parse_options_result=$func_quote_for_eval_result
+}
+
+
+# func_validate_options [ARG]...
+# ------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+func_hookable func_validate_options
+func_validate_options ()
+{
+    $debug_cmd
+
+    # Display all warnings if -W was not given.
+    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
+
+    func_run_hooks func_validate_options ${1+"$@"}
+
+    # Bail if the options were screwed!
+    $exit_cmd $EXIT_FAILURE
+
+    # save modified positional parameters for caller
+    func_validate_options_result=$func_run_hooks_result
+}
+
+
+
+## ----------------- ##
+## Helper functions. ##
+## ----------------- ##
+
+# This section contains the helper functions used by the rest of the
+# hookable option parser framework in ascii-betical order.
+
+
+# func_fatal_help ARG...
+# ----------------------
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    $debug_cmd
+
+    eval \$ECHO \""Usage: $usage"\"
+    eval \$ECHO \""$fatal_help"\"
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+
+# func_help
+# ---------
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message"
+    exit 0
+}
+
+
+# func_missing_arg ARGNAME
+# ------------------------
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    $debug_cmd
+
+    func_error "Missing argument for '$1'."
+    exit_cmd=exit
+}
+
+
+# func_split_equals STRING
+# ------------------------
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
+# splitting STRING at the '=' sign.
+test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=${1%%=*}
+      func_split_equals_rhs=${1#*=}
+      test "x$func_split_equals_lhs" = "x$1" \
+        && func_split_equals_rhs=
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
+      func_split_equals_rhs=
+      test "x$func_split_equals_lhs" = "x$1" \
+        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
+  }
+fi #func_split_equals
+
+
+# func_split_short_opt SHORTOPT
+# -----------------------------
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_arg=${1#??}
+      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
+      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
+  }
+fi #func_split_short_opt
+
+
+# func_usage
+# ----------
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
+    exit 0
+}
+
+
+# func_usage_message
+# ------------------
+# Echo short help message to standard output.
+func_usage_message ()
+{
+    $debug_cmd
+
+    eval \$ECHO \""Usage: $usage"\"
+    echo
+    $SED -n 's|^# ||
+        /^Written by/{
+          x;p;x
+        }
+	h
+	/^Written by/q' < "$progpath"
+    echo
+    eval \$ECHO \""$usage_message"\"
+}
+
+
+# func_version
+# ------------
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $debug_cmd
+
+    printf '%s\n' "$progname $scriptversion"
+    $SED -n '
+        /(C)/!b go
+        :more
+        /\./!{
+          N
+          s|\n# | |
+          b more
+        }
+        :go
+        /^# Written by /,/# warranty; / {
+          s|^# ||
+          s|^# *$||
+          s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+          p
+        }
+        /^# Written by / {
+          s|^# ||
+          p
+        }
+        /^warranty; /q' < "$progpath"
+
+    exit $?
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+
+# Set a version string.
+scriptversion='(GNU libtool) 2.4.6'
+
+
+# func_echo ARG...
+# ----------------
+# Libtool also displays the current mode in messages, so override
+# funclib.sh func_echo with this custom definition.
+func_echo ()
+{
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
+
+
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
+{
+    $debug_cmd
+
+    $warning_func ${1+"$@"}
+}
+
+
+## ---------------- ##
+## Options parsing. ##
+## ---------------- ##
+
+# Hook in the functions to make sure our own options are parsed during
+# the option parsing loop.
+
+usage='$progpath [OPTION]... [MODE-ARG]...'
+
+# Short help message in response to '-h'.
+usage_message="Options:
+       --config             show all configuration variables
+       --debug              enable verbose shell tracing
+   -n, --dry-run            display commands without modifying any files
+       --features           display basic configuration information and exit
+       --mode=MODE          use operation mode MODE
+       --no-warnings        equivalent to '-Wnone'
+       --preserve-dup-deps  don't remove duplicate dependency libraries
+       --quiet, --silent    don't print informational messages
+       --tag=TAG            use configuration variables from tag TAG
+   -v, --verbose            print more informational messages than default
+       --version            print version information
+   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
+   -h, --help, --help-all   print short, long, or detailed help message
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+func_help ()
+{
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message
+
+MODE must be one of the following:
+
+       clean           remove files from the build directory
+       compile         compile a source file into a libtool object
+       execute         automatically set library path, then run a program
+       finish          complete the installation of libtool libraries
+       install         install libraries or executables
+       link            create a library or an executable
+       uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  When passed as first option,
+'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
+Try '$progname --help --mode=MODE' for a more detailed description of MODE.
+
+When reporting a bug, please describe a test case to reproduce it and
+include the following information:
+
+       host-triplet:   $host
+       shell:          $SHELL
+       compiler:       $LTCC
+       compiler flags: $LTCFLAGS
+       linker:         $LD (gnu? $with_gnu_ld)
+       version:        $progname (GNU libtool) 2.4.6
+       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
+       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
+
+Report bugs to <bug-libtool at gnu.org>.
+GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+    exit 0
+}
+
+
+# func_lo2o OBJECT-NAME
+# ---------------------
+# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
+# object suffix.
+
+lo2o=s/\\.lo\$/.$objext/
+o2lo=s/\\.$objext\$/.lo/
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_lo2o ()
+  {
+    case $1 in
+      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
+      *   ) func_lo2o_result=$1               ;;
+    esac
+  }'
+
+  # func_xform LIBOBJ-OR-SOURCE
+  # ---------------------------
+  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
+  # suffix to a '.lo' libtool-object suffix.
+  eval 'func_xform ()
+  {
+    func_xform_result=${1%.*}.lo
+  }'
+else
+  # ...otherwise fall back to using sed.
+  func_lo2o ()
+  {
+    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
+  }
+
+  func_xform ()
+  {
+    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
+  }
+fi
+
+
+# func_fatal_configuration ARG...
+# -------------------------------
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func__fatal_error ${1+"$@"} \
+      "See the $PACKAGE documentation for more information." \
+      "Fatal configuration error."
+}
+
+
+# func_config
+# -----------
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
+
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+    done
+
+    exit $?
+}
+
+
+# func_features
+# -------------
+# Display the features supported by this script.
+func_features ()
+{
+    echo "host: $host"
+    if test yes = "$build_libtool_libs"; then
+      echo "enable shared libraries"
+    else
+      echo "disable shared libraries"
+    fi
+    if test yes = "$build_old_libs"; then
+      echo "enable static libraries"
+    else
+      echo "disable static libraries"
+    fi
+
+    exit $?
+}
+
+
+# func_enable_tag TAGNAME
+# -----------------------
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+    # Global variable:
+    tagname=$1
+
+    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+    sed_extractcf=/$re_begincf/,/$re_endcf/p
+
+    # Validate tagname.
+    case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+        func_fatal_error "invalid tag name: $tagname"
+        ;;
+    esac
+
+    # Don't test for the "default" C tag, as we know it's
+    # there but not specially marked.
+    case $tagname in
+        CC) ;;
+    *)
+        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+	  taglist="$taglist $tagname"
+
+	  # Evaluate the configuration.  Be careful to quote the path
+	  # and the sed script, to avoid splitting on whitespace, but
+	  # also don't use non-portable quotes within backquotes within
+	  # quotes we have to do it in 2 steps:
+	  extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+	  eval "$extractedcf"
+        else
+	  func_error "ignoring unknown tag $tagname"
+        fi
+        ;;
+    esac
+}
+
+
+# func_check_version_match
+# ------------------------
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+    if test "$package_revision" != "$macro_revision"; then
+      if test "$VERSION" != "$macro_version"; then
+        if test -z "$macro_version"; then
+          cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+        else
+          cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+        fi
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+      fi
+
+      exit $EXIT_MISMATCH
+    fi
+}
+
+
+# libtool_options_prep [ARG]...
+# -----------------------------
+# Preparation for options parsed by libtool.
+libtool_options_prep ()
+{
+    $debug_mode
+
+    # Option defaults:
+    opt_config=false
+    opt_dlopen=
+    opt_dry_run=false
+    opt_help=false
+    opt_mode=
+    opt_preserve_dup_deps=false
+    opt_quiet=false
+
+    nonopt=
+    preserve_args=
+
+    # Shorthand for --mode=foo, only valid as the first argument
+    case $1 in
+    clean|clea|cle|cl)
+      shift; set dummy --mode clean ${1+"$@"}; shift
+      ;;
+    compile|compil|compi|comp|com|co|c)
+      shift; set dummy --mode compile ${1+"$@"}; shift
+      ;;
+    execute|execut|execu|exec|exe|ex|e)
+      shift; set dummy --mode execute ${1+"$@"}; shift
+      ;;
+    finish|finis|fini|fin|fi|f)
+      shift; set dummy --mode finish ${1+"$@"}; shift
+      ;;
+    install|instal|insta|inst|ins|in|i)
+      shift; set dummy --mode install ${1+"$@"}; shift
+      ;;
+    link|lin|li|l)
+      shift; set dummy --mode link ${1+"$@"}; shift
+      ;;
+    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+      shift; set dummy --mode uninstall ${1+"$@"}; shift
+      ;;
+    esac
+
+    # Pass back the list of options.
+    func_quote_for_eval ${1+"$@"}
+    libtool_options_prep_result=$func_quote_for_eval_result
+}
+func_add_hook func_options_prep libtool_options_prep
+
+
+# libtool_parse_options [ARG]...
+# ---------------------------------
+# Provide handling for libtool specific options.
+libtool_parse_options ()
+{
+    $debug_cmd
+
+    # Perform our own loop to consume as many options as possible in
+    # each iteration.
+    while test $# -gt 0; do
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --dry-run|--dryrun|-n)
+                        opt_dry_run=:
+                        ;;
+
+        --config)       func_config ;;
+
+        --dlopen|-dlopen)
+                        opt_dlopen="${opt_dlopen+$opt_dlopen
+}$1"
+                        shift
+                        ;;
+
+        --preserve-dup-deps)
+                        opt_preserve_dup_deps=: ;;
+
+        --features)     func_features ;;
+
+        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
+
+        --help)         opt_help=: ;;
+
+        --help-all)     opt_help=': help-all' ;;
+
+        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_mode=$1
+                        case $1 in
+                          # Valid mode arguments:
+                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+                          # Catch anything else as an error
+                          *) func_error "invalid argument for $_G_opt"
+                             exit_cmd=exit
+                             break
+                             ;;
+                        esac
+                        shift
+                        ;;
+
+        --no-silent|--no-quiet)
+                        opt_quiet=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                        opt_warning=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-verbose)
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --silent|--quiet)
+                        opt_quiet=:
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_tag=$1
+                        func_append preserve_args " $_G_opt $1"
+                        func_enable_tag "$1"
+                        shift
+                        ;;
+
+        --verbose|-v)   opt_quiet=false
+                        opt_verbose=:
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+	# An option not handled by this hook function:
+        *)		set dummy "$_G_opt" ${1+"$@"};	shift; break  ;;
+      esac
+    done
+
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    libtool_parse_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_parse_options libtool_parse_options
+
+
+
+# libtool_validate_options [ARG]...
+# ---------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+libtool_validate_options ()
+{
+    # save first non-option argument
+    if test 0 -lt $#; then
+      nonopt=$1
+      shift
+    fi
+
+    # preserve --debug
+    test : = "$debug_cmd" || func_append preserve_args " --debug"
+
+    case $host in
+      # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+      # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+      *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+        # don't eliminate duplications in $postdeps and $predeps
+        opt_duplicate_compiler_generated_deps=:
+        ;;
+      *)
+        opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+        ;;
+    esac
+
+    $opt_help || {
+      # Sanity checks first:
+      func_check_version_match
+
+      test yes != "$build_libtool_libs" \
+        && test yes != "$build_old_libs" \
+        && func_fatal_configuration "not configured to build any kind of library"
+
+      # Darwin sucks
+      eval std_shrext=\"$shrext_cmds\"
+
+      # Only execute mode is allowed to have -dlopen flags.
+      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
+        func_error "unrecognized option '-dlopen'"
+        $ECHO "$help" 1>&2
+        exit $EXIT_FAILURE
+      fi
+
+      # Change the help message to a mode-specific one.
+      generic_help=$help
+      help="Try '$progname --help --mode=$opt_mode' for more information."
+    }
+
+    # Pass back the unparsed argument list
+    func_quote_for_eval ${1+"$@"}
+    libtool_validate_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_validate_options libtool_validate_options
+
+
+# Process options as early as possible so that --help and --version
+# can return quickly.
+func_options ${1+"$@"}
+eval set dummy "$func_options_result"; shift
+
+
+
+## ----------- ##
+##    Main.    ##
+## ----------- ##
+
+magic='%%%MAGIC variable%%%'
+magic_exe='%%%MAGIC EXE variable%%%'
+
+# Global variables.
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if 'file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+	for lalib_p_l in 1 2 3 4
+	do
+	    read lalib_p_line
+	    case $lalib_p_line in
+		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+	    esac
+	done
+	exec 0<&5 5<&-
+    fi
+    test yes = "$lalib_p"
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    test -f "$1" &&
+      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $debug_cmd
+
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$sp$nl
+      eval cmd=\"$cmd\"
+      IFS=$save_ifs
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# 'FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $debug_cmd
+
+    case $1 in
+    */* | *\\*)	. "$1" ;;
+    *)		. "./$1" ;;
+    esac
+}
+
+
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case $lt_sysroot:$1 in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result='='$func_stripname_result
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $debug_cmd
+
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+	func_append_quoted CC_quoted "$arg"
+      done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	      # Double-quote args containing other shell metacharacters.
+	      func_append_quoted CC_quoted "$arg"
+	    done
+	    CC_expanded=`func_echo_all $CC`
+	    CC_quoted_expanded=`func_echo_all $CC_quoted`
+	    case "$@ " in
+	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  func_echo "unable to infer tagged configuration"
+	  func_fatal_error "specify a tag with '--tag'"
+#	else
+#	  func_verbose "using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=$1
+    if test yes = "$build_libtool_libs"; then
+      write_lobj=\'$2\'
+    else
+      write_lobj=none
+    fi
+
+    if test yes = "$build_old_libs"; then
+      write_oldobj=\'$3\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "$write_libobj"
+    }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $debug_cmd
+
+  func_convert_core_file_wine_to_w32_result=$1
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $debug_cmd
+
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result"; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $debug_cmd
+
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $debug_cmd
+
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $debug_cmd
+
+  if test -z "$2" && test -n "$1"; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  '$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result=$1
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $debug_cmd
+
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  '$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result=$3
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $debug_cmd
+
+  case $4 in
+  $1 ) func_to_host_path_result=$3$func_to_host_path_result
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via '$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $debug_cmd
+
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $debug_cmd
+
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result=$1
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result=$func_convert_core_msys_to_w32_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result=$func_cygpath_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result=$func_cygpath_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via '$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $debug_cmd
+
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd=func_convert_path_$func_stripname_result
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $debug_cmd
+
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result=$1
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result=$func_convert_core_msys_to_w32_result
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result=$func_cygpath_result
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result=$func_cygpath_result
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
+# func_dll_def_p FILE
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with _LT_DLL_DEF_P in libtool.m4
+func_dll_def_p ()
+{
+  $debug_cmd
+
+  func_dll_def_p_tmp=`$SED -n \
+    -e 's/^[	 ]*//' \
+    -e '/^\(;.*\)*$/d' \
+    -e 's/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p' \
+    -e q \
+    "$1"`
+  test DEF = "$func_dll_def_p_tmp"
+}
+
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $debug_cmd
+
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg=$arg
+	arg_mode=normal
+	;;
+
+      target )
+	libobj=$arg
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  test -n "$libobj" && \
+	    func_fatal_error "you cannot specify '-o' more than once"
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-pie | -fpie | -fPIE)
+          func_append pie_flag " $arg"
+	  continue
+	  ;;
+
+	-shared | -static | -prefer-pic | -prefer-non-pic)
+	  func_append later " $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  func_stripname '-Wc,' '' "$arg"
+	  args=$func_stripname_result
+	  lastarg=
+	  save_ifs=$IFS; IFS=,
+	  for arg in $args; do
+	    IFS=$save_ifs
+	    func_append_quoted lastarg "$arg"
+	  done
+	  IFS=$save_ifs
+	  func_stripname ' ' '' "$lastarg"
+	  lastarg=$func_stripname_result
+
+	  # Add the arguments to base_compile.
+	  func_append base_compile " $lastarg"
+	  continue
+	  ;;
+
+	*)
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg=$srcfile
+	  srcfile=$arg
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      func_append_quoted base_compile "$lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with '-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+	func_basename "$srcfile"
+	libobj=$func_basename_result
+      }
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
+
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from '$libobj'"
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -shared)
+	test yes = "$build_libtool_libs" \
+	  || func_fatal_configuration "cannot build a shared library"
+	build_old_libs=no
+	continue
+	;;
+
+      -static)
+	build_libtool_libs=no
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
+      && func_warning "libobj name '$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname=$func_basename_result
+    xdir=$func_dirname_result
+    lobj=$xdir$objdir/$objname
+
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
+
+    # Delete any leftover library objects.
+    if test yes = "$build_old_libs"; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test no = "$compiler_c_o"; then
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
+      lockfile=$output_obj.lock
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test yes = "$need_locks"; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test warn = "$need_locks"; then
+      if test -f "$lockfile"; then
+	$ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+      func_append removelist " $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
+
+    $opt_dry_run || $RM $removelist
+    func_append removelist " $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test yes = "$build_libtool_libs"; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test no != "$pic_mode"; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      func_mkdir_p "$xdir$objdir"
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	func_append command " -o $lobj"
+      fi
+
+      func_show_eval_locale "$command"	\
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test warn = "$need_locks" &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	func_show_eval '$MV "$output_obj" "$lobj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test yes = "$suppress_opt"; then
+	suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test yes = "$build_old_libs"; then
+      if test yes != "$pic_mode"; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile$pie_flag"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test yes = "$compiler_c_o"; then
+	func_append command " -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      func_append command "$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test warn = "$need_locks" &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	func_show_eval '$MV "$output_obj" "$obj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
+
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test no != "$need_locks"; then
+	removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $opt_mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
+
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
+  -shared           do not build a '.o' file suitable for static linking
+  -static           only build a '.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
+
+COMPILE-COMMAND is a command to be used in creating a 'standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix '.c' with the
+library object suffix, '.lo'."
+        ;;
+
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to '-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
+
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the '--dry-run' option if you just want to see what would be executed."
+        ;;
+
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the 'install' or 'cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
+
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
+  -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  use a list of object files found in FILE to specify objects
+  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
+
+All other options (arguments beginning with '-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in '.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in '.la', then a libtool library is created,
+only library objects ('.lo' files) may be specified, and '-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
+using 'ar' and 'ranlib', or on Windows using 'lib'.
+
+If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
+
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      *)
+        func_fatal_help "invalid operation mode '$opt_mode'"
+        ;;
+    esac
+
+    echo
+    $ECHO "Try '$progname --help' for more information about other modes."
+}
+
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test : = "$opt_help"; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	func_mode_help
+      done
+    } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	echo
+	func_mode_help
+      done
+    } |
+    $SED '1d
+      /^When reporting/,/^Report/{
+	H
+	d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $debug_cmd
+
+    # The first argument is the command name.
+    cmd=$nonopt
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $opt_dlopen; do
+      test -f "$file" \
+	|| func_fatal_help "'$file' is not a file"
+
+      dir=
+      case $file in
+      *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "'$lib' is not a valid libtool archive"
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+	func_source "$file"
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && \
+	    func_warning "'$file' was not linked with '-export-dynamic'"
+	  continue
+	fi
+
+	func_dirname "$file" "" "."
+	dir=$func_dirname_result
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  func_append dir "/$objdir"
+	else
+	  if test ! -f "$dir/$dlname"; then
+	    func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	func_dirname "$file" "" "."
+	dir=$func_dirname_result
+	;;
+
+      *)
+	func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir=$absdir
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic=$magic
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -* | *.la | *.lo ) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if func_ltwrapper_script_p "$file"; then
+	  func_source "$file"
+	  # Transform arg to wrapped name.
+	  file=$progdir/$program
+	elif func_ltwrapper_executable_p "$file"; then
+	  func_ltwrapper_scriptname "$file"
+	  func_source "$func_ltwrapper_scriptname_result"
+	  # Transform arg to wrapped name.
+	  file=$progdir/$program
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_append_quoted args "$file"
+    done
+
+    if $opt_dry_run; then
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+	echo "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    else
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+	      else
+		$lt_unset $lt_var
+	      fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd=\$cmd$args
+    fi
+}
+
+test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $debug_cmd
+
+    libs=
+    libdirs=
+    admincmds=
+
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+	func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+	if func_lalib_unsafe_p "$opt"; then
+	  func_append libs " $opt"
+	else
+	  func_warning "'$opt' is not a valid libtool archive"
+	fi
+
+      else
+	func_fatal_error "invalid argument '$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and '=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+	  $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+	    > $tmpdir/tmp-la
+	  mv -f $tmpdir/tmp-la $lib
+	done
+        ${RM}r "$tmpdir"
+      fi
+    fi
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $opt_dry_run || eval "$cmds" || func_append admincmds "
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    $opt_quiet && exit $EXIT_SUCCESS
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+	$ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+	echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
+	echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+	echo "   - add LIBDIR to the '$runpath_var' environment variable"
+	echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+	libdir=LIBDIR
+	eval flag=\"$hardcode_libdir_flag_spec\"
+
+	$ECHO "   - use the '$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+	$ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+	echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
+      fi
+      echo
+
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+	solaris2.[6789]|solaris2.1[0-9])
+	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	  echo "pages."
+	  ;;
+	*)
+	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
+	  ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
+    exit $EXIT_SUCCESS
+}
+
+test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+    $debug_cmd
+
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
+       # Allow the use of GNU shtool's install command.
+       case $nonopt in *shtool*) :;; *) false;; esac
+    then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=false
+    stripme=
+    no_mode=:
+    for arg
+    do
+      arg2=
+      if test -n "$dest"; then
+	func_append files " $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=: ;;
+      -f)
+	if $install_cp; then :; else
+	  prev=$arg
+	fi
+	;;
+      -g | -m | -o)
+	prev=$arg
+	;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  if test X-m = "X$prev" && test -n "$install_override_mode"; then
+	    arg2=$install_override_mode
+	    no_mode=false
+	  fi
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+	func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the '$prev' option requires an argument"
+
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+	func_quote_for_eval "$install_override_mode"
+	func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	func_fatal_help "no file or destination specified"
+      else
+	func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=:
+    if $isdir; then
+      destdir=$dest
+      destname=
+    else
+      func_dirname_and_basename "$dest" "" "."
+      destdir=$func_dirname_result
+      destname=$func_basename_result
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+	func_fatal_help "'$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  func_fatal_help "'$destdir' must be an absolute directory name"
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic=$magic
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	func_append staticlibs " $file"
+	;;
+
+      *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "'$file' is not a valid libtool archive"
+
+	library_names=
+	old_library=
+	relink_command=
+	func_source "$file"
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) func_append current_libdirs " $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) func_append future_libdirs " $libdir" ;;
+	  esac
+	fi
+
+	func_dirname "$file" "/" ""
+	dir=$func_dirname_result
+	func_append dir "$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  test "$inst_prefix_dir" = "$destdir" && \
+	    func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  func_warning "relinking '$file'"
+	  func_show_eval "$relink_command" \
+	    'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names; shift
+	if test -n "$1"; then
+	  realname=$1
+	  shift
+
+	  srcname=$realname
+	  test -n "$relink_command" && srcname=${realname}T
+
+	  # Install the shared library and build the symlinks.
+	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+	      'exit $?'
+	  tstripme=$stripme
+	  case $host_os in
+	  cygwin* | mingw* | pw32* | cegcc*)
+	    case $realname in
+	    *.dll.a)
+	      tstripme=
+	      ;;
+	    esac
+	    ;;
+	  os2*)
+	    case $realname in
+	    *_dll.a)
+	      tstripme=
+	      ;;
+	    esac
+	    ;;
+	  esac
+	  if test -n "$tstripme" && test -n "$striplib"; then
+	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try 'ln -sf' first, because the 'ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      test "$linkname" != "$realname" \
+		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib=$destdir/$realname
+	  func_execute_cmds "$postinstall_cmds" 'exit $?'
+	fi
+
+	# Install the pseudo-library for information purposes.
+	func_basename "$file"
+	name=$func_basename_result
+	instname=$dir/${name}i
+	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile=$destdir/$destname
+	else
+	  func_basename "$file"
+	  destfile=$func_basename_result
+	  destfile=$destdir/$destfile
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  func_lo2o "$destfile"
+	  staticdest=$func_lo2o_result
+	  ;;
+	*.$objext)
+	  staticdest=$destfile
+	  destfile=
+	  ;;
+	*)
+	  func_fatal_help "cannot copy a libtool object to '$destfile'"
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	test -n "$destfile" && \
+	  func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+	# Install the old object if enabled.
+	if test yes = "$build_old_libs"; then
+	  # Deduce the name of the old-style object file.
+	  func_lo2o "$file"
+	  staticobj=$func_lo2o_result
+	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile=$destdir/$destname
+	else
+	  func_basename "$file"
+	  destfile=$func_basename_result
+	  destfile=$destdir/$destfile
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      func_stripname '' '.exe' "$file"
+	      file=$func_stripname_result
+	      stripped_ext=.exe
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin* | *mingw*)
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      wrapper=$func_ltwrapper_scriptname_result
+	    else
+	      func_stripname '' '.exe' "$file"
+	      wrapper=$func_stripname_result
+	    fi
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if func_ltwrapper_script_p "$wrapper"; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  func_source "$wrapper"
+
+	  # Check the variables that should have been set.
+	  test -z "$generated_by_libtool_version" && \
+	    func_fatal_error "invalid libtool wrapper script '$wrapper'"
+
+	  finalize=:
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      func_source "$lib"
+	    fi
+	    libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      func_warning "'$lib' has not been installed in '$libdir'"
+	      finalize=false
+	    fi
+	  done
+
+	  relink_command=
+	  func_source "$wrapper"
+
+	  outputname=
+	  if test no = "$fast_install" && test -n "$relink_command"; then
+	    $opt_dry_run || {
+	      if $finalize; then
+	        tmpdir=`func_mktempdir`
+		func_basename "$file$stripped_ext"
+		file=$func_basename_result
+	        outputname=$tmpdir/$file
+	        # Replace the output file specification.
+	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
+
+	        $opt_quiet || {
+	          func_quote_for_expand "$relink_command"
+		  eval "func_echo $func_quote_for_expand_result"
+	        }
+	        if eval "$relink_command"; then :
+	          else
+		  func_error "error: relink '$file' with the above command before installing it"
+		  $opt_dry_run || ${RM}r "$tmpdir"
+		  continue
+	        fi
+	        file=$outputname
+	      else
+	        func_warning "cannot relink '$file'"
+	      fi
+	    }
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    func_stripname '' '.exe' "$destfile"
+	    destfile=$func_stripname_result
+	    ;;
+	  esac
+	  ;;
+	esac
+	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+	$opt_dry_run || if test -n "$outputname"; then
+	  ${RM}r "$tmpdir"
+	fi
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      func_basename "$file"
+      name=$func_basename_result
+
+      # Set up the ranlib parameters.
+      oldlib=$destdir/$name
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
+
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
+      fi
+
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
+
+    test -n "$future_libdirs" && \
+      func_warning "remember to run '$progname --finish$future_libdirs'"
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test install = "$opt_mode" && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $debug_cmd
+
+    my_outputname=$1
+    my_originator=$2
+    my_pic_p=${3-false}
+    my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
+
+    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	my_dlsyms=${my_outputname}S.c
+      else
+	func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
+
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+	# Discover the nlist of each of the dlfiles.
+	nlist=$output_objdir/$my_outputname.nm
+
+	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+	# Parse the name list into a source file.
+	func_verbose "creating $output_objdir/$my_dlsyms"
+
+	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* External symbol declarations for the compiler. */\
+"
+
+	if test yes = "$dlself"; then
+	  func_verbose "generating symbol list for '$output'"
+
+	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+	  # Add our own program objects to the symbol list.
+	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	  for progfile in $progfiles; do
+	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+	    func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
+	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -n "$exclude_expsyms"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  if test -n "$export_symbols_regex"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  # Prepare the list of exported symbols
+	  if test -z "$export_symbols"; then
+	    export_symbols=$output_objdir/$outputname.exp
+	    $opt_dry_run || {
+	      $RM $export_symbols
+	      eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	      case $host in
+	      *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+	        ;;
+	      esac
+	    }
+	  else
+	    $opt_dry_run || {
+	      eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	      case $host in
+	        *cygwin* | *mingw* | *cegcc* )
+	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+	          ;;
+	      esac
+	    }
+	  fi
+	fi
+
+	for dlprefile in $dlprefiles; do
+	  func_verbose "extracting global C symbols from '$dlprefile'"
+	  func_basename "$dlprefile"
+	  name=$func_basename_result
+          case $host in
+	    *cygwin* | *mingw* | *cegcc* )
+	      # if an import library, we need to obtain dlname
+	      if func_win32_import_lib_p "$dlprefile"; then
+	        func_tr_sh "$dlprefile"
+	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
+	        dlprefile_dlbasename=
+	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+	          # Use subshell, to avoid clobbering current variable values
+	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+	          if test -n "$dlprefile_dlname"; then
+	            func_basename "$dlprefile_dlname"
+	            dlprefile_dlbasename=$func_basename_result
+	          else
+	            # no lafile. user explicitly requested -dlpreopen <import library>.
+	            $sharedlib_from_linklib_cmd "$dlprefile"
+	            dlprefile_dlbasename=$sharedlib_from_linklib_result
+	          fi
+	        fi
+	        $opt_dry_run || {
+	          if test -n "$dlprefile_dlbasename"; then
+	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+	          else
+	            func_warning "Could not compute DLL name from $name"
+	            eval '$ECHO ": $name " >> "$nlist"'
+	          fi
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+	        }
+	      else # not an import lib
+	        $opt_dry_run || {
+	          eval '$ECHO ": $name " >> "$nlist"'
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	        }
+	      fi
+	    ;;
+	    *)
+	      $opt_dry_run || {
+	        eval '$ECHO ": $name " >> "$nlist"'
+	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	      }
+	    ;;
+          esac
+	done
+
+	$opt_dry_run || {
+	  # Make sure we have at least an empty file.
+	  test -f "$nlist" || : > "$nlist"
+
+	  if test -n "$exclude_expsyms"; then
+	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	    $MV "$nlist"T "$nlist"
+	  fi
+
+	  # Try sorting and uniquifying the output.
+	  if $GREP -v "^: " < "$nlist" |
+	      if sort -k 3 </dev/null >/dev/null 2>&1; then
+		sort -k 3
+	      else
+		sort +2
+	      fi |
+	      uniq > "$nlist"S; then
+	    :
+	  else
+	    $GREP -v "^: " < "$nlist" > "$nlist"S
+	  fi
+
+	  if test -f "$nlist"S; then
+	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+	  else
+	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	  fi
+
+	  func_show_eval '$RM "${nlist}I"'
+	  if test -n "$global_symbol_to_import"; then
+	    eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
+	  fi
+
+	  echo >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+extern LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];\
+"
+
+	  if test -s "$nlist"I; then
+	    echo >> "$output_objdir/$my_dlsyms" "\
+static void lt_syminit(void)
+{
+  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
+  for (; symbol->name; ++symbol)
+    {"
+	    $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
+	    echo >> "$output_objdir/$my_dlsyms" "\
+    }
+}"
+	  fi
+	  echo >> "$output_objdir/$my_dlsyms" "\
+LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{ {\"$my_originator\", (void *) 0},"
+
+	  if test -s "$nlist"I; then
+	    echo >> "$output_objdir/$my_dlsyms" "\
+  {\"@INIT@\", (void *) &lt_syminit},"
+	  fi
+
+	  case $need_lib_prefix in
+	  no)
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  *)
+	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  esac
+	  echo >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	} # !$opt_dry_run
+
+	pic_flag_for_symtable=
+	case "$compile_command " in
+	*" -static "*) ;;
+	*)
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+	  *-*-hpux*)
+	    pic_flag_for_symtable=" $pic_flag"  ;;
+	  *)
+	    $my_pic_p && pic_flag_for_symtable=" $pic_flag"
+	    ;;
+	  esac
+	  ;;
+	esac
+	symtab_cflags=
+	for arg in $LTCFLAGS; do
+	  case $arg in
+	  -pie | -fpie | -fPIE) ;;
+	  *) func_append symtab_cflags " $arg" ;;
+	  esac
+	done
+
+	# Now compile the dynamic symbol file.
+	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+	# Clean up the generated files.
+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
+
+	# Transform the symbol file into the correct name.
+	symfileobj=$output_objdir/${my_outputname}S.$objext
+	case $host in
+	*cygwin* | *mingw* | *cegcc* )
+	  if test -f "$output_objdir/$my_outputname.def"; then
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	  else
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  fi
+	  ;;
+	*)
+	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  ;;
+	esac
+	;;
+      *)
+	func_fatal_error "unknown suffix for '$my_dlsyms'"
+	;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
+
+      # Nullify the symbol file.
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
+    fi
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
+func_win32_libid ()
+{
+  $debug_cmd
+
+  win32_libid_type=unknown
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      case $nm_interface in
+      "MS dumpbin")
+	if func_cygming_ms_implib_p "$1" ||
+	   func_cygming_gnu_implib_p "$1"
+	then
+	  win32_nmres=import
+	else
+	  win32_nmres=
+	fi
+	;;
+      *)
+	func_to_tool_file "$1" func_convert_file_msys_to_w32
+	win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+	  $SED -n -e '
+	    1,100{
+		/ I /{
+		    s|.*|import|
+		    p
+		    q
+		}
+	    }'`
+	;;
+      esac
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
+
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $debug_cmd
+
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $debug_cmd
+
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[	 ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive that possess that section. Heuristic: eliminate
+    # all those that have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $debug_cmd
+
+  if func_cygming_gnu_implib_p "$1"; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1"; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=
+  fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $debug_cmd
+
+    f_ex_an_ar_dir=$1; shift
+    f_ex_an_ar_oldlib=$1
+    if test yes = "$lock_old_archive_extraction"; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+		   'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test yes = "$lock_old_archive_extraction"; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $debug_cmd
+
+    my_gentop=$1; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=
+    my_xlib=
+    my_xabs=
+    my_xdir=
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib=$func_basename_result
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  func_arith $extracted_serial + 1
+	  extracted_serial=$func_arith_result
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir=$my_gentop/$my_xlib_u
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+	func_verbose "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	$opt_dry_run || {
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  func_basename "$darwin_archive"
+	  darwin_base_archive=$func_basename_result
+	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+	  if test -n "$darwin_arches"; then
+	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches; do
+	      func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
+	      $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
+	      cd "unfat-$$/$darwin_base_archive-$darwin_arch"
+	      func_extract_an_archive "`pwd`" "$darwin_base_archive"
+	      cd "$darwin_curdir"
+	      $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
+	    done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+	      $LIPO -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    $RM -rf unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd $darwin_orig_dir
+	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	} # !$opt_dry_run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+	;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+    done
+
+    func_extract_archives_result=$my_oldobjs
+}
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory where it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+	func_emit_wrapper_arg1=${1-no}
+
+	$ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ that is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options that match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+"
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test yes = "$fast_install"; then
+	  $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
+
+	  $ECHO "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	\$ECHO \"\$relink_command_output\" >&2
+	$RM \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+	else
+	  $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$ECHO "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# fixup the dll searchpath if we need to.
+	#
+	# Fix the DLL searchpath if we need to.  Do this before prepending
+	# to shlibpath, because on Windows, both are PATH and uninstalled
+	# libraries must come first.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	# Export our shlibpath_var if we have one.
+	if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	$ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+      func_exec_program \${1+\"\$@\"}
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+	cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+*/
+EOF
+	    cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* declarations of non-ANSI functions */
+#if defined __MINGW32__
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined __CYGWIN__
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined other_platform || defined ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined _MSC_VER
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+#elif defined __MINGW32__
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined __CYGWIN__
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined other platforms ... */
+#endif
+
+#if defined PATH_MAX
+# define LT_PATHMAX PATH_MAX
+#elif defined MAXPATHLEN
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+/* path handling portability macros */
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
+  defined __OS2__
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free (stale); stale = 0; } \
+} while (0)
+
+#if defined LT_DEBUGWRAPPER
+static int lt_debug = 1;
+#else
+static int lt_debug = 0;
+#endif
+
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
+EOF
+
+	    cat <<EOF
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+	    if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_path "$temp_rpath"
+	      cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test -n "$dllsearchpath"; then
+              func_to_host_path "$dllsearchpath:"
+	      cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test yes = "$fast_install"; then
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+	    else
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+	    fi
+
+
+	    cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  int rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  newargz = XMALLOC (char *, (size_t) argc + 1);
+
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (STREQ (argv[i], dumpscript_opt))
+	{
+EOF
+	    case $host in
+	      *mingw* | *cygwin* )
+		# make stdout use "unix" line endings
+		echo "          setmode(1,_O_BINARY);"
+		;;
+	      esac
+
+	    cat <<"EOF"
+	  lt_dump_script (stdout);
+	  return 0;
+	}
+      if (STREQ (argv[i], debug_opt))
+	{
+          lt_debug = 1;
+          continue;
+	}
+      if (STREQ (argv[i], ltwrapper_option_prefix))
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+		    "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
+
+EOF
+	    cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
+EOF
+	    cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+		  tmp_pathspec);
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+		  actual_cwrapper_path);
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(main) libtool target name: %s\n",
+		  target_name);
+EOF
+
+	    cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
+
+	    cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
+
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
+
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
+
+	    case $host_os in
+	      mingw*)
+	    cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+	*p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+	*p = '/';
+      }
+  }
+EOF
+	    ;;
+	    esac
+
+	    cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
+
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+		  nonnull (lt_argv_zero));
+  for (i = 0; i < newargc; i++)
+    {
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+		      i, nonnull (newargz[i]));
+    }
+
+EOF
+
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  newargz = prepare_spawn (newargz);
+  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      lt_debugprintf (__FILE__, __LINE__,
+		      "(main) failed to launch target \"%s\": %s\n",
+		      lt_argv_zero, nonnull (strerror (errno)));
+      return 127;
+    }
+  return rval;
+EOF
+		;;
+	      *)
+		cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+		;;
+	    esac
+
+	    cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+			  string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable (const char *path)
+{
+  struct stat st;
+
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
+
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
+
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
+  if ((!path) || (!*path))
+    return 0;
+
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  size_t tmp_len;
+  char *concat_name;
+
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+	return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+	{
+	  concat_name = xstrdup (wrapper);
+	  if (check_executable (concat_name))
+	    return concat_name;
+	  XFREE (concat_name);
+	}
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+	has_slash = 1;
+	break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+	{
+	  for (p = path; *p; p = p_next)
+	    {
+	      const char *q;
+	      size_t p_len;
+	      for (q = p; *q; q++)
+		if (IS_PATH_SEPARATOR (*q))
+		  break;
+	      p_len = (size_t) (q - p);
+	      p_next = (*q == '\0' ? q : q + 1);
+	      if (p_len == 0)
+		{
+		  /* empty path: current directory */
+		  if (getcwd (tmp, LT_PATHMAX) == NULL)
+		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
+		  tmp_len = strlen (tmp);
+		  concat_name =
+		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, tmp, tmp_len);
+		  concat_name[tmp_len] = '/';
+		  strcpy (concat_name + tmp_len + 1, wrapper);
+		}
+	      else
+		{
+		  concat_name =
+		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, p, p_len);
+		  concat_name[p_len] = '/';
+		  strcpy (concat_name + p_len + 1, wrapper);
+		}
+	      if (check_executable (concat_name))
+		return concat_name;
+	      XFREE (concat_name);
+	    }
+	}
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      lt_debugprintf (__FILE__, __LINE__,
+		      "checking path component for symlinks: %s\n",
+		      tmp_pathspec);
+      if (lstat (tmp_pathspec, &s) == 0)
+	{
+	  if (S_ISLNK (s.st_mode) != 0)
+	    {
+	      has_symlinks = 1;
+	      break;
+	    }
+
+	  /* search backwards for last DIR_SEPARATOR */
+	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    p--;
+	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    {
+	      /* no more DIR_SEPARATORS left */
+	      break;
+	    }
+	  *p = '\0';
+	}
+      else
+	{
+	  lt_fatal (__FILE__, __LINE__,
+		    "error accessing file \"%s\": %s",
+		    tmp_pathspec, nonnull (strerror (errno)));
+	}
+    }
+  XFREE (tmp_pathspec);
+
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
+
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal (__FILE__, __LINE__,
+		"could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert (str != NULL);
+  assert (pat != NULL);
+
+  len = strlen (str);
+  patlen = strlen (pat);
+
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (STREQ (str, pat))
+	*str = '\0';
+    }
+  return str;
+}
+
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
+static void
+lt_error_core (int exit_status, const char *file,
+	       int line, const char *mode,
+	       const char *message, va_list ap)
+{
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *file, int line, const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+  va_end (ap);
+}
+
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    size_t len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      size_t orig_value_len = strlen (orig_value);
+      size_t add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      size_t len = strlen (new_value);
+      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[--len] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+EOF
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = XMALLOC (char *, argc + 1);
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+	new_argv[i] = xstrdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+	{
+	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+	  size_t length;
+	  unsigned int backslashes;
+	  const char *s;
+	  char *quoted_string;
+	  char *p;
+
+	  length = 0;
+	  backslashes = 0;
+	  if (quote_around)
+	    length++;
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		length += backslashes + 1;
+	      length++;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    length += backslashes + 1;
+
+	  quoted_string = XMALLOC (char, length + 1);
+
+	  p = quoted_string;
+	  backslashes = 0;
+	  if (quote_around)
+	    *p++ = '"';
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		{
+		  unsigned int j;
+		  for (j = backslashes + 1; j > 0; j--)
+		    *p++ = '\\';
+		}
+	      *p++ = c;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    {
+	      unsigned int j;
+	      for (j = backslashes; j > 0; j--)
+		*p++ = '\\';
+	      *p++ = '"';
+	    }
+	  *p = '\0';
+
+	  new_argv[i] = quoted_string;
+	}
+      else
+	new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
+
+  return new_argv;
+}
+EOF
+		;;
+	    esac
+
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+	    func_emit_wrapper yes |
+	      $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
+            cat <<"EOF"
+}
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $debug_cmd
+
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+    $debug_cmd
+
+    case " $compile_command " in
+    *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+      suncc_use_cstd_abi=no
+      ;;
+    *)
+      suncc_use_cstd_abi=yes
+      ;;
+    esac
+}
+
+# func_mode_link arg...
+func_mode_link ()
+{
+    $debug_cmd
+
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # what system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll that has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
+
+    avoid_version=no
+    bindir=
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    os2dllname=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=false
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module=$wl-single_module
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+	test yes != "$build_libtool_libs" \
+	  && func_fatal_configuration "cannot build a shared library"
+	build_old_libs=no
+	break
+	;;
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
+	  if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
+	    func_warning "complete static linking is impossible in this configuration"
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	-static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg=$1
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  func_append compile_command " @OUTPUT@"
+	  func_append finalize_command " @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	bindir)
+	  bindir=$arg
+	  prev=
+	  continue
+	  ;;
+	dlfiles|dlprefiles)
+	  $preload || {
+	    # Add the symbol object into the linking commands.
+	    func_append compile_command " @SYMFILE@"
+	    func_append finalize_command " @SYMFILE@"
+	    preload=:
+	  }
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test no = "$dlself"; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test dlprefiles = "$prev"; then
+	      dlself=yes
+	    elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test dlfiles = "$prev"; then
+	      func_append dlfiles " $arg"
+	    else
+	      func_append dlprefiles " $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols=$arg
+	  test -f "$arg" \
+	    || func_fatal_error "symbol file '$arg' does not exist"
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex=$arg
+	  prev=
+	  continue
+	  ;;
+	framework)
+	  case $host in
+	    *-*-darwin*)
+	      case "$deplibs " in
+		*" $qarg.ltframework "*) ;;
+		*) func_append deplibs " $qarg.ltframework" # this is fixed later
+		   ;;
+	      esac
+	      ;;
+	  esac
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir=$arg
+	  prev=
+	  continue
+	  ;;
+	mllvm)
+	  # Clang does not use LLVM to link, so we can simply discard any
+	  # '-mllvm $arg' options when doing the link step.
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat "$save_arg"`
+	    do
+#	      func_append moreargs " $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if func_lalib_unsafe_p "$arg"; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		func_source "$arg"
+
+		if test -z "$pic_object" ||
+		   test -z "$non_pic_object" ||
+		   test none = "$pic_object" &&
+		   test none = "$non_pic_object"; then
+		  func_fatal_error "cannot find name of object for '$arg'"
+		fi
+
+		# Extract subdirectory from the argument.
+		func_dirname "$arg" "/" ""
+		xdir=$func_dirname_result
+
+		if test none != "$pic_object"; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object=$xdir$pic_object
+
+		  if test dlfiles = "$prev"; then
+		    if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+		      func_append dlfiles " $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test dlprefiles = "$prev"; then
+		    # Preload the old-style object.
+		    func_append dlprefiles " $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  func_append libobjs " $pic_object"
+		  arg=$pic_object
+		fi
+
+		# Non-PIC object.
+		if test none != "$non_pic_object"; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object=$xdir$non_pic_object
+
+		  # A standard non-PIC object
+		  func_append non_pic_objects " $non_pic_object"
+		  if test -z "$pic_object" || test none = "$pic_object"; then
+		    arg=$non_pic_object
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object=$pic_object
+		  func_append non_pic_objects " $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if $opt_dry_run; then
+		  # Extract subdirectory from the argument.
+		  func_dirname "$arg" "/" ""
+		  xdir=$func_dirname_result
+
+		  func_lo2o "$arg"
+		  pic_object=$xdir$objdir/$func_lo2o_result
+		  non_pic_object=$xdir$func_lo2o_result
+		  func_append libobjs " $pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+	        else
+		  func_fatal_error "'$arg' is not a valid libtool object"
+		fi
+	      fi
+	    done
+	  else
+	    func_fatal_error "link input file '$arg' does not exist"
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	os2dllname)
+	  os2dllname=$arg
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex=$arg
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release=-$arg
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    func_fatal_error "only absolute run-paths are allowed"
+	    ;;
+	  esac
+	  if test rpath = "$prev"; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) func_append rpath " $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) func_append xrpath " $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	shrext)
+	  shrext_cmds=$arg
+	  prev=
+	  continue
+	  ;;
+	weak)
+	  func_append weak_libs " $arg"
+	  prev=
+	  continue
+	  ;;
+	xcclinker)
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xcompiler)
+	  func_append compiler_flags " $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $wl$qarg"
+	  prev=
+	  func_append compile_command " $wl$qarg"
+	  func_append finalize_command " $wl$qarg"
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg=$arg
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  # See comment for -static flag below, for more details.
+	  func_append compile_command " $link_static_flag"
+	  func_append finalize_command " $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	func_fatal_error "'-allow-undefined' must not be used because it is the default"
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -bindir)
+	prev=bindir
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  func_fatal_error "more than one -exported-symbols argument is not allowed"
+	fi
+	if test X-export-symbols = "X$arg"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework)
+	prev=framework
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	func_stripname "-L" '' "$arg"
+	if test -z "$func_stripname_result"; then
+	  if test "$#" -gt 0; then
+	    func_fatal_error "require no space between '-L' and '$1'"
+	  else
+	    func_fatal_error "need path for '-L' option"
+	  fi
+	fi
+	func_resolve_sysroot "$func_stripname_result"
+	dir=$func_resolve_sysroot_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  test -z "$absdir" && \
+	    func_fatal_error "cannot determine absolute directory name of '$dir'"
+	  dir=$absdir
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "* | *" $arg "*)
+	  # Will only happen for absolute or sysroot arguments
+	  ;;
+	*)
+	  # Preserve sysroot, but never include relative directories
+	  case $dir in
+	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+	    *) func_append deplibs " -L$dir" ;;
+	  esac
+	  func_append lib_search_path " $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  ::) dllsearchpath=$dir;;
+	  *) func_append dllsearchpath ":$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) func_append dllsearchpath ":$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test X-lc = "X$arg" || test X-lm = "X$arg"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    func_append deplibs " System.ltframework"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  esac
+	elif test X-lc_r = "X$arg"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	func_append deplibs " $arg"
+	continue
+	;;
+
+      -mllvm)
+	prev=mllvm
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot|--sysroot)
+	func_append compiler_flags " $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	prev=xcompiler
+	continue
+	;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+	func_append compiler_flags " $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	case "$new_inherited_linker_flags " in
+	    *" $arg "*) ;;
+	    * ) func_append new_inherited_linker_flags " $arg" ;;
+	esac
+	continue
+	;;
+
+      -multi_module)
+	single_module=$wl-multi_module
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # and Darwin in order for the loader to find any dlls it needs.
+	  func_warning "'-no-install' is ignored for $host"
+	  func_warning "assuming '-no-fast-install' instead"
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -os2dllname)
+	prev=os2dllname
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	func_stripname '-R' '' "$arg"
+	dir=$func_stripname_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	=*)
+	  func_stripname '=' '' "$dir"
+	  dir=$lt_sysroot$func_stripname_result
+	  ;;
+	*)
+	  func_fatal_error "only absolute run-paths are allowed"
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) func_append xrpath " $dir" ;;
+	esac
+	continue
+	;;
+
+      -shared)
+	# The effects of -shared are defined in a previous loop.
+	continue
+	;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -weak)
+        prev=weak
+	continue
+	;;
+
+      -Wc,*)
+	func_stripname '-Wc,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs=$IFS; IFS=,
+	for flag in $args; do
+	  IFS=$save_ifs
+          func_quote_for_eval "$flag"
+	  func_append arg " $func_quote_for_eval_result"
+	  func_append compiler_flags " $func_quote_for_eval_result"
+	done
+	IFS=$save_ifs
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Wl,*)
+	func_stripname '-Wl,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs=$IFS; IFS=,
+	for flag in $args; do
+	  IFS=$save_ifs
+          func_quote_for_eval "$flag"
+	  func_append arg " $wl$func_quote_for_eval_result"
+	  func_append compiler_flags " $wl$func_quote_for_eval_result"
+	  func_append linker_flags " $func_quote_for_eval_result"
+	done
+	IFS=$save_ifs
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # -msg_* for osf cc
+      -msg_*)
+	func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+	;;
+
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # -fstack-protector*   stack protector flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -stdlib=*            select c++ std lib with clang
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+        func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        func_append compiler_flags " $arg"
+        continue
+        ;;
+
+      -Z*)
+        if test os2 = "`expr $host : '.*\(os2\)'`"; then
+          # OS/2 uses -Zxxx to specify OS/2-specific options
+	  compiler_flags="$compiler_flags $arg"
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  case $arg in
+	  -Zlinker | -Zstack)
+	    prev=xcompiler
+	    ;;
+	  esac
+	  continue
+        else
+	  # Otherwise treat like 'Some other compiler flag' below
+	  func_quote_for_eval "$arg"
+	  arg=$func_quote_for_eval_result
+        fi
+	;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+	;;
+
+      *.$objext)
+	# A standard object.
+	func_append objs " $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if func_lalib_unsafe_p "$arg"; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  func_source "$arg"
+
+	  if test -z "$pic_object" ||
+	     test -z "$non_pic_object" ||
+	     test none = "$pic_object" &&
+	     test none = "$non_pic_object"; then
+	    func_fatal_error "cannot find name of object for '$arg'"
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  func_dirname "$arg" "/" ""
+	  xdir=$func_dirname_result
+
+	  test none = "$pic_object" || {
+	    # Prepend the subdirectory the object is found in.
+	    pic_object=$xdir$pic_object
+
+	    if test dlfiles = "$prev"; then
+	      if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+		func_append dlfiles " $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test dlprefiles = "$prev"; then
+	      # Preload the old-style object.
+	      func_append dlprefiles " $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    func_append libobjs " $pic_object"
+	    arg=$pic_object
+	  }
+
+	  # Non-PIC object.
+	  if test none != "$non_pic_object"; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object=$xdir$non_pic_object
+
+	    # A standard non-PIC object
+	    func_append non_pic_objects " $non_pic_object"
+	    if test -z "$pic_object" || test none = "$pic_object"; then
+	      arg=$non_pic_object
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object=$pic_object
+	    func_append non_pic_objects " $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if $opt_dry_run; then
+	    # Extract subdirectory from the argument.
+	    func_dirname "$arg" "/" ""
+	    xdir=$func_dirname_result
+
+	    func_lo2o "$arg"
+	    pic_object=$xdir$objdir/$func_lo2o_result
+	    non_pic_object=$xdir$func_lo2o_result
+	    func_append libobjs " $pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  else
+	    func_fatal_error "'$arg' is not a valid libtool object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	func_append deplibs " $arg"
+	func_append old_deplibs " $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	func_resolve_sysroot "$arg"
+	if test dlfiles = "$prev"; then
+	  # This library was specified with -dlopen.
+	  func_append dlfiles " $func_resolve_sysroot_result"
+	  prev=
+	elif test dlprefiles = "$prev"; then
+	  # The library was specified with -dlpreopen.
+	  func_append dlprefiles " $func_resolve_sysroot_result"
+	  prev=
+	else
+	  func_append deplibs " $func_resolve_sysroot_result"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the '$prevarg' option requires an argument"
+
+    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname=$func_basename_result
+    libobjs_save=$libobjs
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    # Definition is injected by LT_CONFIG during libtool generation.
+    func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
+    func_dirname "$output" "/" ""
+    output_objdir=$func_dirname_result$objdir
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_preserve_dup_deps; then
+	case "$libs " in
+	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
+	esac
+      fi
+      func_append libs " $deplib"
+    done
+
+    if test lib = "$linkmode"; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
+	  esac
+	  func_append pre_post_deps " $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+	passes="conv dlpreopen link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=false
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test lib,link = "$linkmode,$pass"; then
+	## FIXME: Find the place where the list is rebuilt in the wrong
+	##        order, and fix it there properly
+        tmp_deplibs=
+	for deplib in $deplibs; do
+	  tmp_deplibs="$deplib $tmp_deplibs"
+	done
+	deplibs=$tmp_deplibs
+      fi
+
+      if test lib,link = "$linkmode,$pass" ||
+	 test prog,scan = "$linkmode,$pass"; then
+	libs=$deplibs
+	deplibs=
+      fi
+      if test prog = "$linkmode"; then
+	case $pass in
+	dlopen) libs=$dlfiles ;;
+	dlpreopen) libs=$dlprefiles ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test lib,dlpreopen = "$linkmode,$pass"; then
+	# Collect and forward deplibs of preopened libtool libs
+	for lib in $dlprefiles; do
+	  # Ignore non-libtool-libs
+	  dependency_libs=
+	  func_resolve_sysroot "$lib"
+	  case $lib in
+	  *.la)	func_source "$func_resolve_sysroot_result" ;;
+	  esac
+
+	  # Collect preopened libtool deplibs, except any this library
+	  # has declared as weak libs
+	  for deplib in $dependency_libs; do
+	    func_basename "$deplib"
+            deplib_base=$func_basename_result
+	    case " $weak_libs " in
+	    *" $deplib_base "*) ;;
+	    *) func_append deplibs " $deplib" ;;
+	    esac
+	  done
+	done
+	libs=$dlprefiles
+      fi
+      if test dlopen = "$pass"; then
+	# Collect dlpreopened libraries
+	save_deplibs=$deplibs
+	deplibs=
+      fi
+
+      for deplib in $libs; do
+	lib=
+	found=false
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+	  if test prog,link = "$linkmode,$pass"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    func_append compiler_flags " $deplib"
+	    if test lib = "$linkmode"; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test lib != "$linkmode" && test prog != "$linkmode"; then
+	    func_warning "'-l' is ignored for archives/objects"
+	    continue
+	  fi
+	  func_stripname '-l' '' "$deplib"
+	  name=$func_stripname_result
+	  if test lib = "$linkmode"; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib=$searchdir/lib$name$search_ext
+	      if test -f "$lib"; then
+		if test .la = "$search_ext"; then
+		  found=:
+		else
+		  found=false
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if $found; then
+	    # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if func_lalib_p "$lib"; then
+		  library_names=
+		  old_library=
+		  func_source "$lib"
+		  for l in $old_library $library_names; do
+		    ll=$l
+		  done
+		  if test "X$ll" = "X$old_library"; then # only static version available
+		    found=false
+		    func_dirname "$lib" "" "."
+		    ladir=$func_dirname_result
+		    lib=$ladir/$old_library
+		    if test prog,link = "$linkmode,$pass"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+		;;
+	      *) ;;
+	      esac
+	    fi
+	  else
+	    # deplib doesn't seem to be a libtool library
+	    if test prog,link = "$linkmode,$pass"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  fi
+	  ;; # -l
+	*.ltframework)
+	  if test prog,link = "$linkmode,$pass"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    deplibs="$deplib $deplibs"
+	    if test lib = "$linkmode"; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test conv = "$pass" && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    func_stripname '-L' '' "$deplib"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
+	    ;;
+	  prog)
+	    if test conv = "$pass"; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test scan = "$pass"; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    func_stripname '-L' '' "$deplib"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
+	    ;;
+	  *)
+	    func_warning "'-L' is ignored for archives/objects"
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test link = "$pass"; then
+	    func_stripname '-R' '' "$deplib"
+	    func_resolve_sysroot "$func_stripname_result"
+	    dir=$func_resolve_sysroot_result
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) func_append xrpath " $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la)
+	  func_resolve_sysroot "$deplib"
+	  lib=$func_resolve_sysroot_result
+	  ;;
+	*.$libext)
+	  if test conv = "$pass"; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    # Linking convenience modules into shared libraries is allowed,
+	    # but linking other static libraries is non-portable.
+	    case " $dlpreconveniencelibs " in
+	    *" $deplib "*) ;;
+	    *)
+	      valid_a_lib=false
+	      case $deplibs_check_method in
+		match_pattern*)
+		  set dummy $deplibs_check_method; shift
+		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		    valid_a_lib=:
+		  fi
+		;;
+		pass_all)
+		  valid_a_lib=:
+		;;
+	      esac
+	      if $valid_a_lib; then
+		echo
+		$ECHO "*** Warning: Linking the shared library $output against the"
+		$ECHO "*** static library $deplib is not portable!"
+		deplibs="$deplib $deplibs"
+	      else
+		echo
+		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because the file extensions .$libext of this argument makes me believe"
+		echo "*** that it is just a static archive that I should not use here."
+	      fi
+	      ;;
+	    esac
+	    continue
+	    ;;
+	  prog)
+	    if test link != "$pass"; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test conv = "$pass"; then
+	    deplibs="$deplib $deplibs"
+	  elif test prog = "$linkmode"; then
+	    if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      func_append newdlprefiles " $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      func_append newdlfiles " $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=:
+	  continue
+	  ;;
+	esac # case $deplib
+
+	$found || test -f "$lib" \
+	  || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$lib" \
+	  || func_fatal_error "'$lib' is not a valid libtool archive"
+
+	func_dirname "$lib" "" "."
+	ladir=$func_dirname_result
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	inherited_linker_flags=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	func_source "$lib"
+
+	# Convert "-framework foo" to "foo.ltframework"
+	if test -n "$inherited_linker_flags"; then
+	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+	    case " $new_inherited_linker_flags " in
+	      *" $tmp_inherited_linker_flag "*) ;;
+	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
+	    esac
+	  done
+	fi
+	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	if test lib,link = "$linkmode,$pass" ||
+	   test prog,scan = "$linkmode,$pass" ||
+	   { test prog != "$linkmode" && test lib != "$linkmode"; }; then
+	  test -n "$dlopen" && func_append dlfiles " $dlopen"
+	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
+	fi
+
+	if test conv = "$pass"; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      func_fatal_error "cannot find name of link library for '$lib'"
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    func_append convenience " $ladir/$objdir/$old_library"
+	    func_append old_convenience " $ladir/$objdir/$old_library"
+	  elif test prog != "$linkmode" && test lib != "$linkmode"; then
+	    func_fatal_error "'$lib' is not a convenience library"
+	  fi
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    deplibs="$deplib $deplibs"
+	    if $opt_preserve_dup_deps; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+	      esac
+	    fi
+	    func_append tmp_libs " $deplib"
+	  done
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	if test -n "$old_library" &&
+	   { test yes = "$prefer_static_libs" ||
+	     test built,no = "$prefer_static_libs,$installed"; }; then
+	  linklib=$old_library
+	else
+	  for l in $old_library $library_names; do
+	    linklib=$l
+	  done
+	fi
+	if test -z "$linklib"; then
+	  func_fatal_error "cannot find name of link library for '$lib'"
+	fi
+
+	# This library was specified with -dlopen.
+	if test dlopen = "$pass"; then
+	  test -z "$libdir" \
+	    && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
+	  if test -z "$dlname" ||
+	     test yes != "$dlopen_support" ||
+	     test no = "$build_libtool_libs"
+	  then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    func_append dlprefiles " $lib $dependency_libs"
+	  else
+	    func_append newdlfiles " $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    func_warning "cannot determine absolute directory name of '$ladir'"
+	    func_warning "passing it literally to the linker, although it might fail"
+	    abs_ladir=$ladir
+	  fi
+	  ;;
+	esac
+	func_basename "$lib"
+	laname=$func_basename_result
+
+	# Find the relevant object directory and library name.
+	if test yes = "$installed"; then
+	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    func_warning "library '$lib' was moved."
+	    dir=$ladir
+	    absdir=$abs_ladir
+	    libdir=$abs_ladir
+	  else
+	    dir=$lt_sysroot$libdir
+	    absdir=$lt_sysroot$libdir
+	  fi
+	  test yes = "$hardcode_automatic" && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir=$ladir
+	    absdir=$abs_ladir
+	    # Remove this search path later
+	    func_append notinst_path " $abs_ladir"
+	  else
+	    dir=$ladir/$objdir
+	    absdir=$abs_ladir/$objdir
+	    # Remove this search path later
+	    func_append notinst_path " $abs_ladir"
+	  fi
+	fi # $installed = yes
+	func_stripname 'lib' '.la' "$laname"
+	name=$func_stripname_result
+
+	# This library was specified with -dlpreopen.
+	if test dlpreopen = "$pass"; then
+	  if test -z "$libdir" && test prog = "$linkmode"; then
+	    func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
+	  fi
+	  case $host in
+	    # special handling for platforms with PE-DLLs.
+	    *cygwin* | *mingw* | *cegcc* )
+	      # Linker will automatically link against shared library if both
+	      # static and shared are present.  Therefore, ensure we extract
+	      # symbols from the import library if a shared library is present
+	      # (otherwise, the dlopen module name will be incorrect).  We do
+	      # this by putting the import library name into $newdlprefiles.
+	      # We recover the dlopen module name by 'saving' the la file
+	      # name in a special purpose variable, and (later) extracting the
+	      # dlname from the la file.
+	      if test -n "$dlname"; then
+	        func_tr_sh "$dir/$linklib"
+	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+	        func_append newdlprefiles " $dir/$linklib"
+	      else
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      fi
+	    ;;
+	    * )
+	      # Prefer using a static library (so that no silly _DYNAMIC symbols
+	      # are required to link).
+	      if test -n "$old_library"; then
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      # Otherwise, use the dlname, so that lt_dlopen finds it.
+	      elif test -n "$dlname"; then
+	        func_append newdlprefiles " $dir/$dlname"
+	      else
+	        func_append newdlprefiles " $dir/$linklib"
+	      fi
+	    ;;
+	  esac
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test lib = "$linkmode"; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test prog,link = "$linkmode,$pass"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test prog = "$linkmode" && test link != "$pass"; then
+	  func_append newlib_search_path " $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=false
+	  if test no != "$link_all_deplibs" || test -z "$library_names" ||
+	     test no = "$build_libtool_libs"; then
+	    linkalldeplibs=:
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) func_stripname '-L' '' "$deplib"
+	         func_resolve_sysroot "$func_stripname_result"
+	         func_append newlib_search_path " $func_resolve_sysroot_result"
+		 ;;
+	    esac
+	    # Need to link against all dependency_libs?
+	    if $linkalldeplibs; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if $opt_preserve_dup_deps; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+	      esac
+	    fi
+	    func_append tmp_libs " $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test prog,link = "$linkmode,$pass"; then
+	  if test -n "$library_names" &&
+	     { { test no = "$prefer_static_libs" ||
+	         test built,yes = "$prefer_static_libs,$installed"; } ||
+	       test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
+	      # Make sure the rpath contains only unique directories.
+	      case $temp_rpath: in
+	      *"$absdir:"*) ;;
+	      *) func_append temp_rpath "$absdir:" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) func_append compile_rpath " $absdir" ;;
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) func_append finalize_rpath " $libdir" ;;
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if $alldeplibs &&
+	     { test pass_all = "$deplibs_check_method" ||
+	       { test yes = "$build_libtool_libs" &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test built = "$use_static_libs" && test yes = "$installed"; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test no = "$use_static_libs" || test -z "$old_library"; }; then
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc* | *os2*)
+	      # No point in relinking DLLs because paths are not encoded
+	      func_append notinst_deplibs " $lib"
+	      need_relink=no
+	    ;;
+	  *)
+	    if test no = "$installed"; then
+	      func_append notinst_deplibs " $lib"
+	      need_relink=yes
+	    fi
+	    ;;
+	  esac
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on some
+	  # systems (darwin).  Don't bleat about dlopened modules though!
+	  dlopenmodule=
+	  for dlpremoduletest in $dlprefiles; do
+	    if test "X$dlpremoduletest" = "X$lib"; then
+	      dlopenmodule=$dlpremoduletest
+	      break
+	    fi
+	  done
+	  if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
+	    echo
+	    if test prog = "$linkmode"; then
+	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $ECHO "*** $linklib is not portable!"
+	  fi
+	  if test lib = "$linkmode" &&
+	     test yes = "$hardcode_into_libs"; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) func_append compile_rpath " $absdir" ;;
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) func_append finalize_rpath " $libdir" ;;
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    shift
+	    realname=$1
+	    shift
+	    libname=`eval "\\$ECHO \"$libname_spec\""`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname=$dlname
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw* | *cegcc* | *os2*)
+	        func_arith $current - $age
+		major=$func_arith_result
+		versuffix=-$major
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname=$realname
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot=$soname
+	    func_basename "$soroot"
+	    soname=$func_basename_result
+	    func_stripname 'lib' '.dll' "$soname"
+	    newlib=libimp-$func_stripname_result.a
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      func_verbose "extracting exported symbol list from '$soname'"
+	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      func_verbose "generating import library for '$soname'"
+	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test prog = "$linkmode" || test relink != "$opt_mode"; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test no = "$hardcode_direct"; then
+		add=$dir/$linklib
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
+		  *-*-sysv4*uw2*) add_dir=-L$dir ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir=-L$dir ;;
+		  *-*-darwin* )
+		    # if the lib is a (non-dlopened) module then we cannot
+		    # link against it, someone is ignoring the earlier warnings
+		    if /usr/bin/file -L $add 2> /dev/null |
+			 $GREP ": [^:]* bundle" >/dev/null; then
+		      if test "X$dlopenmodule" != "X$lib"; then
+			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
+			if test -z "$old_library"; then
+			  echo
+			  echo "*** And there doesn't seem to be a static archive available"
+			  echo "*** The link will probably fail, sorry"
+			else
+			  add=$dir/$old_library
+			fi
+		      elif test -n "$old_library"; then
+			add=$dir/$old_library
+		      fi
+		    fi
+		esac
+	      elif test no = "$hardcode_minus_L"; then
+		case $host in
+		*-*-sunos*) add_shlibpath=$dir ;;
+		esac
+		add_dir=-L$dir
+		add=-l$name
+	      elif test no = "$hardcode_shlibpath_var"; then
+		add_shlibpath=$dir
+		add=-l$name
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test yes = "$hardcode_direct" &&
+	         test no = "$hardcode_direct_absolute"; then
+		add=$dir/$linklib
+	      elif test yes = "$hardcode_minus_L"; then
+		add_dir=-L$absdir
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      func_append add_dir " -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add=-l$name
+	      elif test yes = "$hardcode_shlibpath_var"; then
+		add_shlibpath=$dir
+		add=-l$name
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test yes != "$lib_linked"; then
+	      func_fatal_configuration "unsupported hardcode properties"
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test prog = "$linkmode"; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test yes != "$hardcode_direct" &&
+		 test yes != "$hardcode_minus_L" &&
+		 test yes = "$hardcode_shlibpath_var"; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) func_append finalize_shlibpath "$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test prog = "$linkmode" || test relink = "$opt_mode"; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test yes = "$hardcode_direct" &&
+	       test no = "$hardcode_direct_absolute"; then
+	      add=$libdir/$linklib
+	    elif test yes = "$hardcode_minus_L"; then
+	      add_dir=-L$libdir
+	      add=-l$name
+	    elif test yes = "$hardcode_shlibpath_var"; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) func_append finalize_shlibpath "$libdir:" ;;
+	      esac
+	      add=-l$name
+	    elif test yes = "$hardcode_automatic"; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib"; then
+		add=$inst_prefix_dir$libdir/$linklib
+	      else
+		add=$libdir/$linklib
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir=-L$libdir
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    func_append add_dir " -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add=-l$name
+	    fi
+
+	    if test prog = "$linkmode"; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test prog = "$linkmode"; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test unsupported != "$hardcode_direct"; then
+	    test -n "$old_library" && linklib=$old_library
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test yes = "$build_libtool_libs"; then
+	  # Not a shared library
+	  if test pass_all != "$deplibs_check_method"; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    echo
+	    $ECHO "*** Warning: This system cannot link to static lib archive $lib."
+	    echo "*** I have the capability to make that library automatically link in when"
+	    echo "*** you link to this library.  But I can only do this if you have a"
+	    echo "*** shared version of the library, which you do not appear to have."
+	    if test yes = "$module"; then
+	      echo "*** But as you try to build a module library, libtool will still create "
+	      echo "*** a static module, that should work as long as the dlopening application"
+	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		echo
+		echo "*** However, this would only work if libtool was able to extract symbol"
+		echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+		echo "*** not find such a program.  So, this module is probably useless."
+		echo "*** 'nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test no = "$build_old_libs"; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test lib = "$linkmode"; then
+	  if test -n "$dependency_libs" &&
+	     { test yes != "$hardcode_into_libs" ||
+	       test yes = "$build_old_libs" ||
+	       test yes = "$link_static"; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) func_stripname '-R' '' "$libdir"
+	           temp_xrpath=$func_stripname_result
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) func_append xrpath " $temp_xrpath";;
+		   esac;;
+	      *) func_append temp_deplibs " $libdir";;
+	      esac
+	    done
+	    dependency_libs=$temp_deplibs
+	  fi
+
+	  func_append newlib_search_path " $absdir"
+	  # Link against this library
+	  test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+	    if $opt_preserve_dup_deps; then
+	      case "$tmp_libs " in
+	      *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
+	      esac
+	    fi
+	    func_append tmp_libs " $func_resolve_sysroot_result"
+	  done
+
+	  if test no != "$link_all_deplibs"; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      path=
+	      case $deplib in
+	      -L*) path=$deplib ;;
+	      *.la)
+	        func_resolve_sysroot "$deplib"
+	        deplib=$func_resolve_sysroot_result
+	        func_dirname "$deplib" "" "."
+		dir=$func_dirname_result
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    func_warning "cannot determine absolute directory name of '$dir'"
+		    absdir=$dir
+		  fi
+		  ;;
+		esac
+		if $GREP "^installed=no" $deplib > /dev/null; then
+		case $host in
+		*-*-darwin*)
+		  depdepl=
+		  eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names"; then
+		    for tmp in $deplibrary_names; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$absdir/$objdir/$depdepl"; then
+		      depdepl=$absdir/$objdir/$depdepl
+		      darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+		      func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
+		      func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
+		      path=
+		    fi
+		  fi
+		  ;;
+		*)
+		  path=-L$absdir/$objdir
+		  ;;
+		esac
+		else
+		  eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  test -z "$libdir" && \
+		    func_fatal_error "'$deplib' is not a valid libtool archive"
+		  test "$absdir" != "$libdir" && \
+		    func_warning "'$deplib' seems to be moved"
+
+		  path=-L$absdir
+		fi
+		;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      if test link = "$pass"; then
+	if test prog = "$linkmode"; then
+	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+	else
+	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	fi
+      fi
+      dependency_libs=$newdependency_libs
+      if test dlpreopen = "$pass"; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test dlopen != "$pass"; then
+	test conv = "$pass" || {
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) func_append lib_search_path " $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	}
+
+	if test prog,link = "$linkmode,$pass"; then
+	  vars="compile_deplibs finalize_deplibs"
+	else
+	  vars=deplibs
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) func_append tmp_libs " $deplib" ;;
+	      esac
+	      ;;
+	    *) func_append tmp_libs " $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+
+      # Add Sun CC postdeps if required:
+      test CXX = "$tagname" && {
+        case $host_os in
+        linux*)
+          case `$CC -V 2>&1 | sed 5q` in
+          *Sun\ C*) # Sun C++ 5.9
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+
+        solaris*)
+          func_cc_basename "$CC"
+          case $func_cc_basename_result in
+          CC* | sunCC*)
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+        esac
+      }
+
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=
+	  ;;
+	esac
+	if test -n "$i"; then
+	  func_append tmp_libs " $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test prog = "$linkmode"; then
+      dlfiles=$newdlfiles
+    fi
+    if test prog = "$linkmode" || test lib = "$linkmode"; then
+      dlprefiles=$newdlprefiles
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+	func_warning "'-dlopen' is ignored for archives"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "'-l' and '-L' are ignored for archives" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "'-rpath' is ignored for archives"
+
+      test -n "$xrpath" && \
+	func_warning "'-R' is ignored for archives"
+
+      test -n "$vinfo" && \
+	func_warning "'-version-info/-version-number' is ignored for archives"
+
+      test -n "$release" && \
+	func_warning "'-release' is ignored for archives"
+
+      test -n "$export_symbols$export_symbols_regex" && \
+	func_warning "'-export-symbols' is ignored for archives"
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs=$output
+      func_append objs "$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form 'libNAME.la'.
+      case $outputname in
+      lib*)
+	func_stripname 'lib' '.la' "$outputname"
+	name=$func_stripname_result
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	test no = "$module" \
+	  && func_fatal_help "libtool library '$output' must begin with 'lib'"
+
+	if test no != "$need_lib_prefix"; then
+	  # Add the "lib" prefix for modules if required
+	  func_stripname '' '.la' "$outputname"
+	  name=$func_stripname_result
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  func_stripname '' '.la' "$outputname"
+	  libname=$func_stripname_result
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test pass_all != "$deplibs_check_method"; then
+	  func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
+	else
+	  echo
+	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+	  $ECHO "*** objects $objs is not portable!"
+	  func_append libobjs " $objs"
+	fi
+      fi
+
+      test no = "$dlself" \
+	|| func_warning "'-dlopen self' is ignored for libtool libraries"
+
+      set dummy $rpath
+      shift
+      test 1 -lt "$#" \
+	&& func_warning "ignoring multiple '-rpath's for a libtool library"
+
+      install_libdir=$1
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test yes = "$build_libtool_libs"; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a '.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	test -n "$vinfo" && \
+	  func_warning "'-version-info/-version-number' is ignored for convenience libraries"
+
+	test -n "$release" && \
+	  func_warning "'-release' is ignored for convenience libraries"
+      else
+
+	# Parse the version information argument.
+	save_ifs=$IFS; IFS=:
+	set dummy $vinfo 0 0 0
+	shift
+	IFS=$save_ifs
+
+	test -n "$7" && \
+	  func_fatal_help "too many parameters to '-version-info'"
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major=$1
+	  number_minor=$2
+	  number_revision=$3
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # that has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  # correct linux to gnu/linux during the next big refactor
+	  darwin|freebsd-elf|linux|osf|windows|none)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age=$number_minor
+	    revision=$number_revision
+	    ;;
+	  freebsd-aout|qnx|sunos)
+	    current=$number_major
+	    revision=$number_minor
+	    age=0
+	    ;;
+	  irix|nonstopux)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age=$number_minor
+	    revision=$number_minor
+	    lt_irix_increment=no
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current=$1
+	  revision=$2
+	  age=$3
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "CURRENT '$current' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "REVISION '$revision' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "AGE '$age' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  func_error "AGE '$age' is greater than the current interface number '$current'"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=$major.$age.$revision
+	  # Darwin ld doesn't like 0 for these options...
+	  func_arith $current + 1
+	  minor_current=$func_arith_result
+	  xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+          # On Darwin other compilers
+          case $CC in
+              nagfor*)
+                  verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+                  ;;
+              *)
+                  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+                  ;;
+          esac
+	  ;;
+
+	freebsd-aout)
+	  major=.$current
+	  versuffix=.$current.$revision
+	  ;;
+
+	freebsd-elf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=$major.$age.$revision
+	  ;;
+
+	irix | nonstopux)
+	  if test no = "$lt_irix_increment"; then
+	    func_arith $current - $age
+	  else
+	    func_arith $current - $age + 1
+	  fi
+	  major=$func_arith_result
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring=$verstring_prefix$major.$revision
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test 0 -ne "$loop"; do
+	    func_arith $revision - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring=$verstring_prefix$major.$iface:$verstring
+	  done
+
+	  # Before this point, $major must not contain '.'.
+	  major=.$major
+	  versuffix=$major.$revision
+	  ;;
+
+	linux) # correct to gnu/linux during the next big refactor
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=$major.$age.$revision
+	  ;;
+
+	osf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=.$current.$age.$revision
+	  verstring=$current.$age.$revision
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test 0 -ne "$loop"; do
+	    func_arith $current - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring=$verstring:$iface.0
+	  done
+
+	  # Make executables depend on our current version.
+	  func_append verstring ":$current.0"
+	  ;;
+
+	qnx)
+	  major=.$current
+	  versuffix=.$current
+	  ;;
+
+	sco)
+	  major=.$current
+	  versuffix=.$current
+	  ;;
+
+	sunos)
+	  major=.$current
+	  versuffix=.$current.$revision
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 file systems.
+	  func_arith $current - $age
+	  major=$func_arith_result
+	  versuffix=-$major
+	  ;;
+
+	*)
+	  func_fatal_configuration "unknown library version type '$version_type'"
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring=0.0
+	    ;;
+	  esac
+	  if test no = "$need_version"; then
+	    versuffix=
+	  else
+	    versuffix=.0.0
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test yes,no = "$avoid_version,$need_version"; then
+	  major=
+	  versuffix=
+	  verstring=
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test yes = "$allow_undefined"; then
+	  if test unsupported = "$allow_undefined_flag"; then
+	    if test yes = "$build_old_libs"; then
+	      func_warning "undefined symbols not allowed in $host shared libraries; building static only"
+	      build_libtool_libs=no
+	    else
+	      func_fatal_error "can't build $host shared library unless -no-undefined is specified"
+	    fi
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag=$no_undefined_flag
+	fi
+
+      fi
+
+      func_generate_dlsyms "$libname" "$libname" :
+      func_append libobjs " $symfileobj"
+      test " " = "$libobjs" && libobjs=
+
+      if test relink != "$opt_mode"; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$ECHO "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext | *.gcno)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
+	       if test -n "$precious_files_regex"; then
+		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+		 then
+		   continue
+		 fi
+	       fi
+	       func_append removelist " $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	test -n "$removelist" && \
+	  func_show_eval "${RM}r \$removelist"
+      fi
+
+      # Now set the variables for building old libraries.
+      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
+	func_append oldlibs " $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
+      #done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  func_replace_sysroot "$libdir"
+	  func_append temp_xrpath " -R$func_replace_sysroot_result"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append finalize_rpath " $libdir" ;;
+	  esac
+	done
+	if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles=$dlfiles
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) func_append dlfiles " $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles=$dlprefiles
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) func_append dlprefiles " $lib" ;;
+	esac
+      done
+
+      if test yes = "$build_libtool_libs"; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    func_append deplibs " System.ltframework"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test yes = "$build_libtool_need_lc"; then
+	      func_append deplibs " -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=
+	versuffix=
+	major=
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $opt_dry_run || $RM conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $opt_dry_run || $RM conftest
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    func_append newdeplibs " $i"
+		    i=
+		    ;;
+		  esac
+		fi
+		if test -n "$i"; then
+		  libname=`eval "\\$ECHO \"$libname_spec\""`
+		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		  set dummy $deplib_matches; shift
+		  deplib_match=$1
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+		    func_append newdeplibs " $i"
+		  else
+		    droppeddeps=yes
+		    echo
+		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		    echo "*** I have the capability to make that library automatically link in when"
+		    echo "*** you link to this library.  But I can only do this if you have a"
+		    echo "*** shared version of the library, which I believe you do not have"
+		    echo "*** because a test_compile did reveal that the linker did not use it for"
+		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+		;;
+	      *)
+		func_append newdeplibs " $i"
+		;;
+	      esac
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		$opt_dry_run || $RM conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      func_append newdeplibs " $i"
+		      i=
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i"; then
+		    libname=`eval "\\$ECHO \"$libname_spec\""`
+		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		    set dummy $deplib_matches; shift
+		    deplib_match=$1
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+		      func_append newdeplibs " $i"
+		    else
+		      droppeddeps=yes
+		      echo
+		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		      echo "*** I have the capability to make that library automatically link in when"
+		      echo "*** you link to this library.  But I can only do this if you have a"
+		      echo "*** shared version of the library, which you do not appear to have"
+		      echo "*** because a test_compile did reveal that the linker did not use this one"
+		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  echo
+		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+		  echo "*** make it link in!  You will probably need to install it or some"
+		  echo "*** library that it depends on before this library will be fully"
+		  echo "*** functional.  Installing it before continuing would be even better."
+		fi
+		;;
+	      *)
+		func_append newdeplibs " $i"
+		;;
+	      esac
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method; shift
+	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  func_append newdeplibs " $a_deplib"
+		  a_deplib=
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib"; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		if test -n "$file_magic_glob"; then
+		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+		else
+		  libnameglob=$libname
+		fi
+		test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  if test yes = "$want_nocaseglob"; then
+		    shopt -s nocaseglob
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		    $nocaseglob
+		  else
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		  fi
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null |
+			 $GREP " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib=$potent_lib
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
+			*) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+			 $SED -e 10q |
+			 $EGREP "$file_magic_regex" > /dev/null; then
+			func_append newdeplibs " $a_deplib"
+			a_deplib=
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib"; then
+		droppeddeps=yes
+		echo
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib"; then
+		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      func_append newdeplibs " $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method; shift
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  func_append newdeplibs " $a_deplib"
+		  a_deplib=
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib"; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib=$potent_lib # see symlink-check above in file_magic test
+		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+		       $EGREP "$match_pattern_regex" > /dev/null; then
+		      func_append newdeplibs " $a_deplib"
+		      a_deplib=
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib"; then
+		droppeddeps=yes
+		echo
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib"; then
+		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      func_append newdeplibs " $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=
+	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
+	  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+	    for i in $predeps $postdeps; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
+	    done
+	  fi
+	  case $tmp_deplibs in
+	  *[!\	\ ]*)
+	    echo
+	    if test none = "$deplibs_check_method"; then
+	      echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	    ;;
+	  esac
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library with the System framework
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
+	  ;;
+	esac
+
+	if test yes = "$droppeddeps"; then
+	  if test yes = "$module"; then
+	    echo
+	    echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+	    echo "*** a static module, that should work as long as the dlopening"
+	    echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      echo
+	      echo "*** However, this would only work if libtool was able to extract symbol"
+	      echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+	      echo "*** not find such a program.  So, this module is probably useless."
+	      echo "*** 'nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test no = "$build_old_libs"; then
+	      oldlibs=$output_objdir/$libname.$libext
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    echo "*** The inter-library dependencies that have been dropped here will be"
+	    echo "*** automatically added whenever a program is linked with this library"
+	    echo "*** or is declared to -dlopen it."
+
+	    if test no = "$allow_undefined"; then
+	      echo
+	      echo "*** Since this library must not contain undefined symbols,"
+	      echo "*** because either the platform does not support them or"
+	      echo "*** it was explicitly requested with -no-undefined,"
+	      echo "*** libtool will only create a static version of it."
+	      if test no = "$build_old_libs"; then
+		oldlibs=$output_objdir/$libname.$libext
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+	*-*-darwin*)
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  ;;
+      esac
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    func_append new_libs " -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) func_append new_libs " $deplib" ;;
+	  esac
+	  ;;
+	*) func_append new_libs " $deplib" ;;
+	esac
+      done
+      deplibs=$new_libs
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test yes = "$build_libtool_libs"; then
+	# Remove $wl instances when linking with ld.
+	# FIXME: should test the right _cmds variable.
+	case $archive_cmds in
+	  *\$LD\ *) wl= ;;
+        esac
+	if test yes = "$hardcode_into_libs"; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath=$finalize_rpath
+	  test relink = "$opt_mode" || rpath=$compile_rpath$rpath
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		func_replace_sysroot "$libdir"
+		libdir=$func_replace_sysroot_result
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs=$libdir
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		func_append dep_rpath " $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) func_append perm_rpath " $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir=$hardcode_libdirs
+	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      func_append rpath "$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath=$finalize_shlibpath
+	test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	shift
+	realname=$1
+	shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname=$realname
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib=$output_objdir/$realname
+	linknames=
+	for link
+	do
+	  func_append linknames " $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	test "X$libobjs" = "X " && libobjs=
+
+	delfiles=
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+	  export_symbols=$output_objdir/$libname.uexp
+	  func_append delfiles " $export_symbols"
+	fi
+
+	orig_export_symbols=
+	case $host_os in
+	cygwin* | mingw* | cegcc*)
+	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+	    # exporting using user supplied symfile
+	    func_dll_def_p "$export_symbols" || {
+	      # and it's NOT already a .def file. Must figure out
+	      # which of the given symbols are data symbols and tag
+	      # them as such. So, trigger use of export_symbols_cmds.
+	      # export_symbols gets reassigned inside the "prepare
+	      # the list of exported symbols" if statement, so the
+	      # include_expsyms logic still works.
+	      orig_export_symbols=$export_symbols
+	      export_symbols=
+	      always_export_symbols=yes
+	    }
+	  fi
+	  ;;
+	esac
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
+	    func_verbose "generating symbol list for '$libname.la'"
+	    export_symbols=$output_objdir/$libname.exp
+	    $opt_dry_run || $RM $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs=$IFS; IFS='~'
+	    for cmd1 in $cmds; do
+	      IFS=$save_ifs
+	      # Take the normal branch if the nm_file_list_spec branch
+	      # doesn't work or if tool conversion is not needed.
+	      case $nm_file_list_spec~$to_tool_file_cmd in
+		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+		  try_normal_branch=yes
+		  eval cmd=\"$cmd1\"
+		  func_len " $cmd"
+		  len=$func_len_result
+		  ;;
+		*)
+		  try_normal_branch=no
+		  ;;
+	      esac
+	      if test yes = "$try_normal_branch" \
+		 && { test "$len" -lt "$max_cmd_len" \
+		      || test "$max_cmd_len" -le -1; }
+	      then
+		func_show_eval "$cmd" 'exit $?'
+		skipped_export=false
+	      elif test -n "$nm_file_list_spec"; then
+		func_basename "$output"
+		output_la=$func_basename_result
+		save_libobjs=$libobjs
+		save_output=$output
+		output=$output_objdir/$output_la.nm
+		func_to_tool_file "$output"
+		libobjs=$nm_file_list_spec$func_to_tool_file_result
+		func_append delfiles " $output"
+		func_verbose "creating $NM input file list: $output"
+		for obj in $save_libobjs; do
+		  func_to_tool_file "$obj"
+		  $ECHO "$func_to_tool_file_result"
+		done > "$output"
+		eval cmd=\"$cmd1\"
+		func_show_eval "$cmd" 'exit $?'
+		output=$save_output
+		libobjs=$save_libobjs
+		skipped_export=false
+	      else
+		# The command line is too long to execute in one step.
+		func_verbose "using reloadable object file for export list..."
+		skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS=$save_ifs
+	    if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  tmp_export_symbols=$export_symbols
+	  test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+	fi
+
+	if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
+	  # The given exports_symbols file has to be filtered, so filter it.
+	  func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	  # 's' commands, which not all seds can handle. GNU sed should be fine
+	  # though. Also, the filter scales superlinearly with the number of
+	  # global variables. join(1) would be nice here, but unfortunately
+	  # isn't a blessed tool.
+	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+	  export_symbols=$output_objdir/$libname.def
+	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+	  case " $convenience " in
+	  *" $test_deplib "*) ;;
+	  *)
+	    func_append tmp_deplibs " $test_deplib"
+	    ;;
+	  esac
+	done
+	deplibs=$tmp_deplibs
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec" &&
+	    test yes = "$compiler_needs_object" &&
+	    test -z "$libobjs"; then
+	    # extract the archives, so we have objects to list.
+	    # TODO: could optimize this to just extract one archive.
+	    whole_archive_flag_spec=
+	  fi
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  else
+	    gentop=$output_objdir/${outputname}x
+	    func_append generated " $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    func_append libobjs " $func_extract_archives_result"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	fi
+
+	if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  func_append linker_flags " $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test relink = "$opt_mode"; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test yes = "$module" && test -n "$module_cmds"; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval test_cmds=\"$archive_expsym_cmds\"
+	    cmds=$archive_expsym_cmds
+	  else
+	    eval test_cmds=\"$archive_cmds\"
+	    cmds=$archive_cmds
+	  fi
+	fi
+
+	if test : != "$skipped_export" &&
+	   func_len " $test_cmds" &&
+	   len=$func_len_result &&
+	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise
+	  # or, if using GNU ld and skipped_export is not :, use a linker
+	  # script.
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  func_basename "$output"
+	  output_la=$func_basename_result
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  last_robj=
+	  k=1
+
+	  if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+	    output=$output_objdir/$output_la.lnkscript
+	    func_verbose "creating GNU ld script: $output"
+	    echo 'INPUT (' > $output
+	    for obj in $save_libobjs
+	    do
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
+	    done
+	    echo ')' >> $output
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$func_to_tool_file_result
+	  elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+	    output=$output_objdir/$output_la.lnk
+	    func_verbose "creating linker input file list: $output"
+	    : > $output
+	    set x $save_libobjs
+	    shift
+	    firstobj=
+	    if test yes = "$compiler_needs_object"; then
+	      firstobj="$1 "
+	      shift
+	    fi
+	    for obj
+	    do
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
+	    done
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+	  else
+	    if test -n "$save_libobjs"; then
+	      func_verbose "creating reloadable object files..."
+	      output=$output_objdir/$output_la-$k.$objext
+	      eval test_cmds=\"$reload_cmds\"
+	      func_len " $test_cmds"
+	      len0=$func_len_result
+	      len=$len0
+
+	      # Loop over the list of objects to be linked.
+	      for obj in $save_libobjs
+	      do
+		func_len " $obj"
+		func_arith $len + $func_len_result
+		len=$func_arith_result
+		if test -z "$objlist" ||
+		   test "$len" -lt "$max_cmd_len"; then
+		  func_append objlist " $obj"
+		else
+		  # The command $test_cmds is almost too long, add a
+		  # command to the queue.
+		  if test 1 -eq "$k"; then
+		    # The first file doesn't have a previous command to add.
+		    reload_objs=$objlist
+		    eval concat_cmds=\"$reload_cmds\"
+		  else
+		    # All subsequent reloadable object files will link in
+		    # the last one created.
+		    reload_objs="$objlist $last_robj"
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+		  fi
+		  last_robj=$output_objdir/$output_la-$k.$objext
+		  func_arith $k + 1
+		  k=$func_arith_result
+		  output=$output_objdir/$output_la-$k.$objext
+		  objlist=" $obj"
+		  func_len " $last_robj"
+		  func_arith $len0 + $func_len_result
+		  len=$func_arith_result
+		fi
+	      done
+	      # Handle the remaining objects by creating one last
+	      # reloadable object file.  All subsequent reloadable object
+	      # files will link in the last one created.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      reload_objs="$objlist $last_robj"
+	      eval concat_cmds=\"\$concat_cmds$reload_cmds\"
+	      if test -n "$last_robj"; then
+	        eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	      func_append delfiles " $output"
+
+	    else
+	      output=
+	    fi
+
+	    ${skipped_export-false} && {
+	      func_verbose "generating symbol list for '$libname.la'"
+	      export_symbols=$output_objdir/$libname.exp
+	      $opt_dry_run || $RM $export_symbols
+	      libobjs=$output
+	      # Append the command to create the export file.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+	      if test -n "$last_robj"; then
+		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	    }
+
+	    test -n "$save_libobjs" &&
+	      func_verbose "creating a temporary reloadable object file: $output"
+
+	    # Loop through the commands generated above and execute them.
+	    save_ifs=$IFS; IFS='~'
+	    for cmd in $concat_cmds; do
+	      IFS=$save_ifs
+	      $opt_quiet || {
+		  func_quote_for_expand "$cmd"
+		  eval "func_echo $func_quote_for_expand_result"
+	      }
+	      $opt_dry_run || eval "$cmd" || {
+		lt_exit=$?
+
+		# Restore the uninstalled library and exit
+		if test relink = "$opt_mode"; then
+		  ( cd "$output_objdir" && \
+		    $RM "${realname}T" && \
+		    $MV "${realname}U" "$realname" )
+		fi
+
+		exit $lt_exit
+	      }
+	    done
+	    IFS=$save_ifs
+
+	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+
+          ${skipped_export-false} && {
+	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	      tmp_export_symbols=$export_symbols
+	      test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+	    fi
+
+	    if test -n "$orig_export_symbols"; then
+	      # The given exports_symbols file has to be filtered, so filter it.
+	      func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	      # 's' commands, which not all seds can handle. GNU sed should be fine
+	      # though. Also, the filter scales superlinearly with the number of
+	      # global variables. join(1) would be nice here, but unfortunately
+	      # isn't a blessed tool.
+	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+	      export_symbols=$output_objdir/$libname.def
+	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	    fi
+	  }
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test yes = "$module" && test -n "$module_cmds"; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	      cmds=$archive_expsym_cmds
+	    else
+	      cmds=$archive_cmds
+	    fi
+	  fi
+	fi
+
+	if test -n "$delfiles"; then
+	  # Append the command to remove temporary files to $cmds.
+	  eval cmds=\"\$cmds~\$RM $delfiles\"
+	fi
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop=$output_objdir/${outputname}x
+	  func_append generated " $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  func_append libobjs " $func_extract_archives_result"
+	  test "X$libobjs" = "X " && libobjs=
+	fi
+
+	save_ifs=$IFS; IFS='~'
+	for cmd in $cmds; do
+	  IFS=$sp$nl
+	  eval cmd=\"$cmd\"
+	  IFS=$save_ifs
+	  $opt_quiet || {
+	    func_quote_for_expand "$cmd"
+	    eval "func_echo $func_quote_for_expand_result"
+	  }
+	  $opt_dry_run || eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test relink = "$opt_mode"; then
+	      ( cd "$output_objdir" && \
+	        $RM "${realname}T" && \
+		$MV "${realname}U" "$realname" )
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS=$save_ifs
+
+	# Restore the uninstalled library and exit
+	if test relink = "$opt_mode"; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      func_show_eval '${RM}r "$gentop"'
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test yes = "$module" || test yes = "$export_dynamic"; then
+	  # On all known operating systems, these are identical.
+	  dlname=$soname
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+	func_warning "'-dlopen' is ignored for objects"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "'-l' and '-L' are ignored for objects" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "'-rpath' is ignored for objects"
+
+      test -n "$xrpath" && \
+	func_warning "'-R' is ignored for objects"
+
+      test -n "$vinfo" && \
+	func_warning "'-version-info' is ignored for objects"
+
+      test -n "$release" && \
+	func_warning "'-release' is ignored for objects"
+
+      case $output in
+      *.lo)
+	test -n "$objs$old_deplibs" && \
+	  func_fatal_error "cannot build library object '$output' from non-libtool objects"
+
+	libobj=$output
+	func_lo2o "$libobj"
+	obj=$func_lo2o_result
+	;;
+      *)
+	libobj=
+	obj=$output
+	;;
+      esac
+
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # if reload_cmds runs $LD directly, get rid of -Wl from
+      # whole_archive_flag_spec and hope we can get by with turning comma
+      # into space.
+      case $reload_cmds in
+        *\$LD[\ \$]*) wl= ;;
+      esac
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+	  reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
+	else
+	  gentop=$output_objdir/${obj}x
+	  func_append generated " $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # If we're not building shared, we need to use non_pic_objs
+      test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
+
+      # Create the old-style object.
+      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
+
+      output=$obj
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      test yes = "$build_libtool_libs" || {
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      }
+
+      if test -n "$pic_flag" || test default != "$pic_mode"; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output=$libobj
+	func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
+
+      if test -n "$gentop"; then
+	func_show_eval '${RM}r "$gentop"'
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) func_stripname '' '.exe' "$output"
+	          output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+	func_warning "'-version-info' is ignored for programs"
+
+      test -n "$release" && \
+	func_warning "'-release' is ignored for programs"
+
+      $preload \
+	&& test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
+	&& func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+	;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+	# Don't allow lazy linking, it breaks C++ global constructors
+	# But is supposedly fixed on 10.4 or later (yay!).
+	if test CXX = "$tagname"; then
+	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+	    10.[0123])
+	      func_append compile_command " $wl-bind_at_load"
+	      func_append finalize_command " $wl-bind_at_load"
+	    ;;
+	  esac
+	fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    func_append new_libs " -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) func_append new_libs " $deplib" ;;
+	  esac
+	  ;;
+	*) func_append new_libs " $deplib" ;;
+	esac
+      done
+      compile_deplibs=$new_libs
+
+
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append finalize_rpath " $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs=$libdir
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    func_append rpath " $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append perm_rpath " $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  ::) dllsearchpath=$libdir;;
+	  *) func_append dllsearchpath ":$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) func_append dllsearchpath ":$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir=$hardcode_libdirs
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath=$rpath
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs=$libdir
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    func_append rpath " $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append finalize_perm_rpath " $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir=$hardcode_libdirs
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath=$rpath
+
+      if test -n "$libobjs" && test yes = "$build_old_libs"; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+      fi
+
+      func_generate_dlsyms "$outputname" "@PROGRAM@" false
+
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+	func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=:
+      case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=false
+        ;;
+      *cygwin* | *mingw* )
+        test yes = "$build_libtool_libs" || wrappers_required=false
+        ;;
+      *)
+        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
+          wrappers_required=false
+        fi
+        ;;
+      esac
+      $wrappers_required || {
+	# Replace the output file specification.
+	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+	link_command=$compile_command$compile_rpath
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	exit_status=0
+	func_show_eval "$link_command" 'exit_status=$?'
+
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
+	# Delete the generated files.
+	if test -f "$output_objdir/${outputname}S.$objext"; then
+	  func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
+	fi
+
+	exit $exit_status
+      }
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    func_append rpath "$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    func_append rpath "$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test yes = "$no_install"; then
+	# We don't need to create a wrapper script.
+	link_command=$compile_var$compile_command$compile_rpath
+	# Replace the output file specification.
+	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$opt_dry_run || $RM $output
+	# Link the executable and exit
+	func_show_eval "$link_command" 'exit $?'
+
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      case $hardcode_action,$fast_install in
+        relink,*)
+	  # Fast installation is not supported
+	  link_command=$compile_var$compile_command$compile_rpath
+	  relink_command=$finalize_var$finalize_command$finalize_rpath
+
+	  func_warning "this platform does not like uninstalled shared libraries"
+	  func_warning "'$output' will be relinked during installation"
+	  ;;
+        *,yes)
+	  link_command=$finalize_var$compile_command$finalize_rpath
+	  relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+          ;;
+	*,no)
+	  link_command=$compile_var$compile_command$compile_rpath
+	  relink_command=$finalize_var$finalize_command$finalize_rpath
+          ;;
+	*,needless)
+	  link_command=$finalize_var$compile_command$finalize_rpath
+	  relink_command=
+          ;;
+      esac
+
+      # Replace the output file specification.
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      func_show_eval "$link_command" 'exit $?'
+
+      if test -n "$postlink_cmds"; then
+	func_to_tool_file "$output_objdir/$outputname"
+	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
+      # Now create the wrapper script.
+      func_verbose "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    func_quote_for_eval "$var_value"
+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) func_stripname '' '.exe' "$output"
+	         output=$func_stripname_result ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    func_stripname '' '.exe' "$outputname"
+	    outputname=$func_stripname_result ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    func_dirname_and_basename "$output" "" "."
+	    output_name=$func_basename_result
+	    output_path=$func_dirname_result
+	    cwrappersource=$output_path/$objdir/lt-$output_name.c
+	    cwrapper=$output_path/$output_name.exe
+	    $RM $cwrappersource $cwrapper
+	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_cwrapperexe_src > $cwrappersource
+
+	    # The wrapper executable is built using the $host compiler,
+	    # because it contains $host paths and files. If cross-
+	    # compiling, it, like the target executable, must be
+	    # executed on the $host or under an emulation environment.
+	    $opt_dry_run || {
+	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+	      $STRIP $cwrapper
+	    }
+
+	    # Now, create the wrapper script for func_source use:
+	    func_ltwrapper_scriptname $cwrapper
+	    $RM $func_ltwrapper_scriptname_result
+	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+	    $opt_dry_run || {
+	      # note: this script will not be executed, so do not chmod.
+	      if test "x$build" = "x$host"; then
+		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+	      else
+		func_emit_wrapper no > $func_ltwrapper_scriptname_result
+	      fi
+	    }
+	  ;;
+	  * )
+	    $RM $output
+	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_wrapper no > $output
+	    chmod +x $output
+	  ;;
+	esac
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      case $build_libtool_libs in
+        convenience)
+	  oldobjs="$libobjs_save $symfileobj"
+	  addlibs=$convenience
+	  build_libtool_libs=no
+	  ;;
+	module)
+	  oldobjs=$libobjs_save
+	  addlibs=$old_convenience
+	  build_libtool_libs=no
+          ;;
+	*)
+	  oldobjs="$old_deplibs $non_pic_objects"
+	  $preload && test -f "$symfileobj" \
+	    && func_append oldobjs " $symfileobj"
+	  addlibs=$old_convenience
+	  ;;
+      esac
+
+      if test -n "$addlibs"; then
+	gentop=$output_objdir/${outputname}x
+	func_append generated " $gentop"
+
+	func_extract_archives $gentop $addlibs
+	func_append oldobjs " $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
+	cmds=$old_archive_from_new_cmds
+      else
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop=$output_objdir/${outputname}x
+	  func_append generated " $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  func_append oldobjs " $func_extract_archives_result"
+	fi
+
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      func_basename "$obj"
+	      $ECHO "$func_basename_result"
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  echo "copying selected object files to avoid basename conflicts..."
+	  gentop=$output_objdir/${outputname}x
+	  func_append generated " $gentop"
+	  func_mkdir_p "$gentop"
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    func_basename "$obj"
+	    objbase=$func_basename_result
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		func_arith $counter + 1
+		counter=$func_arith_result
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      func_append oldobjs " $gentop/$newobj"
+	      ;;
+	    *) func_append oldobjs " $obj" ;;
+	    esac
+	  done
+	fi
+	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+	tool_oldlib=$func_to_tool_file_result
+	eval cmds=\"$old_archive_cmds\"
+
+	func_len " $cmds"
+	len=$func_len_result
+	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	elif test -n "$archiver_list_spec"; then
+	  func_verbose "using command file archive linking..."
+	  for obj in $oldobjs
+	  do
+	    func_to_tool_file "$obj"
+	    $ECHO "$func_to_tool_file_result"
+	  done > $output_objdir/$libname.libcmd
+	  func_to_tool_file "$output_objdir/$libname.libcmd"
+	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  func_verbose "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  eval test_cmds=\"$old_archive_cmds\"
+	  func_len " $test_cmds"
+	  len0=$func_len_result
+	  len=$len0
+	  for obj in $save_oldobjs
+	  do
+	    func_len " $obj"
+	    func_arith $len + $func_len_result
+	    len=$func_arith_result
+	    func_append objlist " $obj"
+	    if test "$len" -lt "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj"; then
+		RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
+	      objlist=
+	      len=$len0
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test -z "$oldobjs"; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test yes = "$build_old_libs" && old_library=$libname.$libext
+      func_verbose "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  func_quote_for_eval "$var_value"
+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+      if test yes = "$hardcode_automatic"; then
+	relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+	for installed in no yes; do
+	  if test yes = "$installed"; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output=$output_objdir/${outputname}i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		func_basename "$deplib"
+		name=$func_basename_result
+		func_resolve_sysroot "$deplib"
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+		test -z "$libdir" && \
+		  func_fatal_error "'$deplib' is not a valid libtool archive"
+		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+		;;
+	      -L*)
+		func_stripname -L '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -L$func_replace_sysroot_result"
+		;;
+	      -R*)
+		func_stripname -R '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -R$func_replace_sysroot_result"
+		;;
+	      *) func_append newdependency_libs " $deplib" ;;
+	      esac
+	    done
+	    dependency_libs=$newdependency_libs
+	    newdlfiles=
+
+	    for lib in $dlfiles; do
+	      case $lib in
+	      *.la)
+	        func_basename "$lib"
+		name=$func_basename_result
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "'$lib' is not a valid libtool archive"
+		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
+		;;
+	      *) func_append newdlfiles " $lib" ;;
+	      esac
+	    done
+	    dlfiles=$newdlfiles
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+	      *.la)
+		# Only pass preopened files to the pseudo-archive (for
+		# eventual linking with the app. that links it) if we
+		# didn't already link the preopened objects directly into
+		# the library:
+		func_basename "$lib"
+		name=$func_basename_result
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "'$lib' is not a valid libtool archive"
+		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
+		;;
+	      esac
+	    done
+	    dlprefiles=$newdlprefiles
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      func_append newdlfiles " $abs"
+	    done
+	    dlfiles=$newdlfiles
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      func_append newdlprefiles " $abs"
+	    done
+	    dlprefiles=$newdlprefiles
+	  fi
+	  $RM $output
+	  # place dlname in correct position for cygwin
+	  # In fact, it would be nice if we could use this code for all target
+	  # systems that can't hard-code library paths into their executables
+	  # and that have no shared library path variable independent of PATH,
+	  # but it turns out we can't easily determine that from inspecting
+	  # libtool variables, so we have to hard-code the OSs to which it
+	  # applies here; at the moment, that means platforms that use the PE
+	  # object format with DLL files.  See the long comment at the top of
+	  # tests/bindir.at for full details.
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+	      # If a -bindir argument was supplied, place the dll there.
+	      if test -n "$bindir"; then
+		func_relative_path "$install_libdir" "$bindir"
+		tdlname=$func_relative_path_result/$dlname
+	      else
+		# Otherwise fall back on heuristic.
+		tdlname=../bin/$dlname
+	      fi
+	      ;;
+	  esac
+	  $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that cannot go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test no,yes = "$installed,$need_relink"; then
+	    $ECHO >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      }
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
+
+if test link = "$opt_mode" || test relink = "$opt_mode"; then
+  func_mode_link ${1+"$@"}
+fi
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $debug_cmd
+
+    RM=$nonopt
+    files=
+    rmforce=false
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic=$magic
+
+    for arg
+    do
+      case $arg in
+      -f) func_append RM " $arg"; rmforce=: ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
+      esac
+    done
+
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
+
+    rmdirs=
+
+    for file in $files; do
+      func_dirname "$file" "" "."
+      dir=$func_dirname_result
+      if test . = "$dir"; then
+	odir=$objdir
+      else
+	odir=$dir/$objdir
+      fi
+      func_basename "$file"
+      name=$func_basename_result
+      test uninstall = "$opt_mode" && odir=$dir
+
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test clean = "$opt_mode"; then
+	case " $rmdirs " in
+	  *" $odir "*) ;;
+	  *) func_append rmdirs " $odir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+	 { test -h "$file"; } >/dev/null 2>&1 ||
+	 test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif $rmforce; then
+	continue
+      fi
+
+      rmfiles=$file
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if func_lalib_p "$file"; then
+	  func_source $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    func_append rmfiles " $odir/$n"
+	  done
+	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+
+	  case $opt_mode in
+	  clean)
+	    case " $library_names " in
+	    *" $dlname "*) ;;
+	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+	    esac
+	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if func_lalib_p "$file"; then
+
+	  # Read the .lo file
+	  func_source $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" && test none != "$pic_object"; then
+	    func_append rmfiles " $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" && test none != "$non_pic_object"; then
+	    func_append rmfiles " $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test clean = "$opt_mode"; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    func_stripname '' '.exe' "$file"
+	    file=$func_stripname_result
+	    func_stripname '' '.exe' "$name"
+	    noexename=$func_stripname_result
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    func_append rmfiles " $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if func_ltwrapper_p "$file"; then
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      relink_command=
+	      func_source $func_ltwrapper_scriptname_result
+	      func_append rmfiles " $func_ltwrapper_scriptname_result"
+	    else
+	      relink_command=
+	      func_source $dir/$noexename
+	    fi
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    func_append rmfiles " $odir/$name $odir/${name}S.$objext"
+	    if test yes = "$fast_install" && test -n "$relink_command"; then
+	      func_append rmfiles " $odir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name"; then
+	      func_append rmfiles " $odir/lt-$noexename.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
+    done
+
+    # Try to remove the $objdir's in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	func_show_eval "rmdir $dir >/dev/null 2>&1"
+      fi
+    done
+
+    exit $exit_status
+}
+
+if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
+  func_mode_uninstall ${1+"$@"}
+fi
+
+test -z "$opt_mode" && {
+  help=$generic_help
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode '$opt_mode'"
+
+if test -n "$exec_cmd"; then
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# where we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/missing b/missing
new file mode 100755
index 0000000..f62bbae
--- /dev/null
+++ b/missing
@@ -0,0 +1,215 @@
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2013-10-28.13; # UTC
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try '$0 --help' for more information"
+  exit 1
+fi
+
+case $1 in
+
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
+
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+
+Supported PROGRAM values:
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake at gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'autom4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
+    ;;
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/apertium.git



More information about the debian-science-commits mailing list